| 
					
				 | 
			
			
				@@ -876,6 +876,45 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal teacherOnlineSalary=null,teacherOfflineSalary=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(Objects.isNull(vipGroupActivity.getType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			throw new BizException("此活动未设置活动类型"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//课程购买费用计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		BigDecimal totalPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		switch (vipGroupActivity.getType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			case BASE_ACTIVITY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			case DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			case GIVE_CLASS: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))<0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					throw new BizException("请指定赠送课程类型!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				throw new BizException("活动类型错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		totalPrice=totalPrice.setScale(0,BigDecimal.ROUND_CEILING); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		results.put("totalPrice",totalPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//教师课酬线上单课酬计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -895,7 +934,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						results.put("onlineTeacherSalary",teacherOnlineSalary.setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//						results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						results.put("onlineTeacherSalary",totalPrice.divide(totalClassNum, RoundingMode.HALF_UP).multiply(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -924,11 +964,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						results.put("offlineTeacherSalary",teacherOfflineSalary.setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//						results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						results.put("offlineTeacherSalary",totalPrice.divide(totalClassNum, RoundingMode.HALF_UP).multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -941,45 +981,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			results.put("offlineTeacherSalary", new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(Objects.isNull(vipGroupActivity.getType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			throw new BizException("此活动未设置活动类型"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(computeTotalPrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			//课程购买费用计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			BigDecimal totalPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			switch (vipGroupActivity.getType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				case BASE_ACTIVITY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				case DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				case GIVE_CLASS: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))<0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						throw new BizException("请指定赠送课程类型!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw new BizException("活动类型错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return results; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |