From 3657f88970ebea3b69d5e3fdda760eeacdec21a3 Mon Sep 17 00:00:00 2001 From: meowrain Date: Sat, 10 Jan 2026 00:05:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E4=B8=8E=E8=A7=A3=E7=BB=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现邮箱绑定接口,支持通过验证码绑定邮箱 - 实现邮箱解绑接口,支持用户解绑已绑定的邮箱 - 添加BindEmailRequest DTO用于邮箱绑定请求 - 完善Swagger文档注解,提升API文档可读性 Co-Authored-By: Claude --- .../controller/UserController.java | 26 ++++++++++++++----- .../userservice/dto/req/BindEmailRequest.java | 16 ++++++++++++ .../dto/req/EmailSendCodeRequestDTO.java | 3 +++ 3 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/BindEmailRequest.java diff --git a/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/controller/UserController.java b/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/controller/UserController.java index 104ab4e..8f5a064 100644 --- a/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/controller/UserController.java +++ b/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/controller/UserController.java @@ -1,7 +1,9 @@ package cn.meowrain.aioj.backend.userservice.controller; +import cn.meowrain.aioj.backend.framework.core.utils.ContextHolderUtils; import cn.meowrain.aioj.backend.framework.core.web.Result; import cn.meowrain.aioj.backend.framework.core.web.Results; +import cn.meowrain.aioj.backend.userservice.dto.req.BindEmailRequest; import cn.meowrain.aioj.backend.userservice.dto.req.EmailSendCodeRequestDTO; import cn.meowrain.aioj.backend.userservice.dto.req.UserRegisterRequestDTO; import cn.meowrain.aioj.backend.userservice.dto.resp.UserAuthRespDTO; @@ -53,6 +55,7 @@ public class UserController { /** * 发送验证码 */ + @Operation(summary = "发送验证码", description = "根据用户注册的邮箱发送验证码") @GetMapping("/email/send-code") public Result getVerifyCode(@Parameter(description = "邮箱信息", required = true) @Valid @RequestParam EmailSendCodeRequestDTO request) { @@ -62,16 +65,27 @@ public class UserController { /** * 绑定邮箱 + * + * @param request 邮箱绑定请求体 + * @return */ + @Operation(summary = "绑定邮箱", description = "根据用户注册的邮箱绑定邮箱") @PostMapping("/email/bind") - public Result bindEmail(@RequestBody String email) { -// TODO: 待实现 - return null; + public Result bindEmail(@RequestBody BindEmailRequest request) { + userService.bindEmail(request.getEmail(), request.getCode()); + return Results.success(null); } + /** + * 解绑邮箱 + * + * @param email 邮箱 + * @return + */ + @Operation(summary = "解绑邮箱", description = "根据用户注册的邮箱解绑邮箱") @PostMapping("/email/unbind") - public Result unbindEmail() { -// TODO: 待实现 - return null; + public Result unbindEmail(@RequestBody String email) { + userService.unbindEmail(ContextHolderUtils.getCurrentUserId()); + return Results.success(null); } } diff --git a/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/BindEmailRequest.java b/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/BindEmailRequest.java new file mode 100644 index 0000000..9bd9684 --- /dev/null +++ b/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/BindEmailRequest.java @@ -0,0 +1,16 @@ +package cn.meowrain.aioj.backend.userservice.dto.req; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 邮箱绑定请求体 + */ +@Data +@Schema(description = "邮箱绑定请求体") +public class BindEmailRequest { + @Schema(description = "邮箱",example = "123@qq.com") + private String email; + @Schema(description = "验证码",example = "123456") + private String code; +} diff --git a/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/EmailSendCodeRequestDTO.java b/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/EmailSendCodeRequestDTO.java index a1698ed..c53e406 100644 --- a/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/EmailSendCodeRequestDTO.java +++ b/aioj-backend-user-service/src/main/java/cn/meowrain/aioj/backend/userservice/dto/req/EmailSendCodeRequestDTO.java @@ -1,5 +1,6 @@ package cn.meowrain.aioj.backend.userservice.dto.req; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -8,8 +9,10 @@ import lombok.Data; * 用户注册的邮箱 请求对象 */ @Data +@Schema(description = "用户注册的邮箱 请求对象") public class EmailSendCodeRequestDTO { @NotNull @Email + @Schema(description = "邮箱",example = "123@qq.com") String email; }