diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java index c31c7703c..d4f1c3d01 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java @@ -24,13 +24,13 @@ public @interface EnumPattern { /** * 需要校验的枚举类型 */ - Class type() default Enum.class; + Class> type(); /** * 枚举类型校验值字段名称 - * TODO 需确保该字段实现了 getter 方法 + * 需确保该字段实现了 getter 方法 */ - String fieldName() default "code"; + String fieldName(); String message() default "输入值不在枚举范围内"; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java index 0e748c0a4..6cfa11a33 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java @@ -1,11 +1,9 @@ package org.dromara.common.core.validate.enumd; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.core.utils.reflect.ReflectUtils; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; -import jakarta.validation.ValidationException; -import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.reflect.ReflectUtils; /** * 自定义枚举校验注解实现 @@ -25,21 +23,15 @@ public class EnumPatternValidator implements ConstraintValidator type = annotation.type(); - String fieldName = annotation.fieldName(); - Object[] enumConstants = type.getEnumConstants(); - for (Object e : enumConstants) { - if (value.equals(ReflectUtils.invokeGetter(e, fieldName))) { - return true; - } + if (StringUtils.isNotBlank(value)) { + String fieldName = annotation.fieldName(); + for (Object e : annotation.type().getEnumConstants()) { + if (value.equals(ReflectUtils.invokeGetter(e, fieldName))) { + return true; } } - return false; - } catch (Exception e) { - throw new ValidationException(e); } + return false; } -} \ No newline at end of file +}