优化枚举类校验;Decimal工具类增加max,min

This commit is contained in:
Turbolisten
2020-10-24 09:59:13 +08:00
parent 2a72e341e6
commit 701d95653e
2 changed files with 49 additions and 7 deletions

View File

@@ -1,10 +1,17 @@
package net.lab1024.smartadmin.common.validator.en;
import com.google.common.collect.Lists;
import net.lab1024.smartadmin.common.domain.BaseEnum;
import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 枚举类校验器
@@ -58,9 +65,14 @@ public class EnumValidator implements ConstraintValidator<CheckEnum, Object> {
// 必须的情况下 list 不能为空
return false;
}
// 校验是否重复
long count = list.stream().distinct().count();
if (count != list.size()) {
return false;
}
List<Object> enumValList = Stream.of(enumClass.getEnumConstants()).map(BaseEnum::getValue).collect(Collectors.toList());
for (Object obj : list) {
boolean hasEnum = this.hasEnum(obj);
if (!hasEnum) {
if (!enumValList.contains(obj)) {
return false;
}
}