From e6040a085a41053a664da100b3d22d7b0cf3b964 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 6 Aug 2025 10:18:12 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=B3=A8=E5=86=8C=E3=80=81=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E4=B8=8A=E4=BC=A0=E7=9B=92=E6=95=B0=EF=BC=8C=E9=A2=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=88=86=E6=8B=86=E6=95=B0=E6=8D=AE=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RetailOrderServiceImpl.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 3fdd9fde..fced33ed 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -292,6 +292,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件 // this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList); + // 设置已经累计盒数的商品列表 + List tmpBoxWares = new ArrayList<>(); + // 遍历生成订单明细数据 for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { // // 价格KEY(商品编号 + 价格) @@ -319,15 +322,24 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 雨汐团队,复购、重消盒数品 if (tmpBoxWaresList.contains(waresDetailExt.getWaresCode())) { // 商品是盒数商品,需要累计数量 - boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); + if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) { + boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); + tmpBoxWares.add(waresDetailExt.getWaresCode()); + } } } else { // 商品是盒数商品,需要累计数量 - boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); + if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) { + boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); + tmpBoxWares.add(waresDetailExt.getWaresCode()); + } } } else { // 商品是盒数商品,需要累计数量 - boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); + if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) { + boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity()))); + tmpBoxWares.add(waresDetailExt.getWaresCode()); + } } } @@ -819,8 +831,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 盒数 = 商品上传盒数 * 商品数量 BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(waresQuantity); orderWaresMap.put(saOrderItems.getPkWares(), boxNum); - // 价格 = 商品上传价格 * 商品数量,不存在直接放入,存在则进行累加 - BigDecimal waresPrice = saOrderItems.getPrice().multiply(waresQuantity); + + // 价格 = 产品上传价格 * 产品数量 * 商品数量,不存在直接放入,存在则进行累加 + BigDecimal waresPrice = saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity())).multiply(waresQuantity); if (orderWaresPriceMap.containsKey(saOrderItems.getPkWares())) { BigDecimal tmpWaresPrice = orderWaresPriceMap.get(saOrderItems.getPkWares()); orderWaresPriceMap.put(saOrderItems.getPkWares(), tmpWaresPrice.add(waresPrice));