| 
					
				 | 
			
			
				@@ -12,6 +12,8 @@ import cn.newfeifan.mall.module.distri.dal.dataobject.ptprofit.PtProfitDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.dal.dataobject.sharepath.SharePathDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.enums.CaclEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.mq.message.order.DistriOrderMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.newfeifan.mall.module.distri.mq.message.order.OrderCalcMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.newfeifan.mall.module.distri.mq.message.order.OrderItemMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.service.duser.DuserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.service.integral.IntegralService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.service.orderpercentage.OrderPercentageService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -34,6 +36,8 @@ import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.IntStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.LongStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.controller.admin.ordercalc.vo.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.distri.dal.dataobject.ordercalc.OrderCalcDO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,10 +133,10 @@ public class OrderCalcServiceImpl implements OrderCalcService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void calc(List<DistriOrderMessage> tradeOrderDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void calc(List<OrderCalcMessage> tradeOrderDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获取到当前订单的所有人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Long> userId = tradeOrderDO.stream().map(DistriOrderMessage::getUserId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> userId = tradeOrderDO.stream().map(OrderCalcMessage::getUserId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 判断当前下单的人员是否有进入营销模块用户表, 如果没有的话, 需要初始化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         duserService.hasUserAndCreat(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 判断当前下单人是否有有上级, 如果没有, 创建直推人关系 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,7 +163,7 @@ public class OrderCalcServiceImpl implements OrderCalcService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .in(OrderCalcDO::getUserId, userList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void calc(List<DistriOrderMessage> tradeOrderDO, OrderPercentageDO orderPercentageDO, String percentTemplate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void calc(List<OrderCalcMessage> tradeOrderDO, OrderPercentageDO orderPercentageDO, String percentTemplate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PtProfitSaveReqVO> savePFitMap = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 每个订单收益 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,9 +190,16 @@ public class OrderCalcServiceImpl implements OrderCalcService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PtProfitDO finalPtProfitDO = ptProfitDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         tradeOrderDO.forEach(k -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal price = new BigDecimal(String.valueOf(k.getPrice())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal costPrice = new BigDecimal(String.valueOf(k.getCostPrice())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal productCount = new BigDecimal(String.valueOf(k.getProductCount())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 计算单个订单的总单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LongStream priceStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 计算单个订单的总成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LongStream longStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getCostPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 计算当个订单的总数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            IntStream intStream = k.getOrderItemMessages().stream().mapToInt(OrderItemMessage::getProductCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal price = new BigDecimal(String.valueOf(priceStream)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal costPrice = new BigDecimal(String.valueOf(longStream)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal productCount = new BigDecimal(String.valueOf(intStream)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 计算利润: (价格 - 成本价格) * 产品数量 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,9 +253,9 @@ public class OrderCalcServiceImpl implements OrderCalcService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .userId(k.getUserId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .orderNo(k.getNo()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .orderId(k.getOrderId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .cost(k.getCostPrice()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .price(k.getPrice()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .productCount(k.getProductCount()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .cost(costPrice.longValue()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .price(price.longValue()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .productCount(productCount.intValue()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .nickName(k.getNickName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .name(k.getName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .grossProfit(grossProfitInt) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -252,7 +263,8 @@ public class OrderCalcServiceImpl implements OrderCalcService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .grossProfitAncestorQuota(ancestorQuotaInt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .grossProfitPlatformQuota(platformQuotaInt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .percentTemplate(percentTemplate).build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            saveList.add(orderCalcSaveReqVO);            // ========== 修改用户钱包 ================= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            saveList.add(orderCalcSaveReqVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // ========== 修改用户钱包 ================= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             changeUserWallet(integralSaveReqVOS, integralDO, integralDOAncestor, ptIntegral, ancestorQuotaInt, descendantQuotaInt, highQuotaInt, grossProfitAfterBonusInt, platformQuotaInt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // ========== 修改平台信息 ================= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 每个订单计算的过程 
			 |