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;
|
package net.lab1024.smartadmin.common.validator.en;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import net.lab1024.smartadmin.common.domain.BaseEnum;
|
import net.lab1024.smartadmin.common.domain.BaseEnum;
|
||||||
|
import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum;
|
||||||
|
|
||||||
import javax.validation.ConstraintValidator;
|
import javax.validation.ConstraintValidator;
|
||||||
import javax.validation.ConstraintValidatorContext;
|
import javax.validation.ConstraintValidatorContext;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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 不能为空
|
// 必须的情况下 list 不能为空
|
||||||
return false;
|
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) {
|
for (Object obj : list) {
|
||||||
boolean hasEnum = this.hasEnum(obj);
|
if (!enumValList.contains(obj)) {
|
||||||
if (!hasEnum) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
package net.lab1024.smartadmin.util;
|
package net.lab1024.smartadmin.util;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
@ -34,12 +35,15 @@ public class SmartBigDecimalUtil {
|
|||||||
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.add(num2), PRICE_DECIMAL_POINT);
|
return setScale(num1.add(num2), PRICE_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.multiply(num2), PRICE_DECIMAL_POINT);
|
return setScale(num1.multiply(num2), PRICE_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.subtract(num2), PRICE_DECIMAL_POINT);
|
return setScale(num1.subtract(num2), PRICE_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.divide(num2, RoundingMode.HALF_UP), PRICE_DECIMAL_POINT);
|
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) {
|
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.add(num2), SIX_PRICE_DECIMAL_POINT);
|
return setScale(num1.add(num2), SIX_PRICE_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.multiply(num2), SIX_PRICE_DECIMAL_POINT);
|
return setScale(num1.multiply(num2), SIX_PRICE_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.subtract(num2), SIX_PRICE_DECIMAL_POINT);
|
return setScale(num1.subtract(num2), SIX_PRICE_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
||||||
return num1.divide(num2, PRICE_DECIMAL_POINT, RoundingMode.HALF_UP);
|
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) {
|
public static BigDecimal add(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.add(num2), WEIGHT_DECIMAL_POINT);
|
return setScale(num1.add(num2), WEIGHT_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.multiply(num2), WEIGHT_DECIMAL_POINT);
|
return setScale(num1.multiply(num2), WEIGHT_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) {
|
||||||
return setScale(num1.subtract(num2), WEIGHT_DECIMAL_POINT);
|
return setScale(num1.subtract(num2), WEIGHT_DECIMAL_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
public static BigDecimal divide(BigDecimal num1, BigDecimal num2) {
|
||||||
return num1.divide(num2, WEIGHT_DECIMAL_POINT, RoundingMode.HALF_UP);
|
return num1.divide(num2, WEIGHT_DECIMAL_POINT, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
@ -176,7 +186,7 @@ public class SmartBigDecimalUtil {
|
|||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public static boolean isLessThan(BigDecimal num1, BigDecimal num2) {
|
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) {
|
if (num1 == null || num2 == null) {
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
if (num2.equals(Integer.valueOf(0))) {
|
if (num2.equals(0)) {
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
BigDecimal bigDecimalNum1 = new BigDecimal(num1);
|
BigDecimal bigDecimalNum1 = new BigDecimal(num1);
|
||||||
@ -272,7 +282,7 @@ public class SmartBigDecimalUtil {
|
|||||||
* @return String
|
* @return String
|
||||||
*/
|
*/
|
||||||
public static Boolean isNotEmpty(BigDecimal num) {
|
public static Boolean isNotEmpty(BigDecimal num) {
|
||||||
return ! isEmpty(num);
|
return !isEmpty(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -283,8 +293,7 @@ public class SmartBigDecimalUtil {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static BigDecimal convertTenThousand(BigDecimal num, int point) {
|
public static BigDecimal convertTenThousand(BigDecimal num, int point) {
|
||||||
BigDecimal decimal = num.divide(new BigDecimal(10000), point, RoundingMode.HALF_UP);
|
return num.divide(new BigDecimal(10000), point, RoundingMode.HALF_UP);
|
||||||
return decimal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -300,4 +309,25 @@ public class SmartBigDecimalUtil {
|
|||||||
return BigDecimal.ZERO.subtract(num);
|
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