v1.0.15
CI / build-deploy (pull_request) Failing after 6s
CI / notify-on-failure (pull_request) Successful in 0s

This commit is contained in:
Timi
2026-08-16 01:44:45 +08:00
parent 75fd4bed18
commit 7f6cebd4e2
7 changed files with 94 additions and 23 deletions
@@ -1,5 +1,6 @@
package com.imyeyu.api.modules.user.service;
import com.e2ins.ms.notify.vo.sms.CaptchaVerifyReq;
import com.imyeyu.api.modules.user.entity.User;
import com.imyeyu.api.modules.user.vo.LoginRequest;
import com.imyeyu.api.modules.user.vo.LoginResponse;
@@ -23,6 +24,8 @@ public interface UserLoginService {
LoginResponse login(String token, String userId);
LoginResponse loginBySms(CaptchaVerifyReq req);
/**
* 根据令牌获取用户
*
@@ -1,5 +1,8 @@
package com.imyeyu.api.modules.user.service.implement;
import com.e2ins.ms.notify.SmsNotifyService;
import com.e2ins.ms.notify.bean.NotifyDetail;
import com.e2ins.ms.notify.vo.sms.CaptchaVerifyReq;
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
import com.imyeyu.api.modules.common.entity.Attachment;
import com.imyeyu.api.modules.common.entity.Setting;
@@ -7,13 +10,13 @@ import com.imyeyu.api.modules.common.service.AttachmentService;
import com.imyeyu.api.modules.common.service.SettingService;
import com.imyeyu.api.modules.user.bean.BootstrapData;
import com.imyeyu.api.modules.user.entity.User;
import com.imyeyu.api.modules.user.service.RoleService;
import com.imyeyu.api.modules.user.service.UserLoginService;
import com.imyeyu.api.modules.user.service.UserRoleService;
import com.imyeyu.api.modules.user.service.UserService;
import com.imyeyu.api.modules.user.vo.LoginRequest;
import com.imyeyu.api.modules.user.vo.LoginResponse;
import com.imyeyu.java.TimiJava;
import com.imyeyu.java.bean.timi.TimiCode;
import com.imyeyu.java.bean.timi.TimiException;
import com.imyeyu.spring.TimiSpring;
import com.imyeyu.spring.util.Redis;
@@ -27,6 +30,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
@@ -44,9 +48,9 @@ public class UserLoginServiceImplement implements UserLoginService, TimiJava {
private static final long PHONE_VERIFY_CODE_TTL = Time.M * 5;
private final UserService userService;
private final RoleService roleService;
private final SettingService settingService;
private final UserRoleService userRoleService;
private final SmsNotifyService smsNotifyService;
private final AttachmentService attachmentService;
private final Redis<String, String> redisUserToken;
@@ -98,6 +102,24 @@ public class UserLoginServiceImplement implements UserLoginService, TimiJava {
return result;
}
@Override
public LoginResponse loginBySms(CaptchaVerifyReq req) {
try {
NotifyDetail detail = smsNotifyService.captchaVerify(req);
// 无报错即成功
User user = userService.getByPhoneNo(detail.getSendTo());
if (!user.isValidPhone()) {
user.setPhoneNoVerifyAt(Time.now());
userService.update(user);
}
return login(UUID.randomUUID().toString(), user.getId());
} catch (IOException e) {
log.error("login by sms error", e);
throw new TimiException(TimiCode.ERROR, "验证短信失败");
}
}
@Override
public User getLoginUser(String token) {
if (TimiJava.isEmpty(token)) {