|
@@ -3,11 +3,9 @@ package com.zanxiang.game.module.sdk.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.zanxiang.game.module.base.pojo.enums.BanStatusEnum;
|
|
import com.zanxiang.game.module.base.pojo.enums.BanStatusEnum;
|
|
|
|
+import com.zanxiang.game.module.base.pojo.enums.GameCategoryEnum;
|
|
import com.zanxiang.game.module.base.pojo.enums.HttpStatusEnum;
|
|
import com.zanxiang.game.module.base.pojo.enums.HttpStatusEnum;
|
|
-import com.zanxiang.game.module.mybatis.entity.GameExt;
|
|
|
|
-import com.zanxiang.game.module.mybatis.entity.User;
|
|
|
|
-import com.zanxiang.game.module.mybatis.entity.UserCard;
|
|
|
|
-import com.zanxiang.game.module.mybatis.entity.UserShare;
|
|
|
|
|
|
+import com.zanxiang.game.module.mybatis.entity.*;
|
|
import com.zanxiang.game.module.sdk.constant.RedisKeyConstant;
|
|
import com.zanxiang.game.module.sdk.constant.RedisKeyConstant;
|
|
import com.zanxiang.game.module.sdk.enums.KafkaEventTrackEnum;
|
|
import com.zanxiang.game.module.sdk.enums.KafkaEventTrackEnum;
|
|
import com.zanxiang.game.module.sdk.enums.LoginTypeEnum;
|
|
import com.zanxiang.game.module.sdk.enums.LoginTypeEnum;
|
|
@@ -95,6 +93,9 @@ public class LoginServiceImpl implements IRegisterLoginService {
|
|
@Autowired
|
|
@Autowired
|
|
private IKafkaService kafkaService;
|
|
private IKafkaService kafkaService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IGameService gameService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private IGameAppletShellService gameAppletShellService;
|
|
private IGameAppletShellService gameAppletShellService;
|
|
|
|
|
|
@@ -137,7 +138,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
|
|
.set(User::getSessionKey, sessionKey).eq(User::getId, user.getId()));
|
|
.set(User::getSessionKey, sessionKey).eq(User::getId, user.getId()));
|
|
}
|
|
}
|
|
//渠道更新和回传判断
|
|
//渠道更新和回传判断
|
|
- agentService.userAgentUpdate(user, userData.getChannel());
|
|
|
|
|
|
+ agentService.userAgentUpdate(user, userData);
|
|
//返回登录信息
|
|
//返回登录信息
|
|
UserLoginVO userLoginVO = this.createUserLoginVO(user, userData);
|
|
UserLoginVO userLoginVO = this.createUserLoginVO(user, userData);
|
|
userLoginVO.setAppletShellSwitch(gameAppletShellService.getUserShellSwitch(user, Boolean.FALSE, request));
|
|
userLoginVO.setAppletShellSwitch(gameAppletShellService.getUserShellSwitch(user, Boolean.FALSE, request));
|
|
@@ -191,7 +192,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
|
|
return ResultVO.fail(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR.getMsg());
|
|
return ResultVO.fail(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR.getMsg());
|
|
}
|
|
}
|
|
//渠道更新和回传判断
|
|
//渠道更新和回传判断
|
|
- agentService.userAgentUpdate(user, userData.getChannel());
|
|
|
|
|
|
+ agentService.userAgentUpdate(user, userData);
|
|
//登录信息
|
|
//登录信息
|
|
UserLoginVO userLoginVO = this.createUserLoginVO(user, userData);
|
|
UserLoginVO userLoginVO = this.createUserLoginVO(user, userData);
|
|
Tuple2<Boolean, Long> tuple2 = this.userGuideCheck(user);
|
|
Tuple2<Boolean, Long> tuple2 = this.userGuideCheck(user);
|
|
@@ -237,7 +238,7 @@ public class LoginServiceImpl implements IRegisterLoginService {
|
|
return ResultVO.fail(HttpStatusEnum.ACCOUNT_HALT.getMsg());
|
|
return ResultVO.fail(HttpStatusEnum.ACCOUNT_HALT.getMsg());
|
|
}
|
|
}
|
|
//渠道更新和回传判断
|
|
//渠道更新和回传判断
|
|
- agentService.userAgentUpdate(user, userData.getChannel());
|
|
|
|
|
|
+ agentService.userAgentUpdate(user, userData);
|
|
UserLoginVO userLoginVO = this.createUserLoginVO(user, userData);
|
|
UserLoginVO userLoginVO = this.createUserLoginVO(user, userData);
|
|
//判断是否导量用户
|
|
//判断是否导量用户
|
|
Tuple2<Boolean, Long> tuple2 = this.userGuideCheck(user);
|
|
Tuple2<Boolean, Long> tuple2 = this.userGuideCheck(user);
|
|
@@ -282,8 +283,10 @@ public class LoginServiceImpl implements IRegisterLoginService {
|
|
if (!distributedLockComponent.doLock(lockKey, 0L, 3L, TimeUnit.MINUTES)) {
|
|
if (!distributedLockComponent.doLock(lockKey, 0L, 3L, TimeUnit.MINUTES)) {
|
|
throw new BaseException("用户信息正在注册中, 请勿重复请求!");
|
|
throw new BaseException("用户信息正在注册中, 请勿重复请求!");
|
|
}
|
|
}
|
|
|
|
+ //获取游戏信息
|
|
|
|
+ Game game = gameService.getById(userData.getGameId());
|
|
//渠道id, 链接参数, 分享人id
|
|
//渠道id, 链接参数, 分享人id
|
|
- Tuple3<Long, Map<String, String>, String> tuple3 = agentService.getUserAgentId(userData);
|
|
|
|
|
|
+ Tuple3<Long, Map<String, String>, String> tuple3 = agentService.getUserAgentId(game, userData);
|
|
//分享人id
|
|
//分享人id
|
|
Long shareUserId = Strings.isBlank(tuple3.getT3()) ? null : Long.valueOf(tuple3.getT3());
|
|
Long shareUserId = Strings.isBlank(tuple3.getT3()) ? null : Long.valueOf(tuple3.getT3());
|
|
//用户参数补充
|
|
//用户参数补充
|
|
@@ -292,8 +295,13 @@ public class LoginServiceImpl implements IRegisterLoginService {
|
|
user.setMobile(mobile);
|
|
user.setMobile(mobile);
|
|
user.setOpenId(Strings.isNotBlank(openId) ? openId : tuple3.getT2().get("openId"));
|
|
user.setOpenId(Strings.isNotBlank(openId) ? openId : tuple3.getT2().get("openId"));
|
|
user.setSessionKey(sessionKey);
|
|
user.setSessionKey(sessionKey);
|
|
- user.setChannel(userData.getChannel());
|
|
|
|
user.setShareUserId(shareUserId);
|
|
user.setShareUserId(shareUserId);
|
|
|
|
+ //App的渠道保存解析后的参数, 因为涉及到时间判断
|
|
|
|
+ if (Objects.equals(game.getCategory(), GameCategoryEnum.CATEGORY_APP.getId())) {
|
|
|
|
+ user.setChannel(JsonUtil.toString(tuple3.getT2()));
|
|
|
|
+ } else {
|
|
|
|
+ user.setChannel(userData.getChannel());
|
|
|
|
+ }
|
|
userService.save(user);
|
|
userService.save(user);
|
|
gameUserService.createGameUser(user);
|
|
gameUserService.createGameUser(user);
|
|
userAgentLogService.regAgentLog(user);
|
|
userAgentLogService.regAgentLog(user);
|