Selaa lähdekoodia

feat : 登录凭证校验

bilingfeng 2 vuotta sitten
vanhempi
commit
f76e85130a

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

@@ -42,18 +42,18 @@ public class LoginController {
     }
 
     @UnSignCheck
-    @ApiOperation(value = "登录凭证验证")
+    @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) {
-        return userTokenService.userTokenCheck(appId, userId, token, sign);
+        return userTokenService.cpTokenCheck(appId, userId, token, sign);
     }
 
-    @ApiOperation(value = "登录凭证时效验证")
+    @ApiOperation(value = "用户登录凭证时效验证")
     @GetMapping("/token/expireTime/check")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
-    public ResultVO<Boolean> userTokenExpireTimeCheck(@ValidLogin UserData userData) {
+    public ResultVO<Boolean> userTokenExpireTimeCheck(UserData userData) {
         return ResultVO.ok(userTokenService.userTokenExpireTimeCheck(userData));
     }
 

+ 1 - 6
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PerformOrderServiceImpl.java

@@ -172,10 +172,6 @@ public class PerformOrderServiceImpl implements PerformOrderService {
             //订单取消情况 做减法
             float amount = orderInfo.getAmount().floatValue();
             int num = 1;
-            if (orderInfo.getStatus().equals(OrderStateEnum.CANCEL.getCode())) {
-                amount = -amount;
-                num = -1;
-            }
             //游戏用户角色统计更新
             if (StringUtils.isNotEmpty(orderInfo.getRoleId()) && !"0".equals(orderInfo.getRoleId())) {
                 GameUserRole gameUserRole = new GameUserRole();
@@ -184,8 +180,7 @@ public class PerformOrderServiceImpl implements PerformOrderService {
                         .set(GameUserRole::getLastRechargeTime, orderInfo.getPayTime())
                         .setSql("recharge_count=recharge_count+" + num)
                         .setSql("recharge_money=recharge_money+" + amount)
-                        .setEntity(gameUserRole)
-                );
+                        .setEntity(gameUserRole));
             } else {
                 log.info("订单:{} 用户玩家角色RoleId为空,不进行gameUserRole充值统计汇总", orderInfo.getOrderId());
             }

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

@@ -54,17 +54,8 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
     @Autowired
     private UserService userService;
 
-    /**
-     * 登录凭证验证
-     *
-     * @param appId  : 游戏id
-     * @param userId : 用户id
-     * @param token  : 用户token
-     * @param sign   : 签名
-     * @return : 返回验证结果
-     */
     @Override
-    public ResultVO<Long> userTokenCheck(String appId, Long userId, String token, String sign) {
+    public ResultVO<Long> cpTokenCheck(String appId, Long userId, String token, String sign) {
         //查询登录签名
         GameExt gameExt = gameExtService.getByGameAppId(appId);
         if (gameExt == null || Strings.isBlank(gameExt.getLoginKey())) {
@@ -100,12 +91,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         return ResultVO.ok(userId);
     }
 
-    /**
-     * 登录凭证验证
-     *
-     * @param userData : 用户信息
-     * @return : 返回凭证是否过期
-     */
     @Override
     public Boolean userTokenExpireTimeCheck(UserData userData) {
         //验证ip是否封禁
@@ -113,10 +98,12 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
             return Boolean.FALSE;
         }
         //查询用户信息
-        User user = userService.getById(userData.getUserId());
-        //判断账号是否停用
-        if (Objects.equals(BanStatusEnum.BAN_STATUS.getStatus(), user.getStatus())) {
-            return Boolean.FALSE;
+        if (userData.getUserId() != null) {
+            User user = userService.getById(userData.getUserId());
+            //判断账号是否停用
+            if (user != null && Objects.equals(BanStatusEnum.BAN_STATUS.getStatus(), user.getStatus())) {
+                return Boolean.FALSE;
+            }
         }
         //token检测
         Long expireTime = userData.getExpireTime();
@@ -129,13 +116,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         return expireTime > endTime;
     }
 
-    /**
-     * 通过token设备获取token详情
-     *
-     * @param token      : 用户token
-     * @param deviceType : 设备类型
-     * @return : 返回用户token详情
-     */
     @Override
     public UserTokenDTO getTokenInfoByTokenDevice(String token, Integer deviceType) {
         //查询缓存信息
@@ -160,13 +140,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         return BeanUtils.copy(userToken, UserTokenDTO.class);
     }
 
-    /**
-     * 获取用户token
-     *
-     * @param userId     : 用户id
-     * @param deviceType : 设备类型
-     * @return : 返回token
-     */
     @Override
     public String getUserToken(Long userId, Integer deviceType) {
         //获取token
@@ -203,12 +176,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         return token;
     }
 
-    /**
-     * 删除用户token
-     *
-     * @param userId     : 用户id
-     * @param deviceType : 设备类型
-     */
     @Override
     public void deleteUserToken(Long userId, Integer deviceType) {
         UserToken userToken = super.getOne(new LambdaQueryWrapper<UserToken>()
@@ -227,13 +194,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         redisUtil.deleteCache(tokenInfoKey);
     }
 
-    /**
-     * 创建token
-     *
-     * @param userId     : 用户id
-     * @param deviceType : 设备类型
-     * @return : 返回token
-     */
     private String createToken(Long userId, Integer deviceType) {
         //生成随机数
         String random = userId + deviceType + UUID.randomUUID().toString() + System.currentTimeMillis();
@@ -242,24 +202,10 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         return MD5Util.MD5Encode(MD5Util.MD5Encode(random, charsetName), charsetName);
     }
 
-    /**
-     * 拼接用户token缓存key
-     *
-     * @param userId     : 用户id
-     * @param deviceType : 设备类型
-     * @return : 返回用户token的缓存key
-     */
     private String getUserTokenKey(Long userId, Integer deviceType) {
         return RedisKeyConstant.USER_TOKEN_KEY + "_" + userId + "_" + deviceType;
     }
 
-    /**
-     * 拼接用户token缓存key
-     *
-     * @param token      : 用户token
-     * @param deviceType : 设备类型
-     * @return : 返回用户token的缓存key
-     */
     private String getTokenInfoKey(String token, Integer deviceType) {
         return RedisKeyConstant.TOKEN_INFO_KEY + "_" + token + "_" + deviceType;
     }

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

@@ -14,47 +14,47 @@ import com.zanxiang.sdk.domain.params.UserData;
 public interface UserTokenService extends IService<UserToken> {
 
     /**
-     * 登录凭证验证
+     * cp令牌检查
      *
-     * @param appId  : 游戏id
-     * @param userId : 用户id
-     * @param token  : 用户token
-     * @param sign   : 签名
-     * @return : 返回验证结果
+     * @param appId  应用程序id
+     * @param userId 用户id
+     * @param token  令牌
+     * @param sign   标志
+     * @return {@link ResultVO}<{@link Long}>
      */
-    ResultVO<Long> userTokenCheck(String appId, Long userId, String token, String sign);
+    ResultVO<Long> cpTokenCheck(String appId, Long userId, String token, String sign);
 
     /**
-     * 登录凭证验证
+     * 用户令牌到期时间检查
      *
-     * @param userData : 用户信息
-     * @return : 返回凭证是否过期
+     * @param userData 用户数据
+     * @return {@link Boolean}
      */
     Boolean userTokenExpireTimeCheck(UserData userData);
 
     /**
-     * 通过token设备获取token详情
+     * 被标记设备令牌信息
      *
-     * @param token      : 用户token
-     * @param deviceType : 设备类型
-     * @return : 返回用户token详情
+     * @param token      令牌
+     * @param deviceType 设备类型
+     * @return {@link UserTokenDTO}
      */
     UserTokenDTO getTokenInfoByTokenDevice(String token, Integer deviceType);
 
     /**
-     * 获取用户token
+     * 获取用户令牌
      *
-     * @param userId     : 用户id
-     * @param deviceType : 设备类型
-     * @return : 返回token
+     * @param userId     用户id
+     * @param deviceType 设备类型
+     * @return {@link String}
      */
     String getUserToken(Long userId, Integer deviceType);
 
     /**
-     * 删除用户token
+     * 删除用户令牌
      *
-     * @param userId     : 用户id
-     * @param deviceType : 设备类型
+     * @param userId     用户id
+     * @param deviceType 设备类型
      */
     void deleteUserToken(Long userId, Integer deviceType);
 }