Compare commits
	
		
			3 Commits
		
	
	
		
			ad74163059
			...
			b3b204f80f
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						b3b204f80f | |
| 
							
							
								
								 | 
						e6040a085a | |
| 
							
							
								
								 | 
						0e3a424077 | 
| 
						 | 
					@ -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())) {
 | 
				
			||||||
                                // 商品是盒数商品,需要累计数量
 | 
					                                // 商品是盒数商品,需要累计数量
 | 
				
			||||||
 | 
					                                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());
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -789,8 +801,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 订单商品拆分数据
 | 
					        // 订单商品拆分数据
 | 
				
			||||||
        List<SaOrderWares> orderWaresList = new ArrayList<>();
 | 
					        List<SaOrderWares> orderWaresList = new ArrayList<>();
 | 
				
			||||||
        // 订单商品map(key:商品主键-商品价格,value:商品数量)
 | 
					        // 订单商品拆分map(key:商品主键,value:商品数量)
 | 
				
			||||||
        Map<String, BigDecimal> orderWaresMap = new HashMap<>();
 | 
					        Map<Integer, 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:商品数量)
 | 
				
			||||||
| 
						 | 
					@ -812,14 +826,17 @@ 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()));
 | 
				
			||||||
                // key: 商品ID-商品价格(产品价格*产品数量)
 | 
					                orderWaresMap.put(saOrderItems.getPkWares(), boxNum);
 | 
				
			||||||
                String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity())));
 | 
					
 | 
				
			||||||
                if (orderWaresMap.containsKey(key)) {
 | 
					                // 价格 = 产品上传价格 * 产品数量,不存在直接放入,存在则进行累加
 | 
				
			||||||
                    BigDecimal tmpBoxNum = orderWaresMap.get(key).add(boxNum);
 | 
					                BigDecimal waresPrice = saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity()));
 | 
				
			||||||
                    orderWaresMap.put(key, tmpBoxNum);
 | 
					                if (orderWaresPriceMap.containsKey(saOrderItems.getPkWares())) {
 | 
				
			||||||
 | 
					                    BigDecimal tmpWaresPrice = orderWaresPriceMap.get(saOrderItems.getPkWares());
 | 
				
			||||||
 | 
					                    orderWaresPriceMap.put(saOrderItems.getPkWares(), tmpWaresPrice.add(waresPrice));
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    orderWaresMap.put(key, boxNum);
 | 
					                    orderWaresPriceMap.put(saOrderItems.getPkWares(), waresPrice);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
 | 
					                waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
 | 
				
			||||||
| 
						 | 
					@ -831,11 +848,11 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (orderWaresMap.size() > 0) {
 | 
					        if (orderWaresMap.size() > 0) {
 | 
				
			||||||
            // 处理订单商品拆分数据
 | 
					            // 处理订单商品拆分数据
 | 
				
			||||||
            for (String key : orderWaresMap.keySet()) {
 | 
					            for (Integer key : orderWaresMap.keySet()) {
 | 
				
			||||||
                SaOrderWares saOrderWares = SaOrderWares.builder()
 | 
					                SaOrderWares saOrderWares = SaOrderWares.builder()
 | 
				
			||||||
                        .pkOrder(saOrderExt.getPkId())
 | 
					                        .pkOrder(saOrderExt.getPkId())
 | 
				
			||||||
                        .pkWares(Integer.parseInt(key.split("-")[0]))
 | 
					                        .pkWares(key)
 | 
				
			||||||
                        .waresPrice(new BigDecimal(key.split("-")[1]))
 | 
					                        .waresPrice(orderWaresPriceMap.get(key))
 | 
				
			||||||
                        .waresQuantity(orderWaresMap.get(key))
 | 
					                        .waresQuantity(orderWaresMap.get(key))
 | 
				
			||||||
                        .build();
 | 
					                        .build();
 | 
				
			||||||
                saOrderWares.setPkCreator(saOrderExt.getPkCreator());
 | 
					                saOrderWares.setPkCreator(saOrderExt.getPkCreator());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue