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