From a8061efa2fab2f40692d46e380a2240d79fb89a7 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 31 Oct 2025 17:54:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=85=B1=E5=AF=8C=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/HardCarServiceImpl.java | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java index 80b1ec206..10da93fd7 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -239,6 +239,37 @@ public class HardCarServiceImpl extends ServiceImpl { + AtomicInteger doorTotalPrice = new AtomicInteger(); + List spuList = remoteMallProductService.getSkusWithSpuBySkuIds(productIds).getData(); + for (HardCreateCarDto v : list) { + spu: + for (MallProductDetailAppVo spu : spuList) { + if (ObjectUtil.isEmpty(spu) || ObjectUtil.isEmpty(spu.getSkuList())) { + continue spu; + } + MallProductSkuAppVo sku = spu.getSkuList().stream().filter(_item -> ObjectUtil.equals(_item.getId(), v.getProductId())).findFirst().orElse(null); + if (ObjectUtil.isEmpty(sku)) { + continue spu; + } + if (ObjectUtil.isEmpty(spu.getSkuList())) { + throw new RuntimeException("共富商城商品无SKU信息商品名字:" + spu.getTitle() + "商品ID:" + spu.getId() + "请联系管理员"); + } + Integer price = sku.getPrice(); + if (ObjectUtil.isNotEmpty(v.getProductCount()) && !ObjectUtil.equals(v.getProductCount(), 0)) { + // 按数量 + int itemTotalPrice = v.getProductCount() * price; + doorTotalPrice.addAndGet(itemTotalPrice); + } else if (ObjectUtil.isNotEmpty(v.getProductWeight()) && v.getProductWeight().compareTo(BigDecimal.valueOf(0)) != 0) { + // 按重量 + // 向上取整 + int itemTotalPrice = v.getProductWeight().multiply(BigDecimal.valueOf(price)).setScale(0, RoundingMode.CEILING).intValue(); + doorTotalPrice.addAndGet(itemTotalPrice); + } + } + } + yield doorTotalPrice.get(); + } default -> null; }; } @@ -452,8 +483,10 @@ public class HardCarServiceImpl extends ServiceImpl