Преглед на файлове

feat : 增加强制实名认证开关, 调试修改

bilingfeng преди 2 години
родител
ревизия
ea1e7a7956

+ 5 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/GameExt.java

@@ -34,6 +34,11 @@ public class GameExt implements Serializable {
      */
     private Long gameId;
 
+    /**
+     * 游戏appId
+     */
+    private String appId;
+
     /**
      * 游戏key
      */

+ 11 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/ArgumentAdapter.java

@@ -4,9 +4,11 @@ import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.CustomException;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.module.web.util.IpUtil;
+import com.zanxiang.mybatis.entity.GameExt;
 import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
 import com.zanxiang.sdk.domain.params.UserData;
+import com.zanxiang.sdk.service.GameExtService;
 import com.zanxiang.sdk.service.UserTokenService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.core.MethodParameter;
@@ -33,6 +35,9 @@ public class ArgumentAdapter implements HandlerMethodArgumentResolver {
     @Resource
     private UserTokenService userTokenService;
 
+    @Resource
+    private GameExtService gameExtService;
+
     @Override
     public boolean supportsParameter(MethodParameter parameter) {
         return parameter.getParameterType().equals(UserData.class);
@@ -53,9 +58,14 @@ public class ArgumentAdapter implements HandlerMethodArgumentResolver {
         }
         //设备类型
         Integer deviceType = Integer.valueOf(request.getHeader("deviceType"));
+        //前端传过来的是appId,不是真正的gameId
+        GameExt gameExt = gameExtService.getByGameAppId(request.getHeader("gameId"));
+        if (gameExt == null) {
+            throw new CustomException(HttpStatusEnum.UNKNOWN_ERROR);
+        }
         //构造用户信息
         UserData data = UserData.builder()
-                .gameId(Long.valueOf(request.getHeader("gameId")))
+                .gameId(gameExt.getGameId())
                 .ip(IpUtil.getRealIp(request))
                 .deviceType(deviceType)
                 .deviceSystem(request.getHeader("os"))

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

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

+ 8 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/GameExtService.java

@@ -17,4 +17,12 @@ public interface GameExtService extends IService<GameExt> {
      * @return : 返回游戏密钥
      */
     GameExt getByGameId(Long gameId);
+
+    /**
+     * 根据游戏appId查询密钥
+     *
+     * @param appId : 游戏appId
+     * @return : 返回游戏密钥
+     */
+    GameExt getByGameAppId(String appId);
 }

+ 25 - 6
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameExtServiceImpl.java

@@ -33,23 +33,42 @@ public class GameExtServiceImpl extends ServiceImpl<GameExtMapper, GameExt> impl
     @Override
     public GameExt getByGameId(Long gameId) {
         //查询缓存
-        GameExt gameKey = redisUtil.getCache(this.getGameKey(gameId));
+        GameExt gameKey = redisUtil.getCache(this.getGameKey(String.valueOf(gameId)));
         if (gameKey == null) {
             gameKey = this.getOne(new LambdaQueryWrapper<GameExt>().eq(GameExt::getGameId, gameId));
         }
         if (gameKey != null) {
-            redisUtil.setCache(this.getGameKey(gameId), gameKey, ExpireTimeEnum.ONE_DAY.getTime());
+            redisUtil.setCache(this.getGameKey(String.valueOf(gameId)), gameKey, ExpireTimeEnum.ONE_DAY.getTime());
         }
         return gameKey;
     }
 
     /**
-     * 拼接用户token缓存key
+     * 根据游戏appId查询密钥
      *
-     * @param gameId : 游戏id
+     * @param appId : 游戏appId
+     * @return : 返回游戏密钥
+     */
+    @Override
+    public GameExt getByGameAppId(String appId) {
+        //查询缓存
+        GameExt gameKey = redisUtil.getCache(this.getGameKey(appId));
+        if (gameKey == null) {
+            gameKey = this.getOne(new LambdaQueryWrapper<GameExt>().eq(GameExt::getAppId, appId));
+        }
+        if (gameKey != null) {
+            redisUtil.setCache(this.getGameKey(appId), gameKey, ExpireTimeEnum.ONE_DAY.getTime());
+        }
+        return gameKey;
+    }
+
+    /**
+     * 拼接游戏缓存key
+     *
+     * @param key : 游戏标识
      * @return : 返回游戏key的缓存key
      */
-    private String getGameKey(Long gameId) {
-        return RedisKeyConstant.GAME_SECRET_KEY + "_" + gameId;
+    private String getGameKey(String key) {
+        return RedisKeyConstant.GAME_SECRET_KEY + "_" + key;
     }
 }

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java

@@ -54,9 +54,9 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
      * @return : 返回验证结果
      */
     @Override
-    public ResultVO<Long> userTokenCheck(Long appId, Long userId, String token, String sign) {
+    public ResultVO<Long> userTokenCheck(String appId, Long userId, String token, String sign) {
         //查询登录签名
-        GameExt gameExt = gameExtService.getByGameId(appId);
+        GameExt gameExt = gameExtService.getByGameAppId(appId);
         if (gameExt == null || Strings.isBlank(gameExt.getLoginKey())) {
             return ResultVO.ok(TokenCheckEnum.PARAM_LACK.getCode(), TokenCheckEnum.PARAM_LACK.getMsg());
         }

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserTokenService.java

@@ -22,7 +22,7 @@ public interface UserTokenService extends IService<UserToken> {
      * @param sign   : 签名
      * @return : 返回验证结果
      */
-    ResultVO<Long> userTokenCheck(Long appId, Long userId, String token, String sign);
+    ResultVO<Long> userTokenCheck(String appId, Long userId, String token, String sign);
 
     /**
      * 登录凭证验证