|
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.zanxiang.game.module.base.pojo.enums.BanStatusEnum;
|
|
import com.zanxiang.game.module.base.pojo.enums.BanStatusEnum;
|
|
import com.zanxiang.game.module.base.util.DateUtils;
|
|
import com.zanxiang.game.module.base.util.DateUtils;
|
|
-import com.zanxiang.game.module.mybatis.entity.Game;
|
|
|
|
import com.zanxiang.game.module.mybatis.entity.GameExt;
|
|
import com.zanxiang.game.module.mybatis.entity.GameExt;
|
|
import com.zanxiang.game.module.mybatis.entity.User;
|
|
import com.zanxiang.game.module.mybatis.entity.User;
|
|
import com.zanxiang.game.module.mybatis.entity.UserToken;
|
|
import com.zanxiang.game.module.mybatis.entity.UserToken;
|
|
@@ -56,9 +55,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
|
|
@Autowired
|
|
@Autowired
|
|
private IUserLoginLogService userLoginLogService;
|
|
private IUserLoginLogService userLoginLogService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private IGameService gameService;
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public ResultVO<Long> cpTokenCheck(String appId, Long userId, String token, String sign) {
|
|
public ResultVO<Long> cpTokenCheck(String appId, Long userId, String token, String sign) {
|
|
//查询登录签名
|
|
//查询登录签名
|
|
@@ -67,10 +63,18 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
|
|
log.error("token验证失败 , 游戏拓展信息不存在, appId : {}, userId : {}", appId, userId);
|
|
log.error("token验证失败 , 游戏拓展信息不存在, appId : {}, userId : {}", appId, userId);
|
|
return ResultVO.fail(TokenCheckEnum.PARAM_LACK.getMsg());
|
|
return ResultVO.fail(TokenCheckEnum.PARAM_LACK.getMsg());
|
|
}
|
|
}
|
|
|
|
+ //用户信息
|
|
|
|
+ User user = userService.getById(userId);
|
|
//查询token是否存在
|
|
//查询token是否存在
|
|
UserToken userToken = super.getOne(new LambdaQueryWrapper<UserToken>()
|
|
UserToken userToken = super.getOne(new LambdaQueryWrapper<UserToken>()
|
|
.eq(UserToken::getToken, token)
|
|
.eq(UserToken::getToken, token)
|
|
.eq(UserToken::getUserId, userId));
|
|
.eq(UserToken::getUserId, userId));
|
|
|
|
+ //导量用户携带的是 relationUserId 匹配的token
|
|
|
|
+ if (userToken == null && user.getRelationUserId() != null) {
|
|
|
|
+ userToken = super.getOne(new LambdaQueryWrapper<UserToken>()
|
|
|
|
+ .eq(UserToken::getToken, token)
|
|
|
|
+ .eq(UserToken::getUserId, user.getRelationUserId()));
|
|
|
|
+ }
|
|
//判断token是否存在, 并且没有过期
|
|
//判断token是否存在, 并且没有过期
|
|
if (userToken == null || userToken.getExpireTime() < DateUtils.localDateTimeToSecond(LocalDateTime.now())) {
|
|
if (userToken == null || userToken.getExpireTime() < DateUtils.localDateTimeToSecond(LocalDateTime.now())) {
|
|
log.error("token验证失败 , token不存在或者已经失效, appId : {}, userId : {}, token : {}", appId, userId, token);
|
|
log.error("token验证失败 , token不存在或者已经失效, appId : {}, userId : {}, token : {}", appId, userId, token);
|
|
@@ -104,8 +108,6 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
|
|
@Override
|
|
@Override
|
|
public Boolean userTokenExpireTimeCheck(UserData userData) {
|
|
public Boolean userTokenExpireTimeCheck(UserData userData) {
|
|
log.error("缓存token验证请求 userData : {}", JsonUtil.toString(userData));
|
|
log.error("缓存token验证请求 userData : {}", JsonUtil.toString(userData));
|
|
- //微信小游戏, 解决前端没有checkSession的问题, 临时方案, 每次都重新登录
|
|
|
|
- Game game = gameService.getById(userData.getGameId());
|
|
|
|
//判断是否存在用户id或者token是否存在
|
|
//判断是否存在用户id或者token是否存在
|
|
if (userData.getUserId() == null || Strings.isBlank(userData.getToken())) {
|
|
if (userData.getUserId() == null || Strings.isBlank(userData.getToken())) {
|
|
return Boolean.FALSE;
|
|
return Boolean.FALSE;
|
|
@@ -141,7 +143,7 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
|
|
boolean result = expireTime > endTime;
|
|
boolean result = expireTime > endTime;
|
|
//token未过期, 记录登录日志
|
|
//token未过期, 记录登录日志
|
|
if (result) {
|
|
if (result) {
|
|
- userLoginLogService.createUserLoginLog(userData, LoginTypeEnum.LOGIN_REG.getLoginType());
|
|
|
|
|
|
+ userLoginLogService.createUserLoginLog(userData, LoginTypeEnum.LOGIN_IN.getLoginType());
|
|
}
|
|
}
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|