xujunwei 2 anni fa
parent
commit
f45567c2d9

+ 37 - 0
framework-boot/src/main/java/com/mrxu/framework/boot/validation/MobileValidator.java

@@ -0,0 +1,37 @@
+package com.mrxu.framework.boot.validation;
+
+import cn.hutool.core.util.PhoneUtil;
+import com.mrxu.framework.common.util.StrFunc;
+
+import javax.validation.Constraint;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import javax.validation.Payload;
+import java.lang.annotation.*;
+
+public class MobileValidator implements ConstraintValidator<MobileValidator.Mobile,String> {
+
+    @Override
+    public void initialize(Mobile constraintAnnotation) {
+        ConstraintValidator.super.initialize(constraintAnnotation);
+    }
+
+    @Override
+    public boolean isValid(String value, ConstraintValidatorContext context) {
+        if(StrFunc.isNotEmpty(value)) {
+            return PhoneUtil.isMobile(value);
+        }
+        return true;
+    }
+
+    @Target({ElementType.FIELD, ElementType.PARAMETER})
+    @Retention(RetentionPolicy.RUNTIME)
+    @Documented
+    @Constraint(validatedBy = {MobileValidator.class})
+    public @interface Mobile {
+        String message() default "手机号格式错误";
+        Class<?>[] groups() default {};
+        Class<? extends Payload>[] payload() default {};
+    }
+}
+