| 
					
				 | 
			
			
				@@ -876,39 +876,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal teacherOnlineSalary=null,teacherOfflineSalary=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//教师课酬线上单课酬计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    &&vipGroupActivity.getSalaryReadonlyFlag().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                results.put("onlineTeacherSalary",teacherOnlineSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(Objects.isNull(teacherOnlineSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    case TEACHER_DEFAULT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(Objects.isNull(teacherDefaultVipGroupSalary)||Objects.isNull(teacherDefaultVipGroupSalary.getOnlineClassesSalary())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            teacherOnlineSalary=new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        throw new BizException("未指定课酬结算标准!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			results.put("onlineTeacherSalary", new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//教师线下单课酬计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(Objects.nonNull(vipGroupSalarySettlementDto.getOfflineSalarySettlement())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -945,41 +912,75 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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("请指定赠送课程类型!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//课程购买费用计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		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())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw new BizException("活动类型错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//教师课酬线上单课酬计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					&&vipGroupActivity.getSalaryReadonlyFlag().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				results.put("onlineTeacherSalary",teacherOnlineSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(Objects.isNull(teacherOnlineSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					case TEACHER_DEFAULT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(Objects.isNull(teacherDefaultVipGroupSalary)||Objects.isNull(teacherDefaultVipGroupSalary.getOnlineClassesSalary())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherOnlineSalary=new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						results.put("onlineTeacherSalary",teacherOnlineSalary.setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						BigDecimal tos=results.get("totalPrice").divide(onlineClassNum.add(offlineClassNum), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								.multiply(new BigDecimal(0.6)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//						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", tos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						throw new BizException("未指定课酬结算标准!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			results.put("onlineTeacherSalary", new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return results; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |