From e18274790ee60f8762e92e80c4e19ae290db8f95 Mon Sep 17 00:00:00 2001 From: ziin Date: Thu, 4 Dec 2025 17:06:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(user):=20=E6=96=B0=E5=A2=9E=E9=82=AE?= =?UTF-8?q?=E7=AE=B1=E9=AA=8C=E8=AF=81=E7=A0=81=E5=8F=91=E9=80=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=B8=8E=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 拆分验证码发送逻辑至独立接口 /sendVerifyMail - 注册时增加验证码校验与 VERIFY_CODE_ERROR 错误码 - 新增 SendMailDTO 封装邮箱地址参数 --- .../java/com/yolo/keyborad/common/ErrorCode.java | 3 ++- .../yolo/keyborad/controller/UserController.java | 8 ++++++++ .../yolo/keyborad/model/dto/user/SendMailDTO.java | 15 +++++++++++++++ .../keyborad/model/dto/user/UserRegisterDTO.java | 3 +++ .../com/yolo/keyborad/service/UserService.java | 1 + .../keyborad/service/impl/UserServiceImpl.java | 14 +++++++++++--- 6 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/yolo/keyborad/model/dto/user/SendMailDTO.java diff --git a/src/main/java/com/yolo/keyborad/common/ErrorCode.java b/src/main/java/com/yolo/keyborad/common/ErrorCode.java index e1007e5..ee64485 100644 --- a/src/main/java/com/yolo/keyborad/common/ErrorCode.java +++ b/src/main/java/com/yolo/keyborad/common/ErrorCode.java @@ -34,7 +34,8 @@ public enum ErrorCode { SEND_MAIL_FAILED(50004,"邮件发送失败" ), CONFIRM_PASSWORD_NOT_MATCH(50005,"重复密码不匹配" ), USER_CHARACTER_ADD_ERROR(50006,"添加用户键盘字符失败" ), - USER_CHARACTER_DEL_ERROR(50007, "删除用户人设失败"); + USER_CHARACTER_DEL_ERROR(50007, "删除用户人设失败"), + VERIFY_CODE_ERROR(50008, "验证码错误"); /** * 状态码 */ diff --git a/src/main/java/com/yolo/keyborad/controller/UserController.java b/src/main/java/com/yolo/keyborad/controller/UserController.java index 869a7ac..8dcce1b 100644 --- a/src/main/java/com/yolo/keyborad/controller/UserController.java +++ b/src/main/java/com/yolo/keyborad/controller/UserController.java @@ -86,4 +86,12 @@ public class UserController { userService.userRegister(userRegisterDTO); return ResultUtils.success(true); } + + @PostMapping("/sendVerifyMail") + @Operation(summary = "发送验证码",description = "发送验证码接口") + public BaseResponse sendVerifyMail(@RequestBody UserRegisterDTO userRegisterDTO) { + userService.sendVerifyMail(userRegisterDTO); + return ResultUtils.success(true); + } + } \ No newline at end of file diff --git a/src/main/java/com/yolo/keyborad/model/dto/user/SendMailDTO.java b/src/main/java/com/yolo/keyborad/model/dto/user/SendMailDTO.java new file mode 100644 index 0000000..ff28f91 --- /dev/null +++ b/src/main/java/com/yolo/keyborad/model/dto/user/SendMailDTO.java @@ -0,0 +1,15 @@ +package com.yolo.keyborad.model.dto.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/* + * @author: ziin + * @date: 2025/12/4 17:00 + */ +@Data +public class SendMailDTO { + + @Schema(description = "邮箱地址") + private String mailAddress; +} diff --git a/src/main/java/com/yolo/keyborad/model/dto/user/UserRegisterDTO.java b/src/main/java/com/yolo/keyborad/model/dto/user/UserRegisterDTO.java index 7c6c818..e0ee6b3 100644 --- a/src/main/java/com/yolo/keyborad/model/dto/user/UserRegisterDTO.java +++ b/src/main/java/com/yolo/keyborad/model/dto/user/UserRegisterDTO.java @@ -21,4 +21,7 @@ public class UserRegisterDTO { @Schema(description = "性别") private Integer gender; + + @Schema(description = "验证码") + private String verifyCode; } diff --git a/src/main/java/com/yolo/keyborad/service/UserService.java b/src/main/java/com/yolo/keyborad/service/UserService.java index f0c9508..aae391a 100644 --- a/src/main/java/com/yolo/keyborad/service/UserService.java +++ b/src/main/java/com/yolo/keyborad/service/UserService.java @@ -23,4 +23,5 @@ public interface UserService extends IService { Boolean userRegister(UserRegisterDTO userRegisterDTO); + void sendVerifyMail(UserRegisterDTO userRegisterDTO); } diff --git a/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java index 2b94847..ca45e53 100644 --- a/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java +++ b/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java @@ -118,9 +118,17 @@ public class UserServiceImpl extends ServiceImpl 0; } + + @Override + public void sendVerifyMail(UserRegisterDTO userRegisterDTO) { + int code = RandomUtil.randomInt(100000, 999999); + redisUtil.setEx("user:"+userRegisterDTO.getMailAddress(), String.valueOf(code),600, TimeUnit.SECONDS); + sendMailUtils.sendEmail(null,userRegisterDTO.getMailAddress(),code); + } }