Compare commits
No commits in common. "b3b204f80f2d364d589cc7793b58181cfa768b4a" and "ad74163059e4326fed1fa16fbd817c525913114f" have entirely different histories.
b3b204f80f
...
ad74163059
|
|
@ -292,9 +292,6 @@ 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(商品编号 + 价格)
|
||||||
|
|
@ -322,24 +319,15 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
||||||
// 雨汐团队,复购、重消盒数品
|
// 雨汐团队,复购、重消盒数品
|
||||||
if (tmpBoxWaresList.contains(waresDetailExt.getWaresCode())) {
|
if (tmpBoxWaresList.contains(waresDetailExt.getWaresCode())) {
|
||||||
// 商品是盒数商品,需要累计数量
|
// 商品是盒数商品,需要累计数量
|
||||||
if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) {
|
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
|
||||||
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
|
|
||||||
tmpBoxWares.add(waresDetailExt.getWaresCode());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 商品是盒数商品,需要累计数量
|
// 商品是盒数商品,需要累计数量
|
||||||
if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) {
|
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
|
||||||
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
|
|
||||||
tmpBoxWares.add(waresDetailExt.getWaresCode());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 商品是盒数商品,需要累计数量
|
// 商品是盒数商品,需要累计数量
|
||||||
if (!tmpBoxWares.contains(waresDetailExt.getWaresCode())) {
|
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
|
||||||
boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
|
|
||||||
tmpBoxWares.add(waresDetailExt.getWaresCode());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -801,10 +789,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
||||||
|
|
||||||
// 订单商品拆分数据
|
// 订单商品拆分数据
|
||||||
List<SaOrderWares> orderWaresList = new ArrayList<>();
|
List<SaOrderWares> orderWaresList = new ArrayList<>();
|
||||||
// 订单商品拆分map(key:商品主键,value:商品数量)
|
// 订单商品map(key:商品主键-商品价格,value:商品数量)
|
||||||
Map<Integer, BigDecimal> orderWaresMap = new HashMap<>();
|
Map<String, BigDecimal> orderWaresMap = new HashMap<>();
|
||||||
// 订单商品价格拆分map(key:商品主键,value:商品价格)
|
|
||||||
Map<Integer, BigDecimal> orderWaresPriceMap = new HashMap<>();
|
|
||||||
// 商品销量数据
|
// 商品销量数据
|
||||||
List<WaresNumberParam> waresNumberList = new ArrayList<>();
|
List<WaresNumberParam> waresNumberList = new ArrayList<>();
|
||||||
// 商品销量map(key:商品主键,value:商品数量)
|
// 商品销量map(key:商品主键,value:商品数量)
|
||||||
|
|
@ -826,17 +812,14 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
||||||
// 指定商品拆分 并且 非赠品
|
// 指定商品拆分 并且 非赠品
|
||||||
if (boxProductList.contains(saOrderItems.getWareCode())
|
if (boxProductList.contains(saOrderItems.getWareCode())
|
||||||
&& EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
|
&& EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
|
||||||
// 盒数 = 商品上传盒数 * 商品数量
|
|
||||||
BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity()));
|
BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity()));
|
||||||
orderWaresMap.put(saOrderItems.getPkWares(), boxNum);
|
// key: 商品ID-商品价格(产品价格*产品数量)
|
||||||
|
String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity())));
|
||||||
// 价格 = 产品上传价格 * 产品数量,不存在直接放入,存在则进行累加
|
if (orderWaresMap.containsKey(key)) {
|
||||||
BigDecimal waresPrice = saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity()));
|
BigDecimal tmpBoxNum = orderWaresMap.get(key).add(boxNum);
|
||||||
if (orderWaresPriceMap.containsKey(saOrderItems.getPkWares())) {
|
orderWaresMap.put(key, tmpBoxNum);
|
||||||
BigDecimal tmpWaresPrice = orderWaresPriceMap.get(saOrderItems.getPkWares());
|
|
||||||
orderWaresPriceMap.put(saOrderItems.getPkWares(), tmpWaresPrice.add(waresPrice));
|
|
||||||
} else {
|
} else {
|
||||||
orderWaresPriceMap.put(saOrderItems.getPkWares(), waresPrice);
|
orderWaresMap.put(key, boxNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
|
waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
|
||||||
|
|
@ -848,11 +831,11 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
||||||
|
|
||||||
if (orderWaresMap.size() > 0) {
|
if (orderWaresMap.size() > 0) {
|
||||||
// 处理订单商品拆分数据
|
// 处理订单商品拆分数据
|
||||||
for (Integer key : orderWaresMap.keySet()) {
|
for (String key : orderWaresMap.keySet()) {
|
||||||
SaOrderWares saOrderWares = SaOrderWares.builder()
|
SaOrderWares saOrderWares = SaOrderWares.builder()
|
||||||
.pkOrder(saOrderExt.getPkId())
|
.pkOrder(saOrderExt.getPkId())
|
||||||
.pkWares(key)
|
.pkWares(Integer.parseInt(key.split("-")[0]))
|
||||||
.waresPrice(orderWaresPriceMap.get(key))
|
.waresPrice(new BigDecimal(key.split("-")[1]))
|
||||||
.waresQuantity(orderWaresMap.get(key))
|
.waresQuantity(orderWaresMap.get(key))
|
||||||
.build();
|
.build();
|
||||||
saOrderWares.setPkCreator(saOrderExt.getPkCreator());
|
saOrderWares.setPkCreator(saOrderExt.getPkCreator());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue