mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-09-23 05:46:40 +08:00
优化枚举类校验;Decimal工具类增加max,min
This commit is contained in:
parent
2a72e341e6
commit
701d95653e
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
package net.lab1024.smartadmin.util;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.NumberFormat;
|
||||
@ -34,12 +35,15 @@ public class SmartBigDecimalUtil {
|
||||
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.add(num2), PRICE_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.multiply(num2), PRICE_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.subtract(num2), PRICE_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.divide(num2, RoundingMode.HALF_UP), PRICE_DECIMAL_POINT);
|
||||
}
|
||||
@ -53,12 +57,15 @@ public class SmartBigDecimalUtil {
|
||||
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.add(num2), SIX_PRICE_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.multiply(num2), SIX_PRICE_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.subtract(num2), SIX_PRICE_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
||||
return num1.divide(num2, PRICE_DECIMAL_POINT, RoundingMode.HALF_UP);
|
||||
}
|
||||
@ -72,12 +79,15 @@ public class SmartBigDecimalUtil {
|
||||
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.add(num2), WEIGHT_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.multiply(num2), WEIGHT_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
||||
return setScale(num1.subtract(num2), WEIGHT_DECIMAL_POINT);
|
||||
}
|
||||
|
||||
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
||||
return num1.divide(num2, WEIGHT_DECIMAL_POINT, RoundingMode.HALF_UP);
|
||||
}
|
||||
@ -176,7 +186,7 @@ public class SmartBigDecimalUtil {
|
||||
* @return boolean
|
||||
*/
|
||||
public static boolean isLessThan(BigDecimal num1, BigDecimal num2) {
|
||||
return num1.compareTo(num2) == - 1;
|
||||
return num1.compareTo(num2) == -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -227,7 +237,7 @@ public class SmartBigDecimalUtil {
|
||||
if (num1 == null || num2 == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
if (num2.equals(Integer.valueOf(0))) {
|
||||
if (num2.equals(0)) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal bigDecimalNum1 = new BigDecimal(num1);
|
||||
@ -272,7 +282,7 @@ public class SmartBigDecimalUtil {
|
||||
* @return String
|
||||
*/
|
||||
public static Boolean isNotEmpty(BigDecimal num) {
|
||||
return ! isEmpty(num);
|
||||
return !isEmpty(num);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -283,8 +293,7 @@ public class SmartBigDecimalUtil {
|
||||
* @return
|
||||
*/
|
||||
public static BigDecimal convertTenThousand(BigDecimal num, int point) {
|
||||
BigDecimal decimal = num.divide(new BigDecimal(10000), point, RoundingMode.HALF_UP);
|
||||
return decimal;
|
||||
return num.divide(new BigDecimal(10000), point, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -300,4 +309,25 @@ public class SmartBigDecimalUtil {
|
||||
return BigDecimal.ZERO.subtract(num);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较 num1,num2 返回最大的值
|
||||
*
|
||||
* @param num1
|
||||
* @param num2
|
||||
* @return BigDecimal
|
||||
*/
|
||||
public static BigDecimal max(BigDecimal num1, BigDecimal num2) {
|
||||
return num1.compareTo(num2) > 0 ? num1 : num2;
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较 num1,num2 返回最小的值
|
||||
*
|
||||
* @param num1
|
||||
* @param num2
|
||||
* @return BigDecimal
|
||||
*/
|
||||
public static BigDecimal min(BigDecimal num1, BigDecimal num2) {
|
||||
return num1.compareTo(num2) < 0 ? num1 : num2;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user