| 
					
				 | 
			
			
				@@ -172,6 +172,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		classGroup.setTotalClassTimes(vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		classGroup.setType(ClassGroupTypeEnum.VIP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		classGroup.setDelFlag(YesOrNoEnum.NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		classGroup.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		classGroupDao.insert(classGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//创建vip课班级关联记录 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -208,6 +209,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		    courseSchedule.setSchoolId(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		    courseSchedule.setTeacherId(vipGroupApplyBaseInfoDto.getUserId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			courseSchedule.setActualTeacherId(vipGroupApplyBaseInfoDto.getUserId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			courseSchedule.setStatus(CourseStatusEnum.NOT_START); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		    courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			courseSchedule.setClassGroupId(classGroup.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -321,8 +323,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		pageInfo.setRows(dataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		TeachingRecordBaseInfo classTimes = vipGroupDao.getClassTimes(queryInfo.getVipGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		classTimes.setIsSalaryNum(vipGroupDao.countIsSalaryNum(queryInfo.getVipGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		classTimes.setComplaintsNum(vipGroupDao.countComplaintsNum(queryInfo.getVipGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(!Objects.isNull(classTimes)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			classTimes.setIsSalaryNum(vipGroupDao.countIsSalaryNum(queryInfo.getVipGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			classTimes.setComplaintsNum(vipGroupDao.countComplaintsNum(queryInfo.getVipGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Map<String,Object> result=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		result.put("pageInfo",pageInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		result.put("baseInfo",classTimes); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -491,41 +495,46 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal onlineClassNum=new BigDecimal(vipGroup.getOnlineClassesNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//教师课酬线上单课酬计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case TEACHER_DEFAULT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(Objects.isNull(teacherDefaultVipGroupSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw new BizException("未设置教师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				results.put("onlineTeacherSalary",teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(classTimeDuty)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				throw new BizException("未指定课酬结算标准!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				case TEACHER_DEFAULT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(Objects.isNull(teacherDefaultVipGroupSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						throw new BizException("未设置教师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					results.put("onlineTeacherSalary",teacherDefaultVipGroupSalary.getOnlineClassesSalary().multiply(classTimeDuty)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					throw new BizException("未指定课酬结算标准!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//教师线下单课酬计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case TEACHER_DEFAULT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(Objects.isNull(teacherDefaultVipGroupSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw new BizException("未设置教师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				results.put("offlineTeacherSalary",teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(classTimeDuty)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				throw new BizException("未指定课酬结算标准!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(Objects.nonNull(vipGroupSalarySettlementDto.getOfflineSalarySettlement())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				case TEACHER_DEFAULT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(Objects.isNull(teacherDefaultVipGroupSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						throw new BizException("未设置教师默认课酬"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					results.put("offlineTeacherSalary",teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(classTimeDuty)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				case RATIO_DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				case FIXED_SALARY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					throw new BizException("未指定课酬结算标准!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(computeTotalPrice){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -538,16 +547,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				case DISCOUNT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					totalPrice=totalPrice.multiply(discount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				case GIVE_CLASS: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if(offlineClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						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(onlineClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -601,6 +610,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(Objects.isNull(vipGroupClassGroupMapper)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			throw new BizException("课程信息错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		studentPaymentOrder.setUserId(user.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -608,6 +621,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		studentPaymentOrder.setOrderNo(orderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		studentPaymentOrder.setType(OrderTypeEnum.SMALL_CLASS_TO_BUY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		studentPaymentOrder.setExpectAmount(vipGroup.getTotalPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(vipGroupActivity.getType()==VipGroupActivityTypeEnum.DISCOUNT){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().multiply(new BigDecimal(vipGroupActivity.getAttribute1()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}else{ 
			 |