| 
					
				 | 
			
			
				@@ -47,8 +47,7 @@ import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Stream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import static com.ym.mec.biz.dal.enums.GroupType.MUSIC; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import static com.ym.mec.biz.dal.enums.GroupType.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static com.ym.mec.biz.dal.enums.PracticeGroupType.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1905,7 +1904,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("排课起始时间不能小于当前时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        boolean needSchoolId = Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode()) && vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) && Objects.isNull(vipGroupCourseAdjustInfo.getTeachMode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean needSchoolId = Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode()) && vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) && Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (needSchoolId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("请设置教学点"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2032,8 +2031,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     courseSchedules.get(courseStartDates.size() - 1).setEndClassTime(courseEndTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if(courseSchedules.get(courseStartDates.size() - 1).getTeachMode().equals(TeachModeEnum.ONLINE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								&&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							throw new BizException("暂不支持线上课程转为线下课"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							&&Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            throw new BizException("请选择教学点"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         courseSchedules.get(courseStartDates.size() - 1).setTeachMode(vipGroupCourseAdjustInfo.getTeachMode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2075,6 +2075,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(groupType == VIP){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			VipGroup vipGroup = vipGroupDao.get(vipGroupCourseAdjustInfo.getVipGroupId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			BigDecimal teacherSalary=BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupCourseAdjustInfo.getVipGroupId().intValue(), courseSchedules.get(0).getActualTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(Objects.nonNull(classGroupTeacherSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				teacherSalary=vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)?classGroupTeacherSalary.getSalary():classGroupTeacherSalary.getOnlineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(teacherSalary.compareTo(BigDecimal.ZERO)<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(courseSchedules.get(0).getActualTeacherId(),vipGroup.getVipGroupCategoryId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (tdvs == null||Objects.isNull(tdvs.getOfflineClassesSalary())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					throw new BizException("老师[]没有设置默认课酬,请先设置", courseSchedules.get(0).getActualTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				teacherSalary=tdvs.getOfflineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			courseScheduleTeacherSalaryDao.batchUpdateCourseSalarys(courseScheduleIds, teacherSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseScheduleDao.batchUpdate(courseSchedules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupService.updateClassGroupInfo(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(vipGroupCourseAdjustInfo.getCourseCreateStartTime().after(now)){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2361,10 +2383,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (newCourseSchedule.getGroupType() == GroupType.VIP) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() && newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw new BizException("不允许将线上课调整为线下课"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					&& newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					&& Objects.isNull(newCourseSchedule.getSchoolId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				throw new BizException("请设置教学点"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (Objects.isNull(newCourseSchedule.getSchoolId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2554,18 +2576,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 所有老师默认vip课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//				List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//				Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//				for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//					Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//					if (map == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						map = new HashMap<Integer, TeacherDefaultVipGroupSalary>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//					map.put(tdvs.getVipGroupCategoryId(), tdvs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//					vipGroupSalaryMap.put(tdvs.getUserId(), map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//				VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (map == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						map = new HashMap<Integer, TeacherDefaultVipGroupSalary>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					map.put(tdvs.getVipGroupCategoryId(), tdvs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					vipGroupSalaryMap.put(tdvs.getUserId(), map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 删除课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<Long> courseScheduleIdList = new ArrayList<Long>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2670,36 +2692,31 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} else if (newCourseSchedule.getGroupType() == GroupType.VIP) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						if (map == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						if (vipGroup == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//							throw new BizException("课程[{}]记录存在异常,请联系管理员", courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						TeacherDefaultVipGroupSalary tdvs = map.get(vipGroup.getVipGroupCategoryId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						if (tdvs == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						Map<String, BigDecimal> costInfo = vipGroupService.countVipGroupPredictFee(vipGroup, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//								teacherId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//								vipGroup.getOnlineClassesUnitPrice(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//								vipGroup.getOfflineClassesUnitPrice(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//								false,true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						if (newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//							ts.setExpectSalary(costInfo.get("offlineTeacherSalary")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//							ts.setExpectSalary(costInfo.get("onlineTeacherSalary")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						ts.setExpectSalary(new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						Map<Integer, CourseScheduleTeacherSalary> tsMap = courseScheduleTeacherSalaryMap.get(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if(tsMap != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							CourseScheduleTeacherSalary oldTS = tsMap.get(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							if(oldTS != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								ts.setExpectSalary(oldTS.getExpectSalary()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if (map == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if (vipGroup == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							throw new BizException("课程[{}]记录存在异常,请联系管理员", courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						BigDecimal teacherSalary=BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(Objects.nonNull(classGroupTeacherSalary)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherSalary=newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE?classGroupTeacherSalary.getSalary():classGroupTeacherSalary.getOnlineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(Objects.isNull(teacherSalary)||teacherSalary.compareTo(BigDecimal.ZERO)<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(teacherId,vipGroup.getVipGroupCategoryId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							if (tdvs == null||Objects.isNull(tdvs.getOfflineClassesSalary())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherSalary=tdvs.getOfflineClassesSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ts.setExpectSalary(teacherSalary); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} else if (newCourseSchedule.getGroupType() == PRACTICE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								.queryByUserId(teacherId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3879,7 +3896,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(practiceGroup.getType() != TRIAL){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(practiceGroup.getType() == FREE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(practiceGroup.getType() != FREE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					throw new BizException("请设置老师默认课酬"); 
			 |