From 6fb3cb93a93d1c4479bede40844435f8053a1144 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 8 Sep 2025 14:03:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(pricing):=20=E5=A2=9E=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=8F=82=E6=95=B0=E6=A0=A1=E9=AA=8C=E5=92=8C=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为每个产品增加产品类型和产品 ID 的非空校验 - 为购买数量和数量设置默认值为 1,如果未提供 --- .../impl/PriceCalculationServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ycwl/basic/pricing/service/impl/PriceCalculationServiceImpl.java b/src/main/java/com/ycwl/basic/pricing/service/impl/PriceCalculationServiceImpl.java index d4fd148..9f64f6e 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/impl/PriceCalculationServiceImpl.java +++ b/src/main/java/com/ycwl/basic/pricing/service/impl/PriceCalculationServiceImpl.java @@ -35,7 +35,21 @@ public class PriceCalculationServiceImpl implements IPriceCalculationService { if (request.getProducts() == null || request.getProducts().isEmpty()) { throw new PriceCalculationException("商品列表不能为空"); } - + + request.getProducts().forEach(product -> { + if (product.getProductType() == null) { + throw new PriceCalculationException("商品类型不能为空"); + } + if (product.getProductId() == null) { + throw new PriceCalculationException("商品ID不能为空"); + } + if (product.getPurchaseCount() == null) { + product.setPurchaseCount(1); + } + if (product.getQuantity() == null) { + product.setQuantity(1); + } + }); // 计算商品价格和原价 PriceDetails priceDetails = calculateProductsPriceWithOriginal(request.getProducts()); BigDecimal totalAmount = priceDetails.getTotalAmount();