From: Tang Cheng Date: Mon, 8 Jul 2019 15:23:28 +0000 (+0800) Subject: 定义validator X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=193f5da9e0e84e7a1d9ff714465b2786bdd7af19;p=epayment%2Ffood_payapi.git 定义validator --- diff --git a/common/src/main/java/com/supwisdom/dlpay/api/annotation/IntegerList.java b/common/src/main/java/com/supwisdom/dlpay/api/annotation/IntegerList.java new file mode 100644 index 00000000..84879061 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/annotation/IntegerList.java @@ -0,0 +1,21 @@ +package com.supwisdom.dlpay.api.annotation; + +import com.supwisdom.dlpay.api.validator.StringListValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Constraint(validatedBy = {StringListValidator.class}) +@Documented +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface IntegerList { + String message() default "{validator.message.integerlist}"; + + Class[] groups() default {}; + + Class[] payload() default {}; + + String[] value(); +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/annotation/StringList.java b/common/src/main/java/com/supwisdom/dlpay/api/annotation/StringList.java new file mode 100644 index 00000000..2c608dfc --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/annotation/StringList.java @@ -0,0 +1,21 @@ +package com.supwisdom.dlpay.api.annotation; + +import com.supwisdom.dlpay.api.validator.StringListValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Constraint(validatedBy = {StringListValidator.class}) +@Documented +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface StringList { + String message() default "{validator.message.stringlist}"; + + Class[] groups() default {}; + + Class[] payload() default {}; + + String[] value(); +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java index ffbd2a6e..4fc1ae13 100644 --- a/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java @@ -7,6 +7,7 @@ import com.supwisdom.dlpay.api.annotation.ShopType; import lombok.Getter; import lombok.Setter; +import javax.validation.constraints.Email; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; @@ -34,6 +35,7 @@ public class OpenShopParam extends APIRequestParam { @Sign private String mobile; @Sign + @Email(message = "Email 格式错误") private String email; @Sign private String address; diff --git a/common/src/main/java/com/supwisdom/dlpay/api/validator/IntegerListValidator.java b/common/src/main/java/com/supwisdom/dlpay/api/validator/IntegerListValidator.java new file mode 100644 index 00000000..aec2ceec --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/validator/IntegerListValidator.java @@ -0,0 +1,27 @@ +package com.supwisdom.dlpay.api.validator; + +import com.supwisdom.dlpay.api.annotation.IntegerList; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Arrays; + +public class IntegerListValidator implements ConstraintValidator { + + private Integer[] valueList; + + @Override + public boolean isValid(Integer value, ConstraintValidatorContext context) { + if (Arrays.asList(valueList).contains(value)) + return true; + return false; + } + + @Override + public void initialize(IntegerList constraintAnnotation) { + valueList = new Integer[constraintAnnotation.value().length]; + for (int i = 0; i < constraintAnnotation.value().length; i++) { + valueList[i] = Integer.parseInt(constraintAnnotation.value()[i]); + } + } +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/validator/StringListValidator.java b/common/src/main/java/com/supwisdom/dlpay/api/validator/StringListValidator.java new file mode 100644 index 00000000..63f6299c --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/validator/StringListValidator.java @@ -0,0 +1,24 @@ +package com.supwisdom.dlpay.api.validator; + +import com.supwisdom.dlpay.api.annotation.StringList; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Arrays; + +public class StringListValidator implements ConstraintValidator { + + private String[] valueList; + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + if (Arrays.asList(valueList).contains(value)) + return true; + return false; + } + + @Override + public void initialize(StringList constraintAnnotation) { + valueList = constraintAnnotation.value(); + } +}