|
|
@@ -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 {};
|
|
|
+ }
|
|
|
+}
|
|
|
+
|