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+)*$"); + } +}