Przeglądaj źródła

添加自定义验证注解

mac 2 lat temu
rodzic
commit
7d1f41610c

+ 29 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/valid/Phone.java

@@ -0,0 +1,29 @@
+package com.kxs.common.core.valid;
+
+import com.kxs.common.core.valid.impl.PhoneValidator;
+import jakarta.validation.Constraint;
+import jakarta.validation.Payload;
+
+import java.lang.annotation.*;
+
+/**
+ * 手机号验证正则
+ * @author mac
+ */
+@Target({ElementType.FIELD,ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Constraint(validatedBy = {PhoneValidator.class})// 指定约束处理器,也就是手机号格式验证是哪个类来做校验
+public @interface Phone {
+
+    String pattern() default "^(?:(?:\\+|00)86)?1\\d{10}$";
+
+    String message() default "手机号格式非法";
+
+    Class<?>[] groups() default { }; // groups用来指定分组,可以让校验采取不同的机制,当前默认未指定任何分组机制,默认每次都要进行校验
+
+    Class<? extends Payload>[] payload() default { };
+
+
+}
+

+ 36 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/valid/impl/PhoneValidator.java

@@ -0,0 +1,36 @@
+package com.kxs.common.core.valid.impl;
+
+import com.kxs.common.core.valid.Phone;
+import jakarta.validation.ConstraintValidator;
+import jakarta.validation.ConstraintValidatorContext;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 校验处理器:做手机号码格式验证的核心类
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-11
+ */
+public class PhoneValidator implements ConstraintValidator<Phone, String> {
+
+    // 注解对象
+    private Phone phone;
+
+    // 初始化【Phone】对象
+    @Override
+    public void initialize(Phone constraintAnnotation) {
+        phone = constraintAnnotation;
+    }
+
+    @Override
+    public boolean isValid(String value, ConstraintValidatorContext context) {
+        // 获取【Phone】对象的手机格式验证表达式
+        String pattern = phone.pattern();
+        Pattern compile = Pattern.compile(pattern);
+        Matcher matcher = compile.matcher(value);
+        return matcher.matches();
+    }
+}
+

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/app/RegisterDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.app;
 
+import com.kxs.common.core.valid.Phone;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 
@@ -14,6 +15,7 @@ public class RegisterDTO {
 	 * 手机号
 	 */
 	@NotBlank(message = "手机号码不能为空")
+	@Phone
 	private String phone;
 
 	/**

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/RealUserDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.user;
 
+import com.kxs.common.core.valid.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
@@ -91,6 +92,7 @@ public class RealUserDTO {
      */
     @Schema(description = "预留手机号")
     @NotBlank(message = "预留手机号不能为空")
+    @Phone
     private String bankPhone;
 
 

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserCheckUserInfoDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.user;
 
+import com.kxs.common.core.valid.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
@@ -19,6 +20,7 @@ public class UserCheckUserInfoDTO {
      */
     @Schema(description = "手机号")
     @NotBlank(message = "手机号不能为空")
+    @Phone
     private String phone;
 
 

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdateBankInfoDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.user;
 
+import com.kxs.common.core.valid.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
@@ -35,6 +36,7 @@ public class UserUpdateBankInfoDTO {
      */
     @Schema(description = "预留手机号")
     @NotBlank(message = "预留手机号不能为空")
+    @Phone
     private String bankPhone;
 
 

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserUpdateLoginPhoneDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.user;
 
+import com.kxs.common.core.valid.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
@@ -19,6 +20,7 @@ public class UserUpdateLoginPhoneDTO {
      */
     @Schema(description = "手机号")
     @NotBlank(message = "手机号不能为空")
+    @Phone
     private String phone;
 
 

+ 2 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/userAddress/UserAddressDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.user.api.dto.kxsapp.userAddress;
 
+import com.kxs.common.core.valid.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
@@ -34,6 +35,7 @@ public class UserAddressDTO {
      */
     @Schema(description = "联系电话")
     @NotBlank(message = "联系电话不能为空")
+    @Phone
     private String phone;