From f7351025930f9bf960d66e1f2b7b6398aa9bc750 Mon Sep 17 00:00:00 2001 From: Theo <971366405@qq.com> Date: Mon, 10 Feb 2025 11:37:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(system):=20=E4=BC=98=E5=8C=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=AE=E6=94=B9=E9=82=AE=E7=AE=B1=E5=92=8C=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=8F=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 EmailUpdateForm 和 MobileUpdateForm 中添加了 @NotBlank 注解,确保邮箱和手机号不能为空 - 在 UserServiceImpl 中增加了验证码过期检查和验证完成后删除验证码的逻辑 - 优化了错误提示信息,提高用户体验 --- .../boot/system/model/form/EmailUpdateForm.java | 5 ++++- .../boot/system/model/form/MobileUpdateForm.java | 3 +++ .../boot/system/service/impl/UserServiceImpl.java | 11 +++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java b/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java index 971fdf45..22524f1d 100644 --- a/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java +++ b/src/main/java/com/youlai/boot/system/model/form/EmailUpdateForm.java @@ -1,6 +1,7 @@ package com.youlai.boot.system.model.form; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; /** @@ -9,14 +10,16 @@ import lombok.Data; * @author Ray.Hao * @since 2024/8/19 */ -@Schema(description = "修改邮箱表单") @Data +@Schema(description = "修改邮箱表单") public class EmailUpdateForm { @Schema(description = "邮箱") + @NotBlank(message = "邮箱不能为空") private String email; @Schema(description = "验证码") + @NotBlank(message = "验证码不能为空") private String code; } diff --git a/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java b/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java index a5612b48..d15bf824 100644 --- a/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java +++ b/src/main/java/com/youlai/boot/system/model/form/MobileUpdateForm.java @@ -1,6 +1,7 @@ package com.youlai.boot.system.model.form; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Data; /** @@ -14,9 +15,11 @@ import lombok.Data; public class MobileUpdateForm { @Schema(description = "手机号码") + @NotBlank(message = "手机号码不能为空") private String mobile; @Schema(description = "验证码") + @NotBlank(message = "验证码不能为空") private String code; } diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java index c4f74448..e563df8b 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java @@ -451,9 +451,14 @@ public class UserServiceImpl extends ServiceImpl implements Us String redisCacheKey = RedisConstants.SMS_CHANGE_CODE_PREFIX + mobile; String cachedVerifyCode = redisTemplate.opsForValue().get(redisCacheKey); + if (StrUtil.isBlank(cachedVerifyCode)) { + throw new BusinessException("验证码已过期"); + } if (!inputVerifyCode.equals(cachedVerifyCode)) { throw new BusinessException("验证码错误"); } + // 验证完成删除验证码 + redisTemplate.delete(redisCacheKey); // 更新手机号码 return this.update( @@ -505,9 +510,15 @@ public class UserServiceImpl extends ServiceImpl implements Us String redisCacheKey = RedisConstants.EMAIL_CHANGE_CODE_PREFIX + email; String cachedVerifyCode = redisTemplate.opsForValue().get(redisCacheKey); + if (StrUtil.isBlank(cachedVerifyCode)) { + throw new BusinessException("验证码已过期"); + } + if (!inputVerifyCode.equals(cachedVerifyCode)) { throw new BusinessException("验证码错误"); } + // 验证完成删除验证码 + redisTemplate.delete(redisCacheKey); // 更新邮箱地址 return this.update(