## 注册、升级上传盒数,预处理分拆数据调整;

This commit is contained in:
cabbage 2025-08-06 10:18:12 +08:00
parent 9dc2b430c2
commit 0c7a1b77ad
1 changed files with 18 additions and 5 deletions

View File

@ -292,6 +292,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// // 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件 // // 2025.03.11 添加需求复购专区重消专区指定盒数商品每用户每月限购50件
// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList); // this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
// 设置已经累计盒数的商品列表
List<String> tmpBoxWares = new ArrayList<>();
// 遍历生成订单明细数据 // 遍历生成订单明细数据
for (BdWaresDetailExt waresDetailExt : waresDetailExtList) { for (BdWaresDetailExt waresDetailExt : waresDetailExtList) {
// // 价格KEY商品编号 + 价格 // // 价格KEY商品编号 + 价格
@ -319,15 +322,24 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 雨汐团队复购重消盒数品 // 雨汐团队复购重消盒数品
if (tmpBoxWaresList.contains(waresDetailExt.getWaresCode())) { 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 { } 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 { } 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); BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(waresQuantity);
orderWaresMap.put(saOrderItems.getPkWares(), boxNum); 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())) { if (orderWaresPriceMap.containsKey(saOrderItems.getPkWares())) {
BigDecimal tmpWaresPrice = orderWaresPriceMap.get(saOrderItems.getPkWares()); BigDecimal tmpWaresPrice = orderWaresPriceMap.get(saOrderItems.getPkWares());
orderWaresPriceMap.put(saOrderItems.getPkWares(), tmpWaresPrice.add(waresPrice)); orderWaresPriceMap.put(saOrderItems.getPkWares(), tmpWaresPrice.add(waresPrice));