修复灵仙
This commit is contained in:
parent
1ac5e6c62d
commit
3a01a490ab
@ -102,7 +102,9 @@ public class GameHkysRestController {
|
|||||||
return new HkysResponse<HkysUserProfileResponse>()
|
return new HkysResponse<HkysUserProfileResponse>()
|
||||||
.setErrorCode(HyksErrorEnum.PARAM_ERROR.getErrorCode());
|
.setErrorCode(HyksErrorEnum.PARAM_ERROR.getErrorCode());
|
||||||
}
|
}
|
||||||
String sign = SecurityUtils.md5(Stream.of(cmd.getGameId(), cmd.getUid(), cmd.getToken(), cmd.getRoomId(), gameHkysProperties.getSignKey()).filter(Objects::nonNull).map(String::valueOf).collect(Collectors.joining("")));
|
String sign = SecurityUtils.md5(Stream.of(cmd.getGameId(), cmd.getUid(), cmd.getToken(), cmd.getRoomId(),
|
||||||
|
resolveLingxianSignKey(cmd.getToken())).filter(Objects::nonNull).map(String::valueOf)
|
||||||
|
.collect(Collectors.joining("")));
|
||||||
if (!sign.equals(cmd.getSign())) {
|
if (!sign.equals(cmd.getSign())) {
|
||||||
return new HkysResponse<HkysUserProfileResponse>().setErrorCode(HyksErrorEnum.SIGN_VERIFY_FAIL.getErrorCode());
|
return new HkysResponse<HkysUserProfileResponse>().setErrorCode(HyksErrorEnum.SIGN_VERIFY_FAIL.getErrorCode());
|
||||||
}
|
}
|
||||||
@ -123,9 +125,9 @@ public class GameHkysRestController {
|
|||||||
|| Objects.isNull(cmd.getType()) || Objects.isNull(cmd.getCoin())) {
|
|| Objects.isNull(cmd.getType()) || Objects.isNull(cmd.getCoin())) {
|
||||||
return new HkysResponse<JSONObject>().setErrorCode(HyksErrorEnum.PARAM_ERROR.getErrorCode());
|
return new HkysResponse<JSONObject>().setErrorCode(HyksErrorEnum.PARAM_ERROR.getErrorCode());
|
||||||
}
|
}
|
||||||
String sign = SecurityUtils.md5(Stream.of(cmd.getOrderId(), cmd.getGameId(), cmd.getRoundId(), cmd.getUid(),
|
String sign = SecurityUtils.md5(Stream.of(cmd.getOrderId(), cmd.getGameId(), cmd.getRoundId(), cmd.getUid(),
|
||||||
cmd.getCoin(), cmd.getType(), cmd.getToken(), cmd.getWinId(), cmd.getRoomId(), gameHkysProperties.getSignKey())
|
cmd.getCoin(), cmd.getType(), cmd.getToken(), cmd.getWinId(), cmd.getRoomId(), resolveLingxianSignKey(cmd.getToken()))
|
||||||
.filter(Objects::nonNull).map(String::valueOf).collect(Collectors.joining("")));
|
.filter(Objects::nonNull).map(String::valueOf).collect(Collectors.joining("")));
|
||||||
if (!sign.equals(cmd.getSign())) {
|
if (!sign.equals(cmd.getSign())) {
|
||||||
return new HkysResponse<JSONObject>().setErrorCode(HyksErrorEnum.SIGN_VERIFY_FAIL.getErrorCode());
|
return new HkysResponse<JSONObject>().setErrorCode(HyksErrorEnum.SIGN_VERIFY_FAIL.getErrorCode());
|
||||||
}
|
}
|
||||||
@ -150,7 +152,7 @@ public class GameHkysRestController {
|
|||||||
//游玩一句游戏结束 每日任务 灵仙
|
//游玩一句游戏结束 每日任务 灵仙
|
||||||
Long userId = DataTypeUtils.toLong(cmd.getUid());
|
Long userId = DataTypeUtils.toLong(cmd.getUid());
|
||||||
|
|
||||||
String sysOrigin = UserCredential.parseToken(cmd.getToken()).getSysOrigin();
|
String sysOrigin = parseSysOrigin(cmd.getToken());
|
||||||
|
|
||||||
BigDecimal cost = enumConfigCacheService
|
BigDecimal cost = enumConfigCacheService
|
||||||
.getValueBigDecimal(EnumConfigKey.GAME_BROADCAST_AMOUNT, sysOrigin) ;
|
.getValueBigDecimal(EnumConfigKey.GAME_BROADCAST_AMOUNT, sysOrigin) ;
|
||||||
@ -223,6 +225,28 @@ public class GameHkysRestController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String resolveLingxianSignKey(String token) {
|
||||||
|
String sysOrigin = resolveSysOriginQuietly(token);
|
||||||
|
String appKey = gameListConfigService.getActiveLingxianAppKey(sysOrigin);
|
||||||
|
if (StringUtils.isNotBlank(appKey)) {
|
||||||
|
return appKey;
|
||||||
|
}
|
||||||
|
return gameHkysProperties.getSignKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveSysOriginQuietly(String token) {
|
||||||
|
try {
|
||||||
|
return parseSysOrigin(token);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("resolve lingxian sysOrigin failed");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String parseSysOrigin(String token) {
|
||||||
|
return UserCredential.parseToken(SecurityUtils.urlDecode(token)).getSysOrigin();
|
||||||
|
}
|
||||||
|
|
||||||
private void reportTaskCenterGameEvents(String sysOrigin,
|
private void reportTaskCenterGameEvents(String sysOrigin,
|
||||||
Long userId,
|
Long userId,
|
||||||
String provider,
|
String provider,
|
||||||
|
|||||||
@ -46,10 +46,15 @@ public interface GameListConfigService extends BaseService<GameListConfig> {
|
|||||||
* 获取灵仙当前启用的配置档案.
|
* 获取灵仙当前启用的配置档案.
|
||||||
*/
|
*/
|
||||||
String getActiveLingxianProfile(String sysOrigin);
|
String getActiveLingxianProfile(String sysOrigin);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询游戏信息
|
* 获取灵仙当前启用配置的 appKey.
|
||||||
*/
|
*/
|
||||||
|
String getActiveLingxianAppKey(String sysOrigin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询游戏信息
|
||||||
|
*/
|
||||||
GameListConfig getByGameCode(String gameCode, String sysOrigin);
|
GameListConfig getByGameCode(String gameCode, String sysOrigin);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -213,6 +213,27 @@ public class GameListConfigServiceImpl extends
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getActiveLingxianAppKey(String sysOrigin) {
|
||||||
|
if (StringUtils.isBlank(sysOrigin)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return Optional.ofNullable(jdbcTemplate.queryForObject("""
|
||||||
|
SELECT app_key
|
||||||
|
FROM lingxian_provider_config
|
||||||
|
WHERE sys_origin = ?
|
||||||
|
AND active = 1
|
||||||
|
ORDER BY update_time DESC
|
||||||
|
LIMIT 1
|
||||||
|
""", String.class, sysOrigin))
|
||||||
|
.map(String::trim)
|
||||||
|
.orElse("");
|
||||||
|
} catch (Exception e) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameListConfig getByGameCode(String gameCode, String sysOrigin) {
|
public GameListConfig getByGameCode(String gameCode, String sysOrigin) {
|
||||||
return query()
|
return query()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user