Forráskód Böngészése

fix : 登录用户信息创建构造优化

bilingfeng 2 éve
szülő
commit
4f450f4030

+ 2 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/controller/LoginController.java

@@ -45,7 +45,8 @@ public class LoginController {
     @ApiOperation(value = "CP登录凭证验证")
     @GetMapping("/token/check")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
-    public ResultVO userTokenCheck(@RequestParam String appId, @RequestParam Long userId, @RequestParam String token, @RequestParam String sign) {
+    public ResultVO userTokenCheck(@RequestParam String appId, @RequestParam Long userId, @RequestParam String token,
+                                   @RequestParam String sign) {
         return userTokenService.cpTokenCheck(appId, userId, token, sign);
     }
 

+ 48 - 81
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/LoginServiceImpl.java

@@ -26,7 +26,6 @@ import com.zanxiang.module.util.pojo.ResultVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -85,24 +84,9 @@ public class LoginServiceImpl implements IRegisterLoginService {
     @Autowired
     private IUserShareService userShareService;
 
-    /**
-     * QQ开发者应用id
-     */
-    @Value("${auth.qq-appId}")
-    private String qqAppId;
-
-    /**
-     * 微信开发者应用id
-     */
-    @Value("${auth.vx-appId}")
-    private String vxAppId;
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ResultVO<UserLoginVO> loginWxCode(LoginVxCodeParam param, UserData userData) {
-
-        log.error("小程序登录, param : {}, userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
-
         //验证登录ip是否封禁
         if (ipBanService.checkIpBan(userData.getIp())) {
             return ResultVO.fail(HttpStatusEnum.IP_HALT.getMsg());
@@ -110,10 +94,14 @@ public class LoginServiceImpl implements IRegisterLoginService {
         //查询微信小游戏信息
         GameAppletDTO gameAppletDTO = gameAppletService.getByGameId(userData.getGameId());
         //获取用户微信小游戏的openId
-        Map<String, String> resultMap = wxApiService.getAppletOpenId(param.getCode(), gameAppletDTO.getAppId(), gameAppletDTO.getAppSecret());
+        Map<String, String> resultMap = wxApiService.getAppletOpenId(param.getCode(), gameAppletDTO.getAppId(),
+                gameAppletDTO.getAppSecret());
         String openId = resultMap.get("openid");
         String sessionKey = resultMap.get("session_key");
-        log.error("登录用户 resultMap : {}", JsonUtil.toString(resultMap));
+
+        log.error("登录用户, param : {}, userData : {}, resultMap : {}", JsonUtil.toString(param),
+                JsonUtil.toString(userData), JsonUtil.toString(resultMap));
+
         //根据openId查询用户
         User user = userService.getOne(new LambdaQueryWrapper<User>()
                 .eq(User::getGameId, userData.getGameId()).eq(User::getOpenId, openId));
@@ -141,37 +129,26 @@ public class LoginServiceImpl implements IRegisterLoginService {
             fromUserId = userDTO.getId();
         }
         //构造用户信息
-        user = User.builder()
-                .agentId(agentId)
-                .gameId(userData.getGameId())
-                .username(openId)
-                .nickname(RegisterUtil.randomNickName(openId))
-                .openId(openId)
-                .sessionKey(sessionKey)
-                .deviceType(userData.getDeviceType())
-                .status(BanStatusEnum.NORMAL_STATUS.getStatus())
-                .authentication(0)
-                .createTime(LocalDateTime.now())
-                .updateTime(LocalDateTime.now())
-                .deviceSystem(userData.getDeviceSystem())
-                .mac(userData.getMac())
-                .imei(userData.getImei())
-                .androidId(userData.getAndroidId())
-                .ip(userData.getIp())
-                .build();
+        user = transform(userData, agentId, openId);
+        user.setOpenId(openId);
+        user.setSessionKey(sessionKey);
+        //创建用户信息
         userService.save(user);
         gameUserService.createGameUser(user);
         callBackService.userCallBack(user);
-        if (fromUserId != null) {
-            UserShare userShare = UserShare.builder()
-                    .gameId(userData.getGameId())
-                    .fromUserId(fromUserId)
-                    .toUserId(user.getId())
-                    .createTime(LocalDateTime.now())
-                    .updateTime(LocalDateTime.now())
-                    .build();
-            userShareService.save(userShare);
+        //返回登录信息
+        if (fromUserId == null) {
+            return ResultVO.ok(this.createUserLoginVO(user, userData));
         }
+        //记录分享信息
+        UserShare userShare = UserShare.builder()
+                .gameId(userData.getGameId())
+                .fromUserId(fromUserId)
+                .toUserId(user.getId())
+                .createTime(LocalDateTime.now())
+                .updateTime(LocalDateTime.now())
+                .build();
+        userShareService.save(userShare);
         //返回登录信息
         return ResultVO.ok(this.createUserLoginVO(user, userData));
     }
@@ -217,30 +194,15 @@ public class LoginServiceImpl implements IRegisterLoginService {
                 return ResultVO.fail(checkRegisterEnum.getMsg());
             }
             //创建用户信息
-            user = User.builder()
-                    .agentId(promoChannelService.getAgentIdByChannel(userData.getChannel()))
-                    .gameId(userData.getGameId())
-                    .username(username)
-                    .nickname(RegisterUtil.randomNickName(username))
-                    .password(RegisterUtil.cmfPassword(password))
-                    .deviceType(userData.getDeviceType())
-                    .status(BanStatusEnum.NORMAL_STATUS.getStatus())
-                    .authentication(0)
-                    .createTime(LocalDateTime.now())
-                    .updateTime(LocalDateTime.now())
-                    .deviceSystem(userData.getDeviceSystem())
-                    .mac(userData.getMac())
-                    .imei(userData.getImei())
-                    .androidId(userData.getAndroidId())
-                    .ip(userData.getIp())
-                    .build();
+            Long agentId = promoChannelService.getAgentIdByChannel(userData.getChannel());
+            user = transform(userData, agentId, username);
+            user.setPassword(password);
             userService.save(user);
             gameUserService.createGameUser(user);
             callBackService.userCallBack(user);
         }
         //返回登录信息
         return ResultVO.ok(this.createUserLoginVO(user, userData));
-
     }
 
     @Override
@@ -262,23 +224,9 @@ public class LoginServiceImpl implements IRegisterLoginService {
                 .eq(User::getGameId, userData.getGameId()).eq(User::getMobile, mobile));
         //用户信息不存在, 直接注册
         if (user == null) {
-            user = User.builder()
-                    .agentId(promoChannelService.getAgentIdByChannel(userData.getChannel()))
-                    .gameId(userData.getGameId())
-                    .username(mobile)
-                    .nickname(RegisterUtil.randomNickName(mobile))
-                    .mobile(mobile)
-                    .deviceType(userData.getDeviceType())
-                    .status(BanStatusEnum.NORMAL_STATUS.getStatus())
-                    .authentication(0)
-                    .createTime(LocalDateTime.now())
-                    .updateTime(LocalDateTime.now())
-                    .deviceSystem(userData.getDeviceSystem())
-                    .mac(userData.getMac())
-                    .imei(userData.getImei())
-                    .androidId(userData.getAndroidId())
-                    .ip(userData.getIp())
-                    .build();
+            Long agentId = promoChannelService.getAgentIdByChannel(userData.getChannel());
+            user = transform(userData, agentId, mobile);
+            user.setMobile(mobile);
             userService.save(user);
             gameUserService.createGameUser(user);
             callBackService.userCallBack(user);
@@ -290,7 +238,6 @@ public class LoginServiceImpl implements IRegisterLoginService {
         }
         //返回登录信息
         return ResultVO.ok(this.createUserLoginVO(user, userData));
-
     }
 
     private UserLoginVO createUserLoginVO(User user, UserData userData) {
@@ -352,4 +299,24 @@ public class LoginServiceImpl implements IRegisterLoginService {
         //密码验证
         return RegisterUtil.checkPassword(password);
     }
+
+    private User transform(UserData userData, Long agentId, String userName) {
+        //构造用户信息
+        return User.builder()
+                .agentId(agentId)
+                .gameId(userData.getGameId())
+                .username(userName)
+                .nickname(RegisterUtil.randomNickName(userName))
+                .deviceType(userData.getDeviceType())
+                .status(BanStatusEnum.NORMAL_STATUS.getStatus())
+                .authentication(0)
+                .createTime(LocalDateTime.now())
+                .updateTime(LocalDateTime.now())
+                .deviceSystem(userData.getDeviceSystem())
+                .mac(userData.getMac())
+                .imei(userData.getImei())
+                .androidId(userData.getAndroidId())
+                .ip(userData.getIp())
+                .build();
+    }
 }