diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailController.java index 112cb02a5..db99cfe2d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/products/ProductsDetailController.java @@ -58,9 +58,8 @@ public class ProductsDetailController { @Operation(summary = "查询产品明细") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('base:productDetails:query')") - public CommonResult> getProductsDetail(@PathVariable("id") Long id) { - List productDetailsDO = productDetailsService.get(id); - return success(productDetailsDO); + public CommonResult getProductsDetail(@PathVariable("id") Long id) { + return success(productDetailsService.get(id)); } @GetMapping("/page") 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 b99db46e4..73aa602d9 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 @@ -4,6 +4,8 @@ import com.cf.imes.framework.common.validation.NumberValid; import com.cf.imes.module.system.validation.products.ProductType; import com.cf.imes.module.system.validation.products.TimeUnitValid; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; import lombok.Data; import jakarta.validation.constraints.NotNull; @@ -51,7 +53,8 @@ public class ProductDetailsSaveReqVO { private BigDecimal originalPrice; @Schema(description = "折扣", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.8") - @NumberValid(name = "折扣", integer = 4, fraction = 2) + @DecimalMax(value = "100", inclusive = false, message = "折扣必须小于100") + @DecimalMin(value = "0", inclusive = false, 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/service/funds/products/ProductsDetailService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailService.java index 85e2dd5d7..da5d78cad 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/products/ProductsDetailService.java @@ -40,11 +40,11 @@ public interface ProductsDetailService { void delete(Long id); /** - * 获得产品 + * 获取产品定价 * * @param id 编号 */ - List get(Long id); + ProductsDetailDO get(Long id); /** * 获得产品 分页 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 d6dafa83d..41294030b 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 @@ -112,9 +112,8 @@ public class ProductsDetailServiceImpl implements ProductsDetailService { } @Override - public List get(Long id) { - validateProductDetailsExists(id); - return productDetailsMapper.selectList(); + public ProductsDetailDO get(Long id) { + return validateProductDetailsExists(id); } @Override @@ -219,8 +218,8 @@ public class ProductsDetailServiceImpl implements ProductsDetailService { */ private void calculateDiscount(BigDecimal originalPrice, BigDecimal currentPrice, BigDecimal discount) { // 校验当前价格是否正确 - // 计算期望现价(保留2位小数,四舍五入) - BigDecimal expectedPrice = originalPrice.multiply(discount).setScale(2, RoundingMode.HALF_UP); + // 计算期望现价 = 原价 * 折扣 /100(保留2位小数) + BigDecimal expectedPrice = originalPrice.multiply(discount).divide(new BigDecimal(100)).setScale(2, RoundingMode.DOWN); if (currentPrice.compareTo(expectedPrice) != 0) { throw ServiceExceptionUtil.exception(PRODUCTS_DETAIL_CURRENTPRICE_CALCULATE_ERROR, expectedPrice);