| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -115,13 +115,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 先算等级 注册、升级计算等级
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 订单指定产品盒数
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        BigDecimal boxNum = BigDecimal.ZERO;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        saOrderExt.setBoxNum(boxNum);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        BigDecimal boxNum = saOrderExt.getBoxNum();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        BigDecimal boxNum = BigDecimal.ZERO;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//            if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        saOrderExt.setBoxNum(boxNum);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 订单业绩
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -154,7 +155,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            // 注册、升级订单,计算奖金: 直推级差收益 + 平级收益
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        && EDelFlag.UN_DELETE.getValue() == saOrderItems.getDelFlag()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    // 指定盒数商品
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    // 计算直推级差收益 + 平级收益
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -259,13 +261,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 计算自消费奖衔
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 先算等级 注册、升级计算等级
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        BigDecimal boxNum = BigDecimal.ZERO;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        saOrderExt.setBoxNum(boxNum);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        BigDecimal boxNum = saOrderExt.getBoxNum();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        BigDecimal boxNum = BigDecimal.ZERO;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//            if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//        saOrderExt.setBoxNum(boxNum);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // 订单业绩
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -522,12 +525,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // 订单指定产品盒数(计算等级使用)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                BigDecimal boxNum = BigDecimal.ZERO;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                BigDecimal boxNum = saOrderExt.getBoxNum();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                BigDecimal boxNum = BigDecimal.ZERO;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                    if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                        boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // 个人累计消费pv
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                // 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -552,7 +557,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                ) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    // 注册或升级订单并且存在盒数产品,才有 直推级差收益 和 平级收益
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                && EDelFlag.UN_DELETE.getValue() == saOrderItems.getDelFlag()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                            // 盒数商品 计算 直推级差 + 平级收益
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                            cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        }
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@ -1405,12 +1411,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            // 复购订单, 区域收益 = 复购区域分红 * 商品数量
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (ERatioType.VALUE.getValue() == saOrderWaresExt.getAreaIncomeType()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    // 按比值处理
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                } else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    // 按比率处理
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(saOrderWaresExt.getAreaIncome()).divide(new BigDecimal("100"), 6, BigDecimal.ROUND_HALF_UP));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (EDelFlag.UN_DELETE.getValue() == saOrderWaresExt.getDelFlag()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    if (ERatioType.VALUE.getValue() == saOrderWaresExt.getAreaIncomeType()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        // 按比值处理
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    } else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        // 按比率处理
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(saOrderWaresExt.getAreaIncome()).divide(new BigDecimal("100"), 6, BigDecimal.ROUND_HALF_UP));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
	
		
			
				
					| 
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |