From 96de704258c57a39612d5cf8d692b349f75c2f31 Mon Sep 17 00:00:00 2001 From: Hanserwei Date: Tue, 30 Sep 2025 15:58:36 +0800 Subject: [PATCH] =?UTF-8?q?han-note=E9=A1=B9=E7=9B=AE=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=AE=8C=E6=AF=95=EF=BC=81=20-=20=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=82=AE=E7=AE=B1=E6=A0=A1=E9=AA=8C=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/vo/SendVerificationCodeReqVO.java | 2 ++ .../common/validate/EmailNumber.java | 21 +++++++++++++++++++ .../common/validate/EmailValidator.java | 16 ++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailNumber.java create mode 100644 hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailValidator.java diff --git a/han-note-auth/src/main/java/com/hanserwei/hannote/auth/model/vo/SendVerificationCodeReqVO.java b/han-note-auth/src/main/java/com/hanserwei/hannote/auth/model/vo/SendVerificationCodeReqVO.java index 725504e..2c49dce 100644 --- a/han-note-auth/src/main/java/com/hanserwei/hannote/auth/model/vo/SendVerificationCodeReqVO.java +++ b/han-note-auth/src/main/java/com/hanserwei/hannote/auth/model/vo/SendVerificationCodeReqVO.java @@ -1,5 +1,6 @@ package com.hanserwei.hannote.auth.model.vo; +import com.hanserwei.framework.common.validate.EmailNumber; import jakarta.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Builder; @@ -13,6 +14,7 @@ import lombok.NoArgsConstructor; public class SendVerificationCodeReqVO { @NotBlank(message = "邮箱不能为空") + @EmailNumber private String email; } \ No newline at end of file diff --git a/hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailNumber.java b/hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailNumber.java new file mode 100644 index 0000000..48e6661 --- /dev/null +++ b/hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailNumber.java @@ -0,0 +1,21 @@ +package com.hanserwei.framework.common.validate; + +import jakarta.validation.Constraint; +import jakarta.validation.Payload; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = EmailValidator.class) +public @interface EmailNumber { + + String message() default "邮箱格式不正确,请检查!"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailValidator.java b/hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailValidator.java new file mode 100644 index 0000000..004a119 --- /dev/null +++ b/hanserwei-framework/hanserwei-common/src/main/java/com/hanserwei/framework/common/validate/EmailValidator.java @@ -0,0 +1,16 @@ +package com.hanserwei.framework.common.validate; + +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; + +public class EmailValidator implements ConstraintValidator { + + @Override + public void initialize(EmailNumber constraintAnnotation) { + } + + @Override + public boolean isValid(String emailNumber, ConstraintValidatorContext constraintValidatorContext) { + return emailNumber != null && emailNumber.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"); + } +}