|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.zanxiang.common.domain.ResultVo;
|
|
import com.zanxiang.common.domain.ResultVo;
|
|
import com.zanxiang.common.enums.HttpStatusEnum;
|
|
import com.zanxiang.common.enums.HttpStatusEnum;
|
|
import com.zanxiang.common.exception.BaseException;
|
|
import com.zanxiang.common.exception.BaseException;
|
|
|
|
+import com.zanxiang.common.utils.IpUtils;
|
|
import com.zanxiang.common.utils.StringUtils;
|
|
import com.zanxiang.common.utils.StringUtils;
|
|
import com.zanxiang.common.utils.bean.BeanUtils;
|
|
import com.zanxiang.common.utils.bean.BeanUtils;
|
|
import com.zanxiang.sdk.domain.dto.UserDTO;
|
|
import com.zanxiang.sdk.domain.dto.UserDTO;
|
|
@@ -16,13 +17,15 @@ import com.zanxiang.sdk.domain.params.LoginMobileParam;
|
|
import com.zanxiang.sdk.domain.params.LoginPasswordParam;
|
|
import com.zanxiang.sdk.domain.params.LoginPasswordParam;
|
|
import com.zanxiang.sdk.domain.vo.UserLoginVO;
|
|
import com.zanxiang.sdk.domain.vo.UserLoginVO;
|
|
import com.zanxiang.sdk.mapper.UserMapper;
|
|
import com.zanxiang.sdk.mapper.UserMapper;
|
|
|
|
+import com.zanxiang.sdk.service.ISmsService;
|
|
|
|
+import com.zanxiang.sdk.service.IUserLoginLogService;
|
|
import com.zanxiang.sdk.service.IUserService;
|
|
import com.zanxiang.sdk.service.IUserService;
|
|
import com.zanxiang.sdk.service.IUserTokenService;
|
|
import com.zanxiang.sdk.service.IUserTokenService;
|
|
-import com.zanxiangnet.module.sms.service.impl.AliSmsService;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
|
@@ -36,19 +39,23 @@ import java.util.Objects;
|
|
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
|
|
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private AliSmsService aliSmsService;
|
|
|
|
|
|
+ private IUserTokenService userTokenService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private IUserTokenService userTokenService;
|
|
|
|
|
|
+ private ISmsService smsService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IUserLoginLogService userLoginLogService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 用户名密码登录
|
|
* 用户名密码登录
|
|
*
|
|
*
|
|
* @param userLoginParam : 登录参数
|
|
* @param userLoginParam : 登录参数
|
|
|
|
+ * @param request : HttpServletRequest
|
|
* @return : 返回登录token
|
|
* @return : 返回登录token
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam) {
|
|
|
|
|
|
+ public ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam, HttpServletRequest request) {
|
|
//用户名
|
|
//用户名
|
|
String username = userLoginParam.getUsername();
|
|
String username = userLoginParam.getUsername();
|
|
//密码
|
|
//密码
|
|
@@ -75,6 +82,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
}
|
|
}
|
|
//验证通过, 获取token
|
|
//验证通过, 获取token
|
|
String userToken = userTokenService.getUserToken(user.getId(), user.getDeviceType());
|
|
String userToken = userTokenService.getUserToken(user.getId(), user.getDeviceType());
|
|
|
|
+ //登录的ip
|
|
|
|
+ String realIp = IpUtils.getRealIp(request);
|
|
|
|
+ //插入用户登录记录
|
|
|
|
+ userLoginLogService.addUserLoginLog(realIp, user, userLoginParam.getGameId());
|
|
//构造返回
|
|
//构造返回
|
|
return new ResultVo<>(new UserLoginVO(userToken));
|
|
return new ResultVo<>(new UserLoginVO(userToken));
|
|
}
|
|
}
|
|
@@ -84,10 +95,38 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
* 手机号登录
|
|
* 手机号登录
|
|
*
|
|
*
|
|
* @param loginMobileParam : 手机号登录参数
|
|
* @param loginMobileParam : 手机号登录参数
|
|
|
|
+ * @param request : HttpServletRequest
|
|
* @return : 返回登录信息
|
|
* @return : 返回登录信息
|
|
*/
|
|
*/
|
|
- public ResultVo<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam) {
|
|
|
|
- return null;
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public ResultVo<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam, HttpServletRequest request) {
|
|
|
|
+ Integer type = loginMobileParam.getType();
|
|
|
|
+ String mobile = loginMobileParam.getMobile();
|
|
|
|
+ String code = loginMobileParam.getCode();
|
|
|
|
+ //验证码校验
|
|
|
|
+ HttpStatusEnum httpStatusEnum = smsService.smsCheck(type, mobile, code);
|
|
|
|
+ //验证不通过, 返回
|
|
|
|
+ if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
|
|
|
|
+ return new ResultVo<>(httpStatusEnum);
|
|
|
|
+ }
|
|
|
|
+ //获取用户信息
|
|
|
|
+ User user = super.getOne(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile));
|
|
|
|
+ //用户信息不存在
|
|
|
|
+ if (user == null) {
|
|
|
|
+ return new ResultVo<>(HttpStatusEnum.PHONE_NOT_REG);
|
|
|
|
+ }
|
|
|
|
+ //判断账号是否停用
|
|
|
|
+ if (Objects.equals(AccountStatusEnum.FROZEN_STATUS.getStatus(), user.getStatus())) {
|
|
|
|
+ return new ResultVo<>(HttpStatusEnum.ACCOUNT_HALT);
|
|
|
|
+ }
|
|
|
|
+ //验证通过, 获取token
|
|
|
|
+ String userToken = userTokenService.getUserToken(user.getId(), user.getDeviceType());
|
|
|
|
+ //登录的ip
|
|
|
|
+ String realIp = IpUtils.getRealIp(request);
|
|
|
|
+ //插入用户登录记录
|
|
|
|
+ userLoginLogService.addUserLoginLog(realIp, user, loginMobileParam.getGameId());
|
|
|
|
+ //构造返回
|
|
|
|
+ return new ResultVo<>(new UserLoginVO(userToken));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|