|
@@ -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();
|
|
|
+ }
|
|
|
}
|