|  | @@ -98,100 +98,100 @@ public class OrderCalcServiceImpl implements OrderCalcService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public void calc(List<DistriOrderMessage> tradeOrderDO) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // 获取到当前订单的所有人
 | 
	
		
			
				|  |  | -        List<Long> userId = tradeOrderDO.stream().map(DistriOrderMessage::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        OrderPercentageDO orderPercentageDO = orderPercentageService.queryStatus();
 | 
	
		
			
				|  |  | -        // 当前计算百分比模板
 | 
	
		
			
				|  |  | -        String percentTemplate = JsonUtils.toJsonString(orderPercentageDO);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // 每个订单收益
 | 
	
		
			
				|  |  | -        List<OrderCalcSaveReqVO> saveList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        // 平台收益
 | 
	
		
			
				|  |  | -        List<PtProfitSaveReqVO> ptProfitSaveReqVOS = new ArrayList<>();
 | 
	
		
			
				|  |  | -        // 平台收益日志
 | 
	
		
			
				|  |  | -        List<PtProfitLogSaveReqVO> ptProfitLogSaveReqVOS = new ArrayList<>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        PtProfitDO ptProfitDO = ptProfitService.getPtProfit();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        tradeOrderDO.forEach(k -> {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // 计算利润: (价格 - 成本价格) * 产品数量
 | 
	
		
			
				|  |  | -            Integer profit = (k.getPrice() - k.getCostPrice()) * k.getProductCount();
 | 
	
		
			
				|  |  | -            // 计算毛利: 利润 * 0.38
 | 
	
		
			
				|  |  | -            Integer grossProfit = profit * orderPercentageDO.getGrossProfitPerc();
 | 
	
		
			
				|  |  | -            // 计算用户额度: 利润 * 0.38
 | 
	
		
			
				|  |  | -            Integer userProfit = grossProfit * orderPercentageDO.getGrossProfitUserQuotaPerc();
 | 
	
		
			
				|  |  | -            // 计算直推人额度: 利润 * 0.38
 | 
	
		
			
				|  |  | -            Integer ancestorQuota = grossProfit * orderPercentageDO.getGrossProfitAncestorQuotaPerc();
 | 
	
		
			
				|  |  | -            // 计算合赢奖: 利润 * 0.38
 | 
	
		
			
				|  |  | -            Integer bonusQuota = grossProfit * orderPercentageDO.getGrossProfitBonusQuotaPerc();
 | 
	
		
			
				|  |  | -            // 计算平台收益: 利润 * 0.38
 | 
	
		
			
				|  |  | -            Integer platformQuota = grossProfit * orderPercentageDO.getGrossProfitPlatformQuotaPerc();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // 计算
 | 
	
		
			
				|  |  | -            OrderCalcSaveReqVO orderCalcSaveReqVO = OrderCalcSaveReqVO.builder()
 | 
	
		
			
				|  |  | -                    .userId(k.getUserId())
 | 
	
		
			
				|  |  | -                    .orderNo(k.getNo())
 | 
	
		
			
				|  |  | -                    .cost(k.getCostPrice())
 | 
	
		
			
				|  |  | -                    .price(k.getPrice())
 | 
	
		
			
				|  |  | -                    .grossProfit(grossProfit)
 | 
	
		
			
				|  |  | -                    .grossProfitUserQuota(userProfit)
 | 
	
		
			
				|  |  | -                    .grossProfitAncestorQuota(ancestorQuota)
 | 
	
		
			
				|  |  | -                    .grossProfitBonusQuota(bonusQuota)
 | 
	
		
			
				|  |  | -                    .grossProfitPlatformQuota(platformQuota)
 | 
	
		
			
				|  |  | -                    .percentTemplate(percentTemplate)
 | 
	
		
			
				|  |  | -                    .build();
 | 
	
		
			
				|  |  | -            saveList.add(orderCalcSaveReqVO);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // 每个订单计算的过程
 | 
	
		
			
				|  |  | -            // 增加平台收益
 | 
	
		
			
				|  |  | -            // 平台服务费
 | 
	
		
			
				|  |  | -            Integer ptGrossAdd = ptProfitDO.getPtGrossAdd() + platformQuota;
 | 
	
		
			
				|  |  | -            // 平台收益
 | 
	
		
			
				|  |  | -            Integer ptAdd = ptProfitDO.getPtAdd() + grossProfit * (10000 - orderPercentageDO.getGrossProfitBonusQuotaPerc());
 | 
	
		
			
				|  |  | -            // 平台总收益
 | 
	
		
			
				|  |  | -            Integer ptTotal = ptProfitDO.getPtTotalAdd() + ptGrossAdd + ptAdd;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            PtProfitSaveReqVO ptProfitSaveReqVO = PtProfitSaveReqVO.builder()
 | 
	
		
			
				|  |  | -                    .ptAdd(ptAdd)
 | 
	
		
			
				|  |  | -                    .ptGrossAdd(ptGrossAdd)
 | 
	
		
			
				|  |  | -                    .ptTotalAdd(ptTotal).build();
 | 
	
		
			
				|  |  | -            ptProfitSaveReqVOS.add(ptProfitSaveReqVO);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // 平台记录
 | 
	
		
			
				|  |  | -            PtProfitLogSaveReqVO ptGrossAddLog = PtProfitLogSaveReqVO.builder()
 | 
	
		
			
				|  |  | -                    .orderId(k.getOrderId())
 | 
	
		
			
				|  |  | -                    .profitStatus(1)
 | 
	
		
			
				|  |  | -                    .amount(platformQuota)
 | 
	
		
			
				|  |  | -                    .afterAmount(ptProfitSaveReqVO.getPtGrossAdd())
 | 
	
		
			
				|  |  | -                    .percentTemplate(percentTemplate).build();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            PtProfitLogSaveReqVO ptAddLog = PtProfitLogSaveReqVO.builder()
 | 
	
		
			
				|  |  | -                    .orderId(k.getOrderId())
 | 
	
		
			
				|  |  | -                    .profitStatus(2)
 | 
	
		
			
				|  |  | -                    .amount(grossProfit * (PERCENT - orderPercentageDO.getGrossProfitBonusQuotaPerc()))
 | 
	
		
			
				|  |  | -                    .afterAmount(ptProfitSaveReqVO.getPtAdd())
 | 
	
		
			
				|  |  | -                    .percentTemplate(percentTemplate).build();
 | 
	
		
			
				|  |  | -            ptProfitLogSaveReqVOS.add(ptGrossAddLog);
 | 
	
		
			
				|  |  | -            ptProfitLogSaveReqVOS.add(ptAddLog);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // 将信息存储到数据库中
 | 
	
		
			
				|  |  | -        orderCalcMapper.insertBatch(BeanUtils.toBean(saveList, OrderCalcDO.class));
 | 
	
		
			
				|  |  | -        ptProfitService.saveBatch(ptProfitSaveReqVOS);
 | 
	
		
			
				|  |  | -        ptProfitLogService.saveBatch(ptProfitLogSaveReqVOS);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // todo 计算当天用户的碰撞
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 获取到当前订单的所有人
 | 
	
		
			
				|  |  | +//        List<Long> userId = tradeOrderDO.stream().map(DistriOrderMessage::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        OrderPercentageDO orderPercentageDO = orderPercentageService.queryStatus();
 | 
	
		
			
				|  |  | +//        // 当前计算百分比模板
 | 
	
		
			
				|  |  | +//        String percentTemplate = JsonUtils.toJsonString(orderPercentageDO);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 每个订单收益
 | 
	
		
			
				|  |  | +//        List<OrderCalcSaveReqVO> saveList = new ArrayList<>();
 | 
	
		
			
				|  |  | +//        // 平台收益
 | 
	
		
			
				|  |  | +//        List<PtProfitSaveReqVO> ptProfitSaveReqVOS = new ArrayList<>();
 | 
	
		
			
				|  |  | +//        // 平台收益日志
 | 
	
		
			
				|  |  | +//        List<PtProfitLogSaveReqVO> ptProfitLogSaveReqVOS = new ArrayList<>();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        PtProfitDO ptProfitDO = ptProfitService.getPtProfit();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        tradeOrderDO.forEach(k -> {
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            // 计算利润: (价格 - 成本价格) * 产品数量
 | 
	
		
			
				|  |  | +//            Integer profit = (k.getPrice() - k.getCostPrice()) * k.getProductCount();
 | 
	
		
			
				|  |  | +//            // 计算毛利: 利润 * 0.38
 | 
	
		
			
				|  |  | +//            Integer grossProfit = profit * orderPercentageDO.getGrossProfitPerc();
 | 
	
		
			
				|  |  | +//            // 计算用户额度: 利润 * 0.38
 | 
	
		
			
				|  |  | +//            Integer userProfit = grossProfit * orderPercentageDO.getGrossProfitUserQuotaPerc();
 | 
	
		
			
				|  |  | +//            // 计算直推人额度: 利润 * 0.38
 | 
	
		
			
				|  |  | +//            Integer ancestorQuota = grossProfit * orderPercentageDO.getGrossProfitAncestorQuotaPerc();
 | 
	
		
			
				|  |  | +//            // 计算合赢奖: 利润 * 0.38
 | 
	
		
			
				|  |  | +//            Integer bonusQuota = grossProfit * orderPercentageDO.getGrossProfitBonusQuotaPerc();
 | 
	
		
			
				|  |  | +//            // 计算平台收益: 利润 * 0.38
 | 
	
		
			
				|  |  | +//            Integer platformQuota = grossProfit * orderPercentageDO.getGrossProfitPlatformQuotaPerc();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            // 计算
 | 
	
		
			
				|  |  | +//            OrderCalcSaveReqVO orderCalcSaveReqVO = OrderCalcSaveReqVO.builder()
 | 
	
		
			
				|  |  | +//                    .userId(k.getUserId())
 | 
	
		
			
				|  |  | +//                    .orderNo(k.getNo())
 | 
	
		
			
				|  |  | +//                    .cost(k.getCostPrice())
 | 
	
		
			
				|  |  | +//                    .price(k.getPrice())
 | 
	
		
			
				|  |  | +//                    .grossProfit(grossProfit)
 | 
	
		
			
				|  |  | +//                    .grossProfitUserQuota(userProfit)
 | 
	
		
			
				|  |  | +//                    .grossProfitAncestorQuota(ancestorQuota)
 | 
	
		
			
				|  |  | +//                    .grossProfitBonusQuota(bonusQuota)
 | 
	
		
			
				|  |  | +//                    .grossProfitPlatformQuota(platformQuota)
 | 
	
		
			
				|  |  | +//                    .percentTemplate(percentTemplate)
 | 
	
		
			
				|  |  | +//                    .build();
 | 
	
		
			
				|  |  | +//            saveList.add(orderCalcSaveReqVO);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            // 每个订单计算的过程
 | 
	
		
			
				|  |  | +//            // 增加平台收益
 | 
	
		
			
				|  |  | +//            // 平台服务费
 | 
	
		
			
				|  |  | +//            Integer ptGrossAdd = ptProfitDO.getPtGrossAdd() + platformQuota;
 | 
	
		
			
				|  |  | +//            // 平台收益
 | 
	
		
			
				|  |  | +//            Integer ptAdd = ptProfitDO.getPtAdd() + grossProfit * (10000 - orderPercentageDO.getGrossProfitBonusQuotaPerc());
 | 
	
		
			
				|  |  | +//            // 平台总收益
 | 
	
		
			
				|  |  | +//            Integer ptTotal = ptProfitDO.getPtTotalAdd() + ptGrossAdd + ptAdd;
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            PtProfitSaveReqVO ptProfitSaveReqVO = PtProfitSaveReqVO.builder()
 | 
	
		
			
				|  |  | +//                    .ptAdd(ptAdd)
 | 
	
		
			
				|  |  | +//                    .ptGrossAdd(ptGrossAdd)
 | 
	
		
			
				|  |  | +//                    .ptTotalAdd(ptTotal).build();
 | 
	
		
			
				|  |  | +//            ptProfitSaveReqVOS.add(ptProfitSaveReqVO);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            // 平台记录
 | 
	
		
			
				|  |  | +//            PtProfitLogSaveReqVO ptGrossAddLog = PtProfitLogSaveReqVO.builder()
 | 
	
		
			
				|  |  | +//                    .orderId(k.getOrderId())
 | 
	
		
			
				|  |  | +//                    .profitStatus(1)
 | 
	
		
			
				|  |  | +//                    .amount(platformQuota)
 | 
	
		
			
				|  |  | +//                    .afterAmount(ptProfitSaveReqVO.getPtGrossAdd())
 | 
	
		
			
				|  |  | +//                    .percentTemplate(percentTemplate).build();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//            PtProfitLogSaveReqVO ptAddLog = PtProfitLogSaveReqVO.builder()
 | 
	
		
			
				|  |  | +//                    .orderId(k.getOrderId())
 | 
	
		
			
				|  |  | +//                    .profitStatus(2)
 | 
	
		
			
				|  |  | +//                    .amount(grossProfit * (PERCENT - orderPercentageDO.getGrossProfitBonusQuotaPerc()))
 | 
	
		
			
				|  |  | +//                    .afterAmount(ptProfitSaveReqVO.getPtAdd())
 | 
	
		
			
				|  |  | +//                    .percentTemplate(percentTemplate).build();
 | 
	
		
			
				|  |  | +//            ptProfitLogSaveReqVOS.add(ptGrossAddLog);
 | 
	
		
			
				|  |  | +//            ptProfitLogSaveReqVOS.add(ptAddLog);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        });
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // 将信息存储到数据库中
 | 
	
		
			
				|  |  | +//        orderCalcMapper.insertBatch(BeanUtils.toBean(saveList, OrderCalcDO.class));
 | 
	
		
			
				|  |  | +//        ptProfitService.saveBatch(ptProfitSaveReqVOS);
 | 
	
		
			
				|  |  | +//        ptProfitLogService.saveBatch(ptProfitLogSaveReqVOS);
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//        // todo 计算当天用户的碰撞
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 |