|
@@ -259,39 +259,35 @@ public class UserGatewayImpl implements UserGateway {
|
|
|
|
|
|
@Override
|
|
|
public UserDto loginBySmsCode(LoginBySmsCodeParams request) {
|
|
|
- UserDto userDto = new UserDto();
|
|
|
String phone = request.getUserName();
|
|
|
- UserInfo user = userService.checkUserByPassword(phone, null);
|
|
|
- if (Objects.nonNull(user)) {
|
|
|
- String redisKey = RedisCacheConstant.SMS_LOGIN_CODE + phone;
|
|
|
- log.info("验证登录验证码:手机号={}, 输入验证码={}, Redis key={}", phone, request.getSmsCode(), redisKey);
|
|
|
-
|
|
|
- Object cacheSmsCodeObj = redisService.get(redisKey);
|
|
|
- log.info("从Redis获取登录验证码:key={}, value={}", redisKey, cacheSmsCodeObj);
|
|
|
-
|
|
|
- if (Objects.isNull(cacheSmsCodeObj)) {
|
|
|
- log.warn("登录验证码已过期或不存在:手机号={}, Redis key={}", phone, redisKey);
|
|
|
- throw new BizException(ErrorEnum.SMS_CODE_EXPIRED.getErrorCode(), ErrorEnum.SMS_CODE_EXPIRED.getErrorMessage());
|
|
|
- }
|
|
|
- String cacheSmsCode = String.valueOf(cacheSmsCodeObj);
|
|
|
- log.info("登录验证码比较:输入={}, 缓存={}", request.getSmsCode(), cacheSmsCode);
|
|
|
-
|
|
|
- if (!Objects.equals(request.getSmsCode(), cacheSmsCode)) {
|
|
|
- log.warn("登录验证码错误:手机号={}, 输入={}, 缓存={}", phone, request.getSmsCode(), cacheSmsCode);
|
|
|
- throw new BizException(ErrorEnum.SMS_CODE_ERROR.getErrorCode(), ErrorEnum.SMS_CODE_ERROR.getErrorMessage());
|
|
|
- }
|
|
|
- redisService.del(redisKey);
|
|
|
+ UserInfo user = userService.queryByPhone(phone);
|
|
|
+ if (user == null) {
|
|
|
+ throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ String redisKey = RedisCacheConstant.SMS_LOGIN_CODE + phone;
|
|
|
+ Object cacheSmsCodeObj = redisService.get(redisKey);
|
|
|
+ if (cacheSmsCodeObj == null) {
|
|
|
+ throw new BizException(ErrorEnum.SMS_CODE_EXPIRED.getErrorCode(), ErrorEnum.SMS_CODE_EXPIRED.getErrorMessage());
|
|
|
}
|
|
|
- BeanUtils.copyProperties(user, userDto);
|
|
|
- userDto.setUserId(user.getUserId()
|
|
|
- );
|
|
|
|
|
|
- /*
|
|
|
- 通过sa-token获取token
|
|
|
- */
|
|
|
- StpUtil.login(user.getUserId());
|
|
|
+ String cacheSmsCode = String.valueOf(cacheSmsCodeObj);
|
|
|
+ if (!Objects.equals(request.getSmsCode(), cacheSmsCode)) {
|
|
|
+ throw new BizException(ErrorEnum.SMS_CODE_ERROR.getErrorCode(), ErrorEnum.SMS_CODE_ERROR.getErrorMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ redisService.del(redisKey);
|
|
|
+
|
|
|
+ // 登录
|
|
|
+ StpUtil.login(String.valueOf(user.getUserId()));
|
|
|
SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
|
|
|
|
|
|
+ // 构造返回对象
|
|
|
+ UserDto userDto = new UserDto();
|
|
|
+ BeanUtils.copyProperties(user, userDto);
|
|
|
+ userDto.setUserId(user.getUserId());
|
|
|
+ userDto.setToken(tokenInfo.getTokenValue());
|
|
|
+
|
|
|
return userDto;
|
|
|
}
|
|
|
|