From 701d95653eb39012b47aacf5a2704bedff168988 Mon Sep 17 00:00:00 2001 From: Turbolisten <188029906@qq.com> Date: Sat, 24 Oct 2020 09:59:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9E=9A=E4=B8=BE=E7=B1=BB?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C;Decimal=E5=B7=A5=E5=85=B7=E7=B1=BB=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0max,min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/validator/en/EnumValidator.java | 16 +++++++- .../smartadmin/util/SmartBigDecimalUtil.java | 40 ++++++++++++++++--- 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java index 953a90d3..3dffda6e 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java @@ -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 { // 必须的情况下 list 不能为空 return false; } + // 校验是否重复 + long count = list.stream().distinct().count(); + if (count != list.size()) { + return false; + } + List 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; } } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java index 3dc45f68..651f3d4e 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java @@ -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; + } }