feat:增加细化的domain超类接口
This commit is contained in:
parent
25d00ec9bf
commit
fa30ebb8c2
|
@ -1,7 +1,7 @@
|
||||||
package com.flyfish.framework.validation.annotations;
|
package com.flyfish.framework.validation.annotations;
|
||||||
|
|
||||||
|
import com.flyfish.framework.validation.annotations.UniqueField.List;
|
||||||
import com.flyfish.framework.validation.validators.IdCardValidator;
|
import com.flyfish.framework.validation.validators.UniqueFieldValidator;
|
||||||
|
|
||||||
import javax.validation.Constraint;
|
import javax.validation.Constraint;
|
||||||
import javax.validation.Payload;
|
import javax.validation.Payload;
|
||||||
|
@ -9,11 +9,8 @@ import java.lang.annotation.Documented;
|
||||||
import java.lang.annotation.Repeatable;
|
import java.lang.annotation.Repeatable;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
import com.flyfish.framework.validation.annotations.UniqueField.List;
|
|
||||||
import com.flyfish.framework.validation.validators.UniqueFieldValidator;
|
|
||||||
|
|
||||||
import static java.lang.annotation.ElementType.*;
|
import static java.lang.annotation.ElementType.*;
|
||||||
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
|
|
||||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
|
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
|
||||||
|
|
|
@ -10,10 +10,10 @@ import javax.validation.ConstraintValidator;
|
||||||
import javax.validation.ConstraintValidatorContext;
|
import javax.validation.ConstraintValidatorContext;
|
||||||
import java.beans.PropertyDescriptor;
|
import java.beans.PropertyDescriptor;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.List;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class UniqueFieldValidator implements ConstraintValidator<UniqueField, List<Object>> {
|
public class UniqueFieldValidator implements ConstraintValidator<UniqueField, Collection> {
|
||||||
|
|
||||||
private String field;
|
private String field;
|
||||||
|
|
||||||
|
@ -34,12 +34,12 @@ public class UniqueFieldValidator implements ConstraintValidator<UniqueField, Li
|
||||||
* @return {@code false} if {@code value} does not pass the constraint
|
* @return {@code false} if {@code value} does not pass the constraint
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isValid(List<Object> value, ConstraintValidatorContext context) {
|
public boolean isValid(Collection value, ConstraintValidatorContext context) {
|
||||||
int size = CollectionUtils.size(value);
|
int size = CollectionUtils.size(value);
|
||||||
if (size < 2) {
|
if (size < 2) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
long count = value.stream().map(item -> {
|
long count = ((Collection<?>) value).stream().map(item -> {
|
||||||
if (item instanceof String || ClassUtils.isPrimitiveOrWrapper(item.getClass())) {
|
if (item instanceof String || ClassUtils.isPrimitiveOrWrapper(item.getClass())) {
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ import java.io.Serializable;
|
||||||
@Document
|
@Document
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public abstract class Domain implements Po, Serializable {
|
public abstract class Domain implements Po, Named, Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -8288256526019424379L;
|
private static final long serialVersionUID = -8288256526019424379L;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.flyfish.framework.domain.base;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有名称的
|
||||||
|
*
|
||||||
|
* @author wangyu
|
||||||
|
*/
|
||||||
|
public interface Named {
|
||||||
|
|
||||||
|
String getName();
|
||||||
|
}
|
|
@ -4,13 +4,13 @@ import com.flyfish.framework.annotations.ConditionOn;
|
||||||
import com.flyfish.framework.beans.meta.BeanPropertyType;
|
import com.flyfish.framework.beans.meta.BeanPropertyType;
|
||||||
import com.flyfish.framework.beans.meta.BeanValidation;
|
import com.flyfish.framework.beans.meta.BeanValidation;
|
||||||
import com.flyfish.framework.validation.annotations.IdCard;
|
import com.flyfish.framework.validation.annotations.IdCard;
|
||||||
|
import com.flyfish.framework.validation.annotations.Money;
|
||||||
import com.flyfish.framework.validation.annotations.Phone;
|
import com.flyfish.framework.validation.annotations.Phone;
|
||||||
import com.flyfish.framework.validation.annotations.UniqueField;
|
import com.flyfish.framework.validation.annotations.UniqueField;
|
||||||
import com.flyfish.framework.validation.enums.PhoneType;
|
import com.flyfish.framework.validation.enums.PhoneType;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.hibernate.validator.constraints.Currency;
|
|
||||||
import org.hibernate.validator.constraints.Length;
|
import org.hibernate.validator.constraints.Length;
|
||||||
import org.hibernate.validator.constraints.Range;
|
import org.hibernate.validator.constraints.Range;
|
||||||
import org.hibernate.validator.constraints.URL;
|
import org.hibernate.validator.constraints.URL;
|
||||||
|
@ -70,7 +70,7 @@ public enum ValidationCandidate {
|
||||||
.prop("type", annotation.getType().getSimpleName()),
|
.prop("type", annotation.getType().getSimpleName()),
|
||||||
Negative.class, NegativeOrZero.class, Positive.class, PositiveOrZero.class),
|
Negative.class, NegativeOrZero.class, Positive.class, PositiveOrZero.class),
|
||||||
// 货币
|
// 货币
|
||||||
CURRENCY((annotation, validation) -> validation.setValidator("currency"), Currency.class),
|
MONEY((annotation, validation) -> validation.setValidator("currency"), Money.class),
|
||||||
// 手机号
|
// 手机号
|
||||||
PHONE((annotation, validation) -> validation.setValidator("phone").prop("type",
|
PHONE((annotation, validation) -> validation.setValidator("phone").prop("type",
|
||||||
annotation.getEnum("type", PhoneType.class).name().toLowerCase()), Phone.class),
|
annotation.getEnum("type", PhoneType.class).name().toLowerCase()), Phone.class),
|
||||||
|
|
|
@ -21,9 +21,9 @@ import java.util.function.BiPredicate;
|
||||||
public enum BeanPropertyType {
|
public enum BeanPropertyType {
|
||||||
|
|
||||||
STRING("String", "string", CharSequence.class),
|
STRING("String", "string", CharSequence.class),
|
||||||
NUMBER("Number", "string", Number.class),
|
NUMBER("Number", "any", Number.class),
|
||||||
BOOLEAN("Boolean", "boolean", Boolean.class),
|
BOOLEAN("Boolean", "boolean", Boolean.class),
|
||||||
DATE("Date", "date", Date.class),
|
DATE("Date", "any", Date.class),
|
||||||
ENUM("Enum", "any", Enum.class),
|
ENUM("Enum", "any", Enum.class),
|
||||||
LIST("Array", "array", Collection.class),
|
LIST("Array", "array", Collection.class),
|
||||||
DB_REF("Ref", "any", Po.class),
|
DB_REF("Ref", "any", Po.class),
|
||||||
|
|
Loading…
Reference in New Issue