From 773569fbdf672460c1c1457b8380841d2d19ece0 Mon Sep 17 00:00:00 2001 From: Tang Cheng Date: Mon, 8 Jul 2019 23:23:28 +0800 Subject: [PATCH] =?utf8?q?=E5=AE=9A=E4=B9=89validator?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dlpay/api/annotation/IntegerList.java | 21 +++++++++++++++ .../dlpay/api/annotation/StringList.java | 21 +++++++++++++++ .../dlpay/api/bean/OpenShopParam.java | 2 ++ .../api/validator/IntegerListValidator.java | 27 +++++++++++++++++++ .../api/validator/StringListValidator.java | 24 +++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 common/src/main/java/com/supwisdom/dlpay/api/annotation/IntegerList.java create mode 100644 common/src/main/java/com/supwisdom/dlpay/api/annotation/StringList.java create mode 100644 common/src/main/java/com/supwisdom/dlpay/api/validator/IntegerListValidator.java create mode 100644 common/src/main/java/com/supwisdom/dlpay/api/validator/StringListValidator.java 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(); + } +} -- 2.17.1