|  | @@ -267,152 +267,152 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -    public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
 | 
	
		
			
				|  |  | -        String key = "addHighClassGroup";
 | 
	
		
			
				|  |  | -        long value = Thread.currentThread().getId();
 | 
	
		
			
				|  |  | -        redisCache.getLocked(key, value, 30);
 | 
	
		
			
				|  |  | -        MusicGroup musicGroup = musicGroupDao.get(highClassGroupList.get(0).getMusicGroupId());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        int highClassGroupNum = studentRegistrationDao.findMusicGroupStudentNum(musicGroup.getId()) / 5;
 | 
	
		
			
				|  |  | -        if (highClassGroupList.size() > highClassGroupNum) {
 | 
	
		
			
				|  |  | -            throw new BizException("班数不能大于" + highClassGroupNum);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), ClassGroupTypeEnum.HIGH);
 | 
	
		
			
				|  |  | -        if (classGroups.size() > 0) {
 | 
	
		
			
				|  |  | -            List<Integer> classGroupIds = classGroups.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            //删除基础提高班
 | 
	
		
			
				|  |  | -            classGroupDao.batchSoftDelete(classGroupIds);
 | 
	
		
			
				|  |  | -            //删除基础提高老师
 | 
	
		
			
				|  |  | -            classGroupTeacherMapperDao.delClassGroupTeacherMapper(classGroupIds);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupIds, GroupType.MUSIC);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            if (classGroupNoStartCourseSchedules.size() > 0) {
 | 
	
		
			
				|  |  | -                List<Long> courseScheduleIds = classGroupNoStartCourseSchedules.stream().map(courseSchedule -> courseSchedule.getId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 | 
	
		
			
				|  |  | -                teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
 | 
	
		
			
				|  |  | -                //删除基础提高班课程
 | 
	
		
			
				|  |  | -                courseScheduleDao.deleteCourseSchedulesByClassGroupIds(courseScheduleIds);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            List<ImGroupModel> imGroupModelList = new ArrayList<>();
 | 
	
		
			
				|  |  | -            for (ClassGroup classGroup : classGroups) {
 | 
	
		
			
				|  |  | -                imGroupModelList.add(new ImGroupModel(classGroup.getId().toString(), null, classGroup.getName()));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            imFeignService.groupBatchDismiss(imGroupModelList);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        List<CourseSchedule> courseScheduleList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        List<ClassGroupTeacherMapper> classGroupTeacherMapperList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        List<ClassGroupImGroupDto> classGroupImGroupList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        Integer schoolId = musicGroup.getSchoolId();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        for (HighClassGroupDto highClassGroup : highClassGroupList) {
 | 
	
		
			
				|  |  | -            if (highClassGroup.getDayOfWeek() < 1 || highClassGroup.getDayOfWeek() > 7) {
 | 
	
		
			
				|  |  | -                throw new BizException("上课星期错误,请核查");
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            //1、插入班级信息
 | 
	
		
			
				|  |  | -            Date date;
 | 
	
		
			
				|  |  | -            date = new Date();
 | 
	
		
			
				|  |  | -            highClassGroup.setId(null);
 | 
	
		
			
				|  |  | -            highClassGroup.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | -            highClassGroup.setCreateTime(date);
 | 
	
		
			
				|  |  | -            highClassGroup.setUpdateTime(date);
 | 
	
		
			
				|  |  | -            highClassGroup.setType(ClassGroupTypeEnum.HIGH);
 | 
	
		
			
				|  |  | -            highClassGroup.setTotalClassTimes(highClassGroup.getCourseTimes());
 | 
	
		
			
				|  |  | -            highClassGroup.setCurrentClassTimes(0);
 | 
	
		
			
				|  |  | -            insert(highClassGroup);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            //2、插入班级关联老师
 | 
	
		
			
				|  |  | -            ClassGroupTeacherMapper classGroupTeacherMapper = new ClassGroupTeacherMapper();
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setMusicGroupId(highClassGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setClassGroupId(highClassGroup.getId());
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setUserId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setCreateTime(date);
 | 
	
		
			
				|  |  | -            classGroupTeacherMapper.setUpdateTime(date);
 | 
	
		
			
				|  |  | -            classGroupTeacherMapperList.add(classGroupTeacherMapper);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            //3、插入班级排课信息
 | 
	
		
			
				|  |  | -            int times = 0;
 | 
	
		
			
				|  |  | -            LocalDateTime now = LocalDate.parse(highClassGroup.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            List<Subject> subjectList = subjectService.findBySubjectByIdList(highClassGroup.getSubjectIdList());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            String courseScheduleName = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | -            Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | -            if (highClassGroup.getHoliday()) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(now.getYear());
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(now.getYear());
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            WhileNode:
 | 
	
		
			
				|  |  | -            while (highClassGroup.getCourseTimes() > times) {
 | 
	
		
			
				|  |  | -                if(highClassGroup.getHoliday() && !holiday.containsKey(now.getYear())){
 | 
	
		
			
				|  |  | -                    holiday = jiaRiFeignService.query(now.getYear());
 | 
	
		
			
				|  |  | -                    holidayDays = holiday.get(now.getYear());
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                if (highClassGroup.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MMdd")))) {
 | 
	
		
			
				|  |  | -                    now = now.plusDays(1);
 | 
	
		
			
				|  |  | -                    continue;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                int dayOfWeek = now.getDayOfWeek().getValue();
 | 
	
		
			
				|  |  | -                if (highClassGroup.getDayOfWeek() == dayOfWeek) {
 | 
	
		
			
				|  |  | -                    CourseSchedule courseSchedule = new CourseSchedule();
 | 
	
		
			
				|  |  | -                    Instant instant = now.atZone(ZoneId.systemDefault()).toInstant();
 | 
	
		
			
				|  |  | -                    Date classDate = Date.from(instant);
 | 
	
		
			
				|  |  | -                    String startClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getStartClassTime() + ":00";
 | 
	
		
			
				|  |  | -                    String endClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getEndClassTime() + ":00";
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    courseSchedule.setSchoolId(schoolId);
 | 
	
		
			
				|  |  | -                    courseSchedule.setMusicGroupId(highClassGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | -                    courseSchedule.setClassGroupId(highClassGroup.getId());
 | 
	
		
			
				|  |  | -                    courseSchedule.setStatus(CourseStatusEnum.NOT_START);
 | 
	
		
			
				|  |  | -                    courseSchedule.setClassDate(classDate);
 | 
	
		
			
				|  |  | -                    courseSchedule.setStartClassTime(DateUtil.stringToDate(startClassTime));
 | 
	
		
			
				|  |  | -                    courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
 | 
	
		
			
				|  |  | -                    courseSchedule.setTeacherId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | -                    courseSchedule.setActualTeacherId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | -                    courseSchedule.setCreateTime(date);
 | 
	
		
			
				|  |  | -                    courseSchedule.setUpdateTime(date);
 | 
	
		
			
				|  |  | -                    courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
 | 
	
		
			
				|  |  | -                    courseSchedule.setType(CourseSchedule.CourseScheduleType.HIGH);
 | 
	
		
			
				|  |  | -                    courseSchedule.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | -                    courseSchedule.setName(courseScheduleName + "-" + CourseSchedule.CourseScheduleType.HIGH.getMsg());
 | 
	
		
			
				|  |  | -                    courseScheduleList.add(courseSchedule);
 | 
	
		
			
				|  |  | -                    times++;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                now = now.plusDays(1);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            List<Integer> userIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | -            userIdList.add(classGroupTeacherMapper.getUserId());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            ClassGroupImGroupDto classGroupImGroupDto = new ClassGroupImGroupDto();
 | 
	
		
			
				|  |  | -            classGroupImGroupDto.setClassGroup(highClassGroup);
 | 
	
		
			
				|  |  | -            classGroupImGroupDto.setUserIds(userIdList);
 | 
	
		
			
				|  |  | -            classGroupImGroupList.add(classGroupImGroupDto);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        //加入Im群组
 | 
	
		
			
				|  |  | -        batchAddImGroup(classGroupImGroupList);
 | 
	
		
			
				|  |  | -        classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList);
 | 
	
		
			
				|  |  | -        //检测新排课冲突
 | 
	
		
			
				|  |  | -        courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
 | 
	
		
			
				|  |  | -        courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        redisCache.releaseLocked(key, value);
 | 
	
		
			
				|  |  | -        return highClassGroupList;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +	public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
 | 
	
		
			
				|  |  | +		String key = "addHighClassGroup";
 | 
	
		
			
				|  |  | +		long value = Thread.currentThread().getId();
 | 
	
		
			
				|  |  | +		redisCache.getLocked(key, value, 30);
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			MusicGroup musicGroup = musicGroupDao.get(highClassGroupList.get(0).getMusicGroupId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			int highClassGroupNum = studentRegistrationDao.findMusicGroupStudentNum(musicGroup.getId()) / 5;
 | 
	
		
			
				|  |  | +			if (highClassGroupList.size() > highClassGroupNum) {
 | 
	
		
			
				|  |  | +				throw new BizException("班数不能大于" + highClassGroupNum);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), ClassGroupTypeEnum.HIGH);
 | 
	
		
			
				|  |  | +			if (classGroups.size() > 0) {
 | 
	
		
			
				|  |  | +				List<Integer> classGroupIds = classGroups.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				// 删除基础提高班
 | 
	
		
			
				|  |  | +				classGroupDao.batchSoftDelete(classGroupIds);
 | 
	
		
			
				|  |  | +				// 删除基础提高老师
 | 
	
		
			
				|  |  | +				classGroupTeacherMapperDao.delClassGroupTeacherMapper(classGroupIds);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupIds,
 | 
	
		
			
				|  |  | +						GroupType.MUSIC);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				if (classGroupNoStartCourseSchedules.size() > 0) {
 | 
	
		
			
				|  |  | +					List<Long> courseScheduleIds = classGroupNoStartCourseSchedules.stream().map(courseSchedule -> courseSchedule.getId())
 | 
	
		
			
				|  |  | +							.collect(Collectors.toList());
 | 
	
		
			
				|  |  | +					courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 | 
	
		
			
				|  |  | +					teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
 | 
	
		
			
				|  |  | +					// 删除基础提高班课程
 | 
	
		
			
				|  |  | +					courseScheduleDao.deleteCourseSchedulesByClassGroupIds(courseScheduleIds);
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				List<ImGroupModel> imGroupModelList = new ArrayList<>();
 | 
	
		
			
				|  |  | +				for (ClassGroup classGroup : classGroups) {
 | 
	
		
			
				|  |  | +					imGroupModelList.add(new ImGroupModel(classGroup.getId().toString(), null, classGroup.getName()));
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				imFeignService.groupBatchDismiss(imGroupModelList);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			List<CourseSchedule> courseScheduleList = new ArrayList<>();
 | 
	
		
			
				|  |  | +			List<ClassGroupTeacherMapper> classGroupTeacherMapperList = new ArrayList<>();
 | 
	
		
			
				|  |  | +			List<ClassGroupImGroupDto> classGroupImGroupList = new ArrayList<>();
 | 
	
		
			
				|  |  | +			Integer schoolId = musicGroup.getSchoolId();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			for (HighClassGroupDto highClassGroup : highClassGroupList) {
 | 
	
		
			
				|  |  | +				if (highClassGroup.getDayOfWeek() < 1 || highClassGroup.getDayOfWeek() > 7) {
 | 
	
		
			
				|  |  | +					throw new BizException("上课星期错误,请核查");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				// 1、插入班级信息
 | 
	
		
			
				|  |  | +				Date date;
 | 
	
		
			
				|  |  | +				date = new Date();
 | 
	
		
			
				|  |  | +				highClassGroup.setId(null);
 | 
	
		
			
				|  |  | +				highClassGroup.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +				highClassGroup.setCreateTime(date);
 | 
	
		
			
				|  |  | +				highClassGroup.setUpdateTime(date);
 | 
	
		
			
				|  |  | +				highClassGroup.setType(ClassGroupTypeEnum.HIGH);
 | 
	
		
			
				|  |  | +				highClassGroup.setTotalClassTimes(highClassGroup.getCourseTimes());
 | 
	
		
			
				|  |  | +				highClassGroup.setCurrentClassTimes(0);
 | 
	
		
			
				|  |  | +				insert(highClassGroup);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				// 2、插入班级关联老师
 | 
	
		
			
				|  |  | +				ClassGroupTeacherMapper classGroupTeacherMapper = new ClassGroupTeacherMapper();
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setMusicGroupId(highClassGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setClassGroupId(highClassGroup.getId());
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setUserId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setCreateTime(date);
 | 
	
		
			
				|  |  | +				classGroupTeacherMapper.setUpdateTime(date);
 | 
	
		
			
				|  |  | +				classGroupTeacherMapperList.add(classGroupTeacherMapper);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				// 3、插入班级排课信息
 | 
	
		
			
				|  |  | +				int times = 0;
 | 
	
		
			
				|  |  | +				LocalDateTime now = LocalDate.parse(highClassGroup.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				List<Subject> subjectList = subjectService.findBySubjectByIdList(highClassGroup.getSubjectIdList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				String courseScheduleName = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | +				Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | +				if (highClassGroup.getHoliday()) {
 | 
	
		
			
				|  |  | +					holiday = jiaRiFeignService.query(now.getYear());
 | 
	
		
			
				|  |  | +					holidayDays = holiday.get(now.getYear());
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				WhileNode: while (highClassGroup.getCourseTimes() > times) {
 | 
	
		
			
				|  |  | +					if (highClassGroup.getHoliday() && !holiday.containsKey(now.getYear())) {
 | 
	
		
			
				|  |  | +						holiday = jiaRiFeignService.query(now.getYear());
 | 
	
		
			
				|  |  | +						holidayDays = holiday.get(now.getYear());
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					if (highClassGroup.getHoliday() && holidayDays.containsKey(now.format(DateTimeFormatter.ofPattern("MMdd")))) {
 | 
	
		
			
				|  |  | +						now = now.plusDays(1);
 | 
	
		
			
				|  |  | +						continue;
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					int dayOfWeek = now.getDayOfWeek().getValue();
 | 
	
		
			
				|  |  | +					if (highClassGroup.getDayOfWeek() == dayOfWeek) {
 | 
	
		
			
				|  |  | +						CourseSchedule courseSchedule = new CourseSchedule();
 | 
	
		
			
				|  |  | +						Instant instant = now.atZone(ZoneId.systemDefault()).toInstant();
 | 
	
		
			
				|  |  | +						Date classDate = Date.from(instant);
 | 
	
		
			
				|  |  | +						String startClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getStartClassTime() + ":00";
 | 
	
		
			
				|  |  | +						String endClassTime = DateUtil.getDate(classDate) + " " + highClassGroup.getEndClassTime() + ":00";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +						courseSchedule.setSchoolId(schoolId);
 | 
	
		
			
				|  |  | +						courseSchedule.setMusicGroupId(highClassGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +						courseSchedule.setClassGroupId(highClassGroup.getId());
 | 
	
		
			
				|  |  | +						courseSchedule.setStatus(CourseStatusEnum.NOT_START);
 | 
	
		
			
				|  |  | +						courseSchedule.setClassDate(classDate);
 | 
	
		
			
				|  |  | +						courseSchedule.setStartClassTime(DateUtil.stringToDate(startClassTime));
 | 
	
		
			
				|  |  | +						courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
 | 
	
		
			
				|  |  | +						courseSchedule.setTeacherId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | +						courseSchedule.setActualTeacherId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | +						courseSchedule.setCreateTime(date);
 | 
	
		
			
				|  |  | +						courseSchedule.setUpdateTime(date);
 | 
	
		
			
				|  |  | +						courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
 | 
	
		
			
				|  |  | +						courseSchedule.setType(CourseSchedule.CourseScheduleType.HIGH);
 | 
	
		
			
				|  |  | +						courseSchedule.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +						courseSchedule.setName(courseScheduleName + "-" + CourseSchedule.CourseScheduleType.HIGH.getMsg());
 | 
	
		
			
				|  |  | +						courseScheduleList.add(courseSchedule);
 | 
	
		
			
				|  |  | +						times++;
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					now = now.plusDays(1);
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				List<Integer> userIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | +				userIdList.add(classGroupTeacherMapper.getUserId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				ClassGroupImGroupDto classGroupImGroupDto = new ClassGroupImGroupDto();
 | 
	
		
			
				|  |  | +				classGroupImGroupDto.setClassGroup(highClassGroup);
 | 
	
		
			
				|  |  | +				classGroupImGroupDto.setUserIds(userIdList);
 | 
	
		
			
				|  |  | +				classGroupImGroupList.add(classGroupImGroupDto);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			// 加入Im群组
 | 
	
		
			
				|  |  | +			batchAddImGroup(classGroupImGroupList);
 | 
	
		
			
				|  |  | +			classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList);
 | 
	
		
			
				|  |  | +			// 检测新排课冲突
 | 
	
		
			
				|  |  | +			courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
 | 
	
		
			
				|  |  | +			courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
 | 
	
		
			
				|  |  | +		} finally {
 | 
	
		
			
				|  |  | +			redisCache.releaseLocked(key, value);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return highClassGroupList;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageInfo<TeacherMusicClassInfoDto> getTeacherMusicClass(QueryInfo queryInfo) {
 |