From 63a996c1a171efae5e78bdb48c7c663f25f69b9d Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 3 Sep 2025 11:33:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E4=BB=B7=E8=A7=84=E5=88=99=E6=97=B6?= =?UTF-8?q?=E9=95=BF=E9=87=8D=E5=A4=8D=E6=8F=90=E7=A4=BA=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=81=E6=8A=98=E6=89=A3=E4=B8=8A=E4=B8=8B=E9=99=90=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imes/module/system/enums/ErrorCodeConstants.java | 2 +- .../vo/productDetails/ProductDetailsSaveReqVO.java | 4 ++-- .../module/system/enums/pay/DurationUnitEnum.java | 11 +++++++++++ .../funds/products/ProductsDetailServiceImpl.java | 4 ++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 9efee90ce..c1d7cda8a 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -461,7 +461,7 @@ public class ErrorCodeConstants { public static final ErrorCode PRODUCTS_DETAIL_NO_EXIST = new ErrorCode(1_002_045_002, "当前产品的规则不存在"); public static final ErrorCode PRODUCTS_DURATION_NOT_NULL = new ErrorCode(1_002_045_003, "当前购买方式为【时长】,请填写产品时长"); public static final ErrorCode PRODUCTS_OUTPUT_NOT_NULL = new ErrorCode(1_002_045_004, "购买方式为产量时,需确定产量数量"); - public static final ErrorCode PRODUCTS_DETAIL_DURATION_EXIST = new ErrorCode(1_002_045_005, "当前产品下已存在产品时长:【{}】、单位:【{}】的定价规则,请修改后重新操作"); + public static final ErrorCode PRODUCTS_DETAIL_DURATION_EXIST = new ErrorCode(1_002_045_005, "当前产品下已存在产品时长:{}/{}的定价规则,请修改后重新操作"); public static final ErrorCode PRODUCTS_DETAIL_OUTPUT_EXIST = new ErrorCode(1_002_045_006, "存在当前产量的产品定价规则"); public static final ErrorCode PRODUCTS_DETAIL_CURRENTPRICE_CALCULATE_ERROR = new ErrorCode(1_002_045_007, "产品现价计算错误,期望价格【{}】"); public static final ErrorCode PRODUCTS_DURATION_INT_ERR = new ErrorCode(1_002_045_008, "产品定价规则:时长必须为整数且大于 0"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/vo/productDetails/ProductDetailsSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/vo/productDetails/ProductDetailsSaveReqVO.java index 73aa602d9..92b99b8f5 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/vo/productDetails/ProductDetailsSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/vo/productDetails/ProductDetailsSaveReqVO.java @@ -53,8 +53,8 @@ public class ProductDetailsSaveReqVO { private BigDecimal originalPrice; @Schema(description = "折扣", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.8") - @DecimalMax(value = "100", inclusive = false, message = "折扣必须小于100") - @DecimalMin(value = "0", inclusive = false, message = "折扣必须大于0") + @DecimalMax(value = "100", message = "折扣必须小于等于100") + @DecimalMin(value = "0", message = "折扣必须大于等于0") private BigDecimal discount; @Schema(description = "产品现价", requiredMode = Schema.RequiredMode.REQUIRED, example = "80") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/DurationUnitEnum.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/DurationUnitEnum.java index f982a7c9f..b998ff18b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/DurationUnitEnum.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/pay/DurationUnitEnum.java @@ -55,4 +55,15 @@ public enum DurationUnitEnum implements IntArrayValuable, BaseEnum { .findFirst() .orElse(null); } + + /** + * 获取描述desc,否则返回null + * + * @param status + * @return + */ + public static String getDesc(Integer status) { + DurationUnitEnum unit = fromStatus(status); + return unit != null ? unit.getDesc() : null; + } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailServiceImpl.java index 41294030b..c964f2161 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailServiceImpl.java @@ -12,6 +12,7 @@ import com.cf.imes.module.system.dal.dataobject.funds.products.ProductsDO; import com.cf.imes.module.system.dal.dataobject.funds.products.ProductsDetailDO; import com.cf.imes.module.system.dal.mysql.funds.products.ProductsDetailMapper; import com.cf.imes.module.system.dal.mysql.funds.products.ProductsMapper; +import com.cf.imes.module.system.enums.pay.DurationUnitEnum; import com.cf.imes.module.system.enums.products.ProductStatusEnum; import com.cf.imes.module.system.enums.products.ProductsPurchaseTypeEnum; import org.springframework.stereotype.Service; @@ -20,7 +21,6 @@ import org.springframework.validation.annotation.Validated; import jakarta.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.List; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.module.system.enums.ErrorCodeConstants.*; @@ -197,7 +197,7 @@ public class ProductsDetailServiceImpl implements ProductsDetailService { // 时长去重 count = productDetailsMapper.selectCountByDuration(createReqVO.getProductId(), createReqVO.getId(), duration, durationUnit); if (count > 0) { - throw ServiceExceptionUtil.exception(PRODUCTS_DETAIL_DURATION_EXIST, duration, durationUnit); + throw ServiceExceptionUtil.exception(PRODUCTS_DETAIL_DURATION_EXIST, duration, DurationUnitEnum.getDesc(durationUnit)); } } else if (createReqVO.getPurchaseType() == 1) { //产量去重