|
@@ -1,31 +1,27 @@
|
|
package com.zanxiang.sdk.service.Impl;
|
|
package com.zanxiang.sdk.service.Impl;
|
|
|
|
|
|
-import com.alibaba.nacos.common.utils.MD5Utils;
|
|
|
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
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.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.mybatis.entity.User;
|
|
import com.zanxiang.mybatis.entity.User;
|
|
import com.zanxiang.mybatis.mapper.UserMapper;
|
|
import com.zanxiang.mybatis.mapper.UserMapper;
|
|
|
|
+import com.zanxiang.sdk.common.util.RegisterUtils;
|
|
import com.zanxiang.sdk.domain.dto.UserDTO;
|
|
import com.zanxiang.sdk.domain.dto.UserDTO;
|
|
-import com.zanxiang.common.enums.AccountStatusEnum;
|
|
|
|
-import com.zanxiang.common.enums.CmfSaltEnum;
|
|
|
|
-import com.zanxiang.sdk.domain.params.*;
|
|
|
|
-import com.zanxiang.sdk.domain.vo.UserLoginVO;
|
|
|
|
-import com.zanxiang.sdk.service.*;
|
|
|
|
|
|
+import com.zanxiang.sdk.domain.dto.UserTokenDTO;
|
|
|
|
+import com.zanxiang.sdk.domain.params.UpdatePasswordParam;
|
|
|
|
+import com.zanxiang.sdk.domain.params.UserDetailParam;
|
|
|
|
+import com.zanxiang.sdk.domain.vo.UserVO;
|
|
|
|
+import com.zanxiang.sdk.service.IUserService;
|
|
|
|
+import com.zanxiang.sdk.service.IUserTokenService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
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.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import java.security.NoSuchAlgorithmException;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
|
@@ -41,272 +37,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
@Autowired
|
|
@Autowired
|
|
private IUserTokenService userTokenService;
|
|
private IUserTokenService userTokenService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private ISmsService smsService;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- private IUserLoginLogService userLoginLogService;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- private IWordCheckService wordCheckService;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 普通注册
|
|
|
|
- *
|
|
|
|
- * @param registerPasswordParam : 用户名密码注册参数
|
|
|
|
- * @return : 返回注册结果
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- public ResultVo<UserLoginVO> registerPassword(RegisterPasswordParam registerPasswordParam, HttpServletRequest request) {
|
|
|
|
- String username = registerPasswordParam.getUsername();
|
|
|
|
- String password = registerPasswordParam.getPassword();
|
|
|
|
- //用户名密码校验
|
|
|
|
- HttpStatusEnum checkRegisterEnum = this.checkRegister(username, password);
|
|
|
|
- if (!Objects.equals(checkRegisterEnum, HttpStatusEnum.SUCCESS)) {
|
|
|
|
- return new ResultVo<>(checkRegisterEnum);
|
|
|
|
- }
|
|
|
|
- //创建用户信息
|
|
|
|
- User user = User.builder()
|
|
|
|
- .username(registerPasswordParam.getUsername())
|
|
|
|
- .password(this.cmfPassword(password))
|
|
|
|
- .deviceId(registerPasswordParam.getDeviceId())
|
|
|
|
- .deviceType(registerPasswordParam.getDeviceType())
|
|
|
|
- .status(AccountStatusEnum.NORMAL_STATUS.getStatus())
|
|
|
|
- .createTime(LocalDateTime.now())
|
|
|
|
- .updateTime(LocalDateTime.now())
|
|
|
|
- .build();
|
|
|
|
- super.save(user);
|
|
|
|
- //登录的ip
|
|
|
|
- String realIp = IpUtils.getRealIp(request);
|
|
|
|
- //插入用户登录记录
|
|
|
|
- userLoginLogService.addUserLoginLog(realIp, user, registerPasswordParam.getGameId());
|
|
|
|
- //获取token
|
|
|
|
- String userToken = userTokenService.getUserToken(user.getId(), user.getDeviceType());
|
|
|
|
- //返回用户token
|
|
|
|
- return new ResultVo<>(new UserLoginVO(userToken));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 手机注册
|
|
|
|
- *
|
|
|
|
- * @param registerMobileParam : 手机注册参数
|
|
|
|
- * @param request : HttpServletRequest
|
|
|
|
- * @return : 返回注册结果
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- public ResultVo<UserLoginVO> registerMobile(RegisterMobileParam registerMobileParam, HttpServletRequest request) {
|
|
|
|
- Integer type = registerMobileParam.getType();
|
|
|
|
- String mobile = registerMobileParam.getMobile();
|
|
|
|
- String code = registerMobileParam.getCode();
|
|
|
|
- String password = registerMobileParam.getPassword();
|
|
|
|
- //校验手机验证码
|
|
|
|
- HttpStatusEnum codeCheckEnum = smsService.smsCheck(type, mobile, code);
|
|
|
|
- if (!Objects.equals(codeCheckEnum, HttpStatusEnum.SUCCESS)) {
|
|
|
|
- return new ResultVo<>(codeCheckEnum);
|
|
|
|
- }
|
|
|
|
- //判断手机号是否已经注册
|
|
|
|
- if (super.count(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile)) > 0) {
|
|
|
|
- return new ResultVo<>(HttpStatusEnum.PHONE_IS_REG);
|
|
|
|
- }
|
|
|
|
- //验证密码是否合规
|
|
|
|
- HttpStatusEnum passwordCheckEnum = this.checkPassword(password);
|
|
|
|
- if (!Objects.equals(passwordCheckEnum, HttpStatusEnum.SUCCESS)) {
|
|
|
|
- return new ResultVo<>(passwordCheckEnum);
|
|
|
|
- }
|
|
|
|
- //创建用户信息
|
|
|
|
- User user = User.builder()
|
|
|
|
- .username(mobile)
|
|
|
|
- .regMobile(mobile)
|
|
|
|
- .mobile(mobile)
|
|
|
|
- .password(this.cmfPassword(password))
|
|
|
|
- .deviceId(registerMobileParam.getDeviceId())
|
|
|
|
- .deviceType(registerMobileParam.getDeviceType())
|
|
|
|
- .status(AccountStatusEnum.NORMAL_STATUS.getStatus())
|
|
|
|
- .createTime(LocalDateTime.now())
|
|
|
|
- .updateTime(LocalDateTime.now())
|
|
|
|
- .build();
|
|
|
|
- super.save(user);
|
|
|
|
- //获取token
|
|
|
|
- String userToken = userTokenService.getUserToken(user.getId(), user.getDeviceType());
|
|
|
|
- //登录的ip
|
|
|
|
- String realIp = IpUtils.getRealIp(request);
|
|
|
|
- //插入用户登录记录
|
|
|
|
- userLoginLogService.addUserLoginLog(realIp, user, registerMobileParam.getGameId());
|
|
|
|
- //返回用户token
|
|
|
|
- return new ResultVo<>(new UserLoginVO(userToken));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 登录用户名密码合规检测
|
|
|
|
- *
|
|
|
|
- * @param username : 用户名验证
|
|
|
|
- * @param password : 密码验证
|
|
|
|
- * @return : 返回验证结果
|
|
|
|
- */
|
|
|
|
- private HttpStatusEnum checkRegister(String username, String password) {
|
|
|
|
- if (Strings.isBlank(username)) {
|
|
|
|
- return HttpStatusEnum.USERNAME_EMPTY;
|
|
|
|
- }
|
|
|
|
- //用户名长度验证
|
|
|
|
- if (username.length() < 4) {
|
|
|
|
- return HttpStatusEnum.USERNAME_TOO_SHORT;
|
|
|
|
- }
|
|
|
|
- if (username.length() > 32) {
|
|
|
|
- return HttpStatusEnum.USERNAME_TOO_LONG;
|
|
|
|
- }
|
|
|
|
-// boolean matches = username.matches("[\\s]");
|
|
|
|
-// if (!username.matches("/^[a-zA-Z0-9]+$/i")){
|
|
|
|
-// return HttpStatusEnum.USERNAME_BAD_CHAR;
|
|
|
|
-// }
|
|
|
|
-// //合规验证
|
|
|
|
-// if (username.matches("/\\s/") || username.matches("/^ZN/i") || !username.matches("^[a-zA-Z0-9]+$")) {
|
|
|
|
-// return HttpStatusEnum.USERNAME_BAD_CHAR;
|
|
|
|
-// }
|
|
|
|
-// //用户名不是手机号, 用户名只能是数字和字母
|
|
|
|
-// if (!StringUtils.checkPhone(username) && !username.matches("/^(?![^a-zA-Z]+$).{4,32}$/")) {
|
|
|
|
-// return HttpStatusEnum.USERNAME_BAD_CHAR;
|
|
|
|
-// }
|
|
|
|
- //判断用户名是否存在敏感词
|
|
|
|
- if (wordCheckService.hasWord(username)) {
|
|
|
|
- return HttpStatusEnum.USERNAME_SENSITIVE;
|
|
|
|
- }
|
|
|
|
- //判断用户名是否已存在
|
|
|
|
- if (super.count(new LambdaQueryWrapper<User>().eq(User::getUsername, username)) > 0) {
|
|
|
|
- return HttpStatusEnum.USERNAME_EXISTS;
|
|
|
|
- }
|
|
|
|
- //密码验证
|
|
|
|
- return this.checkPassword(password);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 密码合规检测
|
|
|
|
- *
|
|
|
|
- * @param password : 密码验证
|
|
|
|
- * @return : 返回验证结果
|
|
|
|
- */
|
|
|
|
- private HttpStatusEnum checkPassword(String password) {
|
|
|
|
- if (Strings.isBlank(password)) {
|
|
|
|
- return HttpStatusEnum.PASSWORD_EMPTY;
|
|
|
|
- }
|
|
|
|
- if (password.length() < 6) {
|
|
|
|
- return HttpStatusEnum.PASSWORD_TOO_SHORT;
|
|
|
|
- }
|
|
|
|
- if (password.length() > 32) {
|
|
|
|
- return HttpStatusEnum.PASSWORD_TOO_LONG;
|
|
|
|
- }
|
|
|
|
-// if (password.matches("/\\s/") || !password.matches("A([a-zA-Z0-9~`#$%^&*!@.,()\\\\{}|:;?<>]){6,32}$")) {
|
|
|
|
-// return HttpStatusEnum.PASSWORD_BAD_CHAR;
|
|
|
|
-// }
|
|
|
|
- return HttpStatusEnum.SUCCESS;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 用户昵称合规检测
|
|
|
|
- *
|
|
|
|
- * @param nickname : 用户昵称
|
|
|
|
- * @return : 检测结果
|
|
|
|
- */
|
|
|
|
- private HttpStatusEnum checkNickname(String nickname) {
|
|
|
|
- if (Strings.isBlank(nickname)) {
|
|
|
|
- return HttpStatusEnum.NICKNAME_EMPTY;
|
|
|
|
- }
|
|
|
|
- if (nickname.length() < 4) {
|
|
|
|
- return HttpStatusEnum.NICKNAME_TOO_SHORT;
|
|
|
|
- }
|
|
|
|
- if (nickname.length() > 32) {
|
|
|
|
- return HttpStatusEnum.NICKNAME_TOO_LONG;
|
|
|
|
- }
|
|
|
|
- //判断昵称是否存在敏感词
|
|
|
|
- if (wordCheckService.hasWord(nickname)) {
|
|
|
|
- return HttpStatusEnum.NICKNAME_SENSITIVE;
|
|
|
|
- }
|
|
|
|
- return HttpStatusEnum.SUCCESS;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 用户名密码登录
|
|
|
|
- *
|
|
|
|
- * @param userLoginParam : 登录参数
|
|
|
|
- * @param request : HttpServletRequest
|
|
|
|
- * @return : 返回登录token
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam, HttpServletRequest request) {
|
|
|
|
- //用户名
|
|
|
|
- String username = userLoginParam.getUsername();
|
|
|
|
- //密码
|
|
|
|
- String password = userLoginParam.getPassword();
|
|
|
|
- //用户信息
|
|
|
|
- User user;
|
|
|
|
- //验证用户名是否为手机号
|
|
|
|
- if (StringUtils.checkPhone(username)) {
|
|
|
|
- user = super.getOne(new LambdaQueryWrapper<User>().eq(User::getMobile, username));
|
|
|
|
- } else {
|
|
|
|
- user = super.getOne(new LambdaQueryWrapper<User>().eq(User::getUsername, username));
|
|
|
|
- }
|
|
|
|
- //用户信息不存在
|
|
|
|
- if (user == null) {
|
|
|
|
- return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
|
|
|
|
- }
|
|
|
|
- //判断账号是否停用
|
|
|
|
- if (Objects.equals(AccountStatusEnum.FROZEN_STATUS.getStatus(), user.getStatus())) {
|
|
|
|
- return new ResultVo<>(HttpStatusEnum.ACCOUNT_HALT);
|
|
|
|
- }
|
|
|
|
- //验证密码
|
|
|
|
- if (!Objects.equals(this.cmfPassword(password), user.getPassword())) {
|
|
|
|
- return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
|
|
|
|
- }
|
|
|
|
- //验证通过, 获取token
|
|
|
|
- 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));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 手机号登录
|
|
|
|
- *
|
|
|
|
- * @param loginMobileParam : 手机号登录参数
|
|
|
|
- * @param request : HttpServletRequest
|
|
|
|
- * @return : 返回登录信息
|
|
|
|
- */
|
|
|
|
- @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));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 用户重置密码
|
|
* 用户重置密码
|
|
*
|
|
*
|
|
@@ -316,55 +46,64 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public ResultVo<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam) {
|
|
public ResultVo<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam) {
|
|
- String mobile = updatePasswordParam.getMobile();
|
|
|
|
- Integer type = updatePasswordParam.getType();
|
|
|
|
- String code = updatePasswordParam.getCode();
|
|
|
|
- String username = updatePasswordParam.getUsername();
|
|
|
|
|
|
+ String token = updatePasswordParam.getToken();
|
|
String password = updatePasswordParam.getPassword();
|
|
String password = updatePasswordParam.getPassword();
|
|
- //根据用户名查询用户信息
|
|
|
|
- User user = super.getOne(new LambdaQueryWrapper<User>()
|
|
|
|
- .eq(User::getUsername, username)
|
|
|
|
- .eq(User::getMobile, mobile));
|
|
|
|
|
|
+ String username = updatePasswordParam.getUsername();
|
|
|
|
+ //查询用户信息
|
|
|
|
+ LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ if (StringUtils.checkPhone(username)) {
|
|
|
|
+ queryWrapper.eq(User::getMobile, username);
|
|
|
|
+ } else {
|
|
|
|
+ queryWrapper.eq(User::getUsername, username);
|
|
|
|
+ }
|
|
|
|
+ User user = super.getOne(queryWrapper);
|
|
if (user == null) {
|
|
if (user == null) {
|
|
return new ResultVo<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
|
|
return new ResultVo<>(HttpStatusEnum.USERNAME_NOT_EXISTS);
|
|
}
|
|
}
|
|
- //短信验证码校验
|
|
|
|
- HttpStatusEnum httpStatusEnum = smsService.smsCheck(type, mobile, code);
|
|
|
|
- if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
|
|
|
|
- return new ResultVo<>(httpStatusEnum);
|
|
|
|
|
|
+ //验证token是否存在
|
|
|
|
+ HttpStatusEnum checkUserTokenEnum = userTokenService.checkUserToken(token, user.getId(), updatePasswordParam.getDeviceType());
|
|
|
|
+ if (!Objects.equals(HttpStatusEnum.SUCCESS, checkUserTokenEnum)) {
|
|
|
|
+ return new ResultVo<>(checkUserTokenEnum);
|
|
}
|
|
}
|
|
//密码校验
|
|
//密码校验
|
|
- HttpStatusEnum checkPasswordEnum = this.checkPassword(password);
|
|
|
|
|
|
+ HttpStatusEnum checkPasswordEnum = RegisterUtils.checkPassword(password);
|
|
if (!Objects.equals(checkPasswordEnum, HttpStatusEnum.SUCCESS)) {
|
|
if (!Objects.equals(checkPasswordEnum, HttpStatusEnum.SUCCESS)) {
|
|
return new ResultVo<>(checkPasswordEnum);
|
|
return new ResultVo<>(checkPasswordEnum);
|
|
}
|
|
}
|
|
//修改用户密码
|
|
//修改用户密码
|
|
super.update(new LambdaUpdateWrapper<User>()
|
|
super.update(new LambdaUpdateWrapper<User>()
|
|
- .set(User::getPassword, this.cmfPassword(password))
|
|
|
|
|
|
+ .set(User::getPassword, RegisterUtils.cmfPassword(password))
|
|
.set(User::getUpdateTime, LocalDateTime.now())
|
|
.set(User::getUpdateTime, LocalDateTime.now())
|
|
- .eq(User::getId, user.getId()));
|
|
|
|
|
|
+ .eq(User::getUsername, username));
|
|
//返回修改成功
|
|
//返回修改成功
|
|
return new ResultVo<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
|
|
return new ResultVo<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 密码cfm加密
|
|
|
|
|
|
+ * 获取用户信息
|
|
*
|
|
*
|
|
- * @param password : 密码
|
|
|
|
- * @return : 返回加密完的密码
|
|
|
|
|
|
+ * @param userDetailParam : 用户详情参数
|
|
|
|
+ * @return : 返回用户信息
|
|
*/
|
|
*/
|
|
- private String cmfPassword(String password) {
|
|
|
|
- String passwordSalt = password + CmfSaltEnum.CMF_PASSWORD.getSalt();
|
|
|
|
- try {
|
|
|
|
- return "###" + MD5Utils.md5Hex(MD5Utils.md5Hex(passwordSalt.getBytes()).getBytes());
|
|
|
|
- } catch (NoSuchAlgorithmException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- throw new BaseException("密码加密异常");
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public ResultVo<UserVO> getUserDetail(UserDetailParam userDetailParam) {
|
|
|
|
+ String token = userDetailParam.getToken();
|
|
|
|
+ String deviceType = userDetailParam.getDeviceType();
|
|
|
|
+ UserTokenDTO userTokenDTO = userTokenService.getTokenInfoByTokenDevice(token, deviceType);
|
|
|
|
+ if (userTokenDTO == null) {
|
|
|
|
+ return new ResultVo<>(HttpStatusEnum.INVALID_PARAMS);
|
|
|
|
+ }
|
|
|
|
+ //查询用户信息
|
|
|
|
+ User user = super.getById(userTokenDTO.getUserId());
|
|
|
|
+ if (user == null) {
|
|
|
|
+ return new ResultVo<>(HttpStatusEnum.UNKNOWN_ERROR);
|
|
}
|
|
}
|
|
|
|
+ UserVO userVO = BeanUtils.copy(user, UserVO.class);
|
|
|
|
+ return new ResultVo<>(HttpStatusEnum.SUCCESS, userVO);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 检查用户手机号是否存在
|
|
|
|
|
|
+ * 根据手机号获取用户信息
|
|
*
|
|
*
|
|
* @param mobile : 用户手机号
|
|
* @param mobile : 用户手机号
|
|
* @return : 返回用户信息
|
|
* @return : 返回用户信息
|