|
@@ -87,11 +87,11 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
|
|
|
Tuple2<String, String> tuple2 = userTokenService.getMySign(gameExt, param.getUserId(), param.getToken());
|
|
|
if (!Objects.equals(tuple2.getT2(), param.getSign())) {
|
|
|
log.error("参数错误 , str : {}, mySign : {}, sign : {}", tuple2.getT1(), tuple2.getT2(), param.getSign());
|
|
|
- throw new BaseException("参数错误, sign验证失败, str : " + tuple2.getT1() + ", mySign : " + tuple2.getT2());
|
|
|
+ throw new BaseException("参数错误, sign验证失败");
|
|
|
}
|
|
|
//提交的角色信息
|
|
|
GameUserRoleUpdateParam gameUserRoleParam = param.getGameUserRoleParam();
|
|
|
- //查询玩家信息
|
|
|
+ //查询玩家信息, 调用方的userId不准确, 可能是导量的小程序userId
|
|
|
User user = userService.getById(userToken.getUserId());
|
|
|
//构建 userData
|
|
|
UserData userData = new UserData();
|
|
@@ -186,7 +186,7 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
|
|
|
if (param.getRolePower() != null) {
|
|
|
gameUserRole.setRolePower(param.getRolePower());
|
|
|
}
|
|
|
- if (param.getExtra() != null) {
|
|
|
+ if (param.getExtra() != null && Strings.isNotBlank(JsonUtil.toString(param.getExtra()))) {
|
|
|
gameUserRole.setExtra(JsonUtil.toString(param.getExtra()));
|
|
|
}
|
|
|
if (gameUser != null) {
|
|
@@ -217,27 +217,30 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
|
|
|
return;
|
|
|
}
|
|
|
//查询玩家信息
|
|
|
- User user = userService.getById(userData.getUserId());
|
|
|
+ User user = userService.getOne(new LambdaQueryWrapper<User>()
|
|
|
+ .eq(User::getId, userData.getUserId())
|
|
|
+ .eq(User::getGameId, userData.getGameId()));
|
|
|
GameUser gameUser = gameUserService.getOne(new LambdaQueryWrapper<GameUser>()
|
|
|
.eq(GameUser::getGameId, userData.getGameId())
|
|
|
.eq(GameUser::getUserId, userData.getUserId()));
|
|
|
+ //参数不匹配
|
|
|
+ if (user == null || gameUser == null) {
|
|
|
+ log.error("上报参数不匹配,玩家信息为空! param : {}, userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
|
|
|
+ return;
|
|
|
+ }
|
|
|
//创建角色
|
|
|
userRole = this.transform(param, userData, gameUser, user);
|
|
|
super.save(userRole);
|
|
|
//更新玩家创角数
|
|
|
- if (gameUser != null) {
|
|
|
- gameUserService.update(new LambdaUpdateWrapper<GameUser>()
|
|
|
- .setSql("role_count=role_count+" + 1)
|
|
|
- .set(GameUser::getUpdateTime, LocalDateTime.now())
|
|
|
- .eq(GameUser::getId, gameUser.getId()));
|
|
|
- }
|
|
|
+ gameUserService.update(new LambdaUpdateWrapper<GameUser>()
|
|
|
+ .setSql("role_count=role_count+" + 1)
|
|
|
+ .set(GameUser::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(GameUser::getId, gameUser.getId()));
|
|
|
//更新用户创角数
|
|
|
- if (user != null) {
|
|
|
- userService.update(new LambdaUpdateWrapper<User>()
|
|
|
- .setSql("role_count=role_count+" + 1)
|
|
|
- .set(User::getUpdateTime, LocalDateTime.now())
|
|
|
- .eq(User::getId, user.getId()));
|
|
|
- }
|
|
|
+ userService.update(new LambdaUpdateWrapper<User>()
|
|
|
+ .setSql("role_count=role_count+" + 1)
|
|
|
+ .set(User::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(User::getId, user.getId()));
|
|
|
//用户创角回传
|
|
|
callBackService.roleCallBack(userRole, userData);
|
|
|
//用户创角埋点数据发送到卡夫卡
|
|
@@ -247,7 +250,7 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
|
|
|
private GameUserRole transform(GameUserRoleUpdateParam param, UserData userData, GameUser gameUser, User user) {
|
|
|
return GameUserRole.builder()
|
|
|
.userId(userData.getUserId())
|
|
|
- .gameUserId(gameUser == null ? 0 : gameUser.getId())
|
|
|
+ .gameUserId(gameUser.getId())
|
|
|
.gameId(userData.getGameId())
|
|
|
.serverId(param.getServerId())
|
|
|
.serverName(param.getServerName())
|
|
@@ -257,11 +260,11 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
|
|
|
.roleVipLevel(param.getRoleVipLevel())
|
|
|
.rolePower(param.getRolePower())
|
|
|
.os(userData.getDeviceSystem())
|
|
|
- .regTime(user == null ? null : user.getCreateTime())
|
|
|
+ .regTime(user.getCreateTime())
|
|
|
.createTime(LocalDateTime.now())
|
|
|
.updateTime(LocalDateTime.now())
|
|
|
.lastLoginTime(LocalDateTime.now())
|
|
|
- .extra(param.getExtra() == null ? null : JsonUtil.toString(param.getExtra()))
|
|
|
+ .extra(param.getExtra() == null || Strings.isBlank(JsonUtil.toString(param.getExtra())) ? null : JsonUtil.toString(param.getExtra()))
|
|
|
.build();
|
|
|
}
|
|
|
|