|  | @@ -80,10 +80,11 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private static Map<Integer,String> subjectSubjectsMap=new HashMap<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private static Date activityStartDate,activityEndDate;
 | 
	
		
			
				|  |  | +    private static Date activityStartDate,activityEndDate,applyStartDay;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      static{
 | 
	
		
			
				|  |  | -        activityStartDate=DateUtil.stringToDate("2020-02-01 00:00:00");
 | 
	
		
			
				|  |  | +        applyStartDay=DateUtil.stringToDate("2020-02-08 00:00:00");
 | 
	
		
			
				|  |  | +        activityStartDate=DateUtil.stringToDate("2020-02-09 00:00:00");
 | 
	
		
			
				|  |  |          activityEndDate=DateUtil.stringToDate("2020-03-25 00:00:00");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          schoolSubjectTeachersMap=new HashMap<>();
 | 
	
	
		
			
				|  | @@ -178,45 +179,57 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 | 
	
		
			
				|  |  |          List<Integer> teacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  | +        if(now.before(applyStartDay)){
 | 
	
		
			
				|  |  | +            now=applyStartDay;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          calendar.setTime(now);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  | -        calendar.add(Calendar.DATE,1);
 | 
	
		
			
				|  |  | -        Date applyStartDay = calendar.getTime();
 | 
	
		
			
				|  |  | -        calendar.add(Calendar.DATE,7);
 | 
	
		
			
				|  |  | -        Date applyEndDay = calendar.getTime();
 | 
	
		
			
				|  |  | -        List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeachersCoursesWithDateRange(teacherIds, applyStartDay, applyEndDay);
 | 
	
		
			
				|  |  |          List<Integer> includeTeacherIds=new ArrayList<>();
 | 
	
		
			
				|  |  | +        while (calendar.getTime().before(activityEndDate)){
 | 
	
		
			
				|  |  | +            calendar.add(Calendar.DATE,1);
 | 
	
		
			
				|  |  | +            Date applyStartDay = calendar.getTime();
 | 
	
		
			
				|  |  | +            calendar.add(Calendar.DATE,7);
 | 
	
		
			
				|  |  | +            Date applyEndDay = calendar.getTime();
 | 
	
		
			
				|  |  | +            if(applyEndDay.after(activityEndDate)){
 | 
	
		
			
				|  |  | +                applyEndDay=activityEndDate;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeachersCoursesWithDateRange(teacherIds, applyStartDay, applyEndDay);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Date firstClassEndTime = DateUtil.addMinutes(practiceGroup.getFirstCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | -        Date secondClassEndTime = DateUtil.addMinutes(practiceGroup.getSecondCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | +            Date firstClassEndTime = DateUtil.addMinutes(practiceGroup.getFirstCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | +            Date secondClassEndTime = DateUtil.addMinutes(practiceGroup.getSecondCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
 | 
	
		
			
				|  |  | -        for (Integer teacherId : teacherIds) {
 | 
	
		
			
				|  |  | -            List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
 | 
	
		
			
				|  |  | -            if(CollectionUtils.isEmpty(teacherCourses)){
 | 
	
		
			
				|  |  | -                includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  | -                continue;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 | 
	
		
			
				|  |  | -            boolean enableCreateFirstCourse=true;
 | 
	
		
			
				|  |  | -            boolean enableCreateSecondCourse=true;
 | 
	
		
			
				|  |  | -            for (int i=0;i<teacherCourses.size()-1;i++) {
 | 
	
		
			
				|  |  | -                CourseSchedule preCourseSchedule = teacherCourses.get(i);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                if(practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | -                        &&firstClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | -                    enableCreateFirstCourse=false;
 | 
	
		
			
				|  |  | +            Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
 | 
	
		
			
				|  |  | +            for (Integer teacherId : teacherIds) {
 | 
	
		
			
				|  |  | +                List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
 | 
	
		
			
				|  |  | +                if(CollectionUtils.isEmpty(teacherCourses)){
 | 
	
		
			
				|  |  | +                    includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +                teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 | 
	
		
			
				|  |  | +                boolean enableCreateFirstCourse=true;
 | 
	
		
			
				|  |  | +                boolean enableCreateSecondCourse=true;
 | 
	
		
			
				|  |  | +                for (int i=0;i<teacherCourses.size()-1;i++) {
 | 
	
		
			
				|  |  | +                    CourseSchedule preCourseSchedule = teacherCourses.get(i);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if(practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | +                            &&firstClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | +                        enableCreateFirstCourse=false;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if(practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | -                        &&secondClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | -                    enableCreateSecondCourse=false;
 | 
	
		
			
				|  |  | +                    if(practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | +                            &&secondClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | +                        enableCreateSecondCourse=false;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (enableCreateFirstCourse&&enableCreateSecondCourse){
 | 
	
		
			
				|  |  | +                    includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if (enableCreateFirstCourse&&enableCreateSecondCourse){
 | 
	
		
			
				|  |  | -                includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  | +            if(!CollectionUtils.isEmpty(includeTeacherIds)){
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if(CollectionUtils.isEmpty(includeTeacherIds)){
 | 
	
	
		
			
				|  | @@ -267,46 +280,58 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 | 
	
		
			
				|  |  |          SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
 | 
	
		
			
				|  |  |          Integer practiceCourseMinutes=practiceCourseMinutesConfig.getParanValue(Integer.class);
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  | +        if(now.before(applyStartDay)){
 | 
	
		
			
				|  |  | +            now=applyStartDay;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |          calendar.setTime(now);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  | -        calendar.add(Calendar.DATE,1);
 | 
	
		
			
				|  |  | -        Date applyStartDay = calendar.getTime();
 | 
	
		
			
				|  |  | -        calendar.add(Calendar.DATE,7);
 | 
	
		
			
				|  |  | -        Date applyEndDay = calendar.getTime();
 | 
	
		
			
				|  |  | -        List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeachersCoursesWithDateRange(teacherIds, applyStartDay, applyEndDay);
 | 
	
		
			
				|  |  |          List<Integer> includeTeacherIds=new ArrayList<>();
 | 
	
		
			
				|  |  | +        while (calendar.getTime().before(activityEndDate)){
 | 
	
		
			
				|  |  | +            calendar.add(Calendar.DATE,1);
 | 
	
		
			
				|  |  | +            Date applyStartDay = calendar.getTime();
 | 
	
		
			
				|  |  | +            calendar.add(Calendar.DATE,7);
 | 
	
		
			
				|  |  | +            Date applyEndDay = calendar.getTime();
 | 
	
		
			
				|  |  | +            if(applyEndDay.after(activityEndDate)){
 | 
	
		
			
				|  |  | +                applyEndDay=activityEndDate;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Date firstClassEndTime = DateUtil.addMinutes(practiceGroup.getFirstCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | -        Date secondClassEndTime = DateUtil.addMinutes(practiceGroup.getSecondCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | +            List<CourseSchedule> allTeacherCourses = courseScheduleDao.findTeachersCoursesWithDateRange(teacherIds, applyStartDay, applyEndDay);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
 | 
	
		
			
				|  |  | -        for (Integer teacherId : teacherIds) {
 | 
	
		
			
				|  |  | -            List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
 | 
	
		
			
				|  |  | -            if(CollectionUtils.isEmpty(teacherCourses)){
 | 
	
		
			
				|  |  | -                includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  | -                continue;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 | 
	
		
			
				|  |  | -            boolean enableCreateFirstCourse=true;
 | 
	
		
			
				|  |  | -            boolean enableCreateSecondCourse=true;
 | 
	
		
			
				|  |  | -            for (int i=0;i<teacherCourses.size()-1;i++) {
 | 
	
		
			
				|  |  | -                CourseSchedule preCourseSchedule = teacherCourses.get(i);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                if(practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | -                        &&firstClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | -                    enableCreateFirstCourse=false;
 | 
	
		
			
				|  |  | +            Date firstClassEndTime = DateUtil.addMinutes(practiceGroup.getFirstCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | +            Date secondClassEndTime = DateUtil.addMinutes(practiceGroup.getSecondCourseTime(), practiceCourseMinutes);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
 | 
	
		
			
				|  |  | +            for (Integer teacherId : teacherIds) {
 | 
	
		
			
				|  |  | +                List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
 | 
	
		
			
				|  |  | +                if(CollectionUtils.isEmpty(teacherCourses)){
 | 
	
		
			
				|  |  | +                    includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +                teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 | 
	
		
			
				|  |  | +                boolean enableCreateFirstCourse=true;
 | 
	
		
			
				|  |  | +                boolean enableCreateSecondCourse=true;
 | 
	
		
			
				|  |  | +                for (int i=0;i<teacherCourses.size()-1;i++) {
 | 
	
		
			
				|  |  | +                    CourseSchedule preCourseSchedule = teacherCourses.get(i);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if(practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | +                            &&firstClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | +                        enableCreateFirstCourse=false;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if(practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | -                        &&secondClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | -                    enableCreateSecondCourse=false;
 | 
	
		
			
				|  |  | +                    if(practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
 | 
	
		
			
				|  |  | +                            &&secondClassEndTime.after(preCourseSchedule.getStartClassTime())){
 | 
	
		
			
				|  |  | +                        enableCreateSecondCourse=false;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (enableCreateFirstCourse&&enableCreateSecondCourse){
 | 
	
		
			
				|  |  | +                    includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if (enableCreateFirstCourse&&enableCreateSecondCourse){
 | 
	
		
			
				|  |  | -                includeTeacherIds.add(teacherId);
 | 
	
		
			
				|  |  | +            if(!CollectionUtils.isEmpty(includeTeacherIds)){
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if(CollectionUtils.isEmpty(includeTeacherIds)){
 | 
	
	
		
			
				|  | @@ -365,19 +390,37 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 | 
	
		
			
				|  |  |              throw new BizException("未找到用户分部属性");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          Map result = new HashMap();
 | 
	
		
			
				|  |  | -        List<TeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject(sysUser.getOrganId(), subjectSubjectsMap.get(subjectId));
 | 
	
		
			
				|  |  | -        if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
 | 
	
		
			
				|  |  | -            result.put("teacherFreeDates",new ArrayList<>());
 | 
	
		
			
				|  |  | -            return result;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |          Set<Date> allTeacherFreeDates=new HashSet<>();
 | 
	
		
			
				|  |  |          SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
 | 
	
		
			
				|  |  |          Integer practiceCourseMinutes=practiceCourseMinutesConfig.getParanValue(Integer.class);
 | 
	
		
			
				|  |  | -        List<Integer> teacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        List<Integer> teacherIds=new ArrayList<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //如果是广州分部的,并且声部满足条件的需要特殊处理
 | 
	
		
			
				|  |  | +        if(sysUser.getOrganId().equals(GUANGZHOU_ORGAN_ID)&&GUANGZHOU_SUBJECTIDS.contains(subjectId)){
 | 
	
		
			
				|  |  | +            List<MusicGroup>  userMusicGroups=musicGroupDao.findUserMusicGroups(userId);
 | 
	
		
			
				|  |  | +            if(!CollectionUtils.isEmpty(userMusicGroups)){
 | 
	
		
			
				|  |  | +                Collections.shuffle(userMusicGroups);
 | 
	
		
			
				|  |  | +                Integer schoolId = userMusicGroups.get(0).getSchoolId();
 | 
	
		
			
				|  |  | +                if(schoolSubjectTeachersMap.containsKey(schoolId)){
 | 
	
		
			
				|  |  | +                    teacherIds = schoolSubjectTeachersMap.get(schoolId).get(subjectId);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(CollectionUtils.isEmpty(teacherIds)){
 | 
	
		
			
				|  |  | +            List<TeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject(sysUser.getOrganId(), subjectSubjectsMap.get(subjectId));
 | 
	
		
			
				|  |  | +            if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
 | 
	
		
			
				|  |  | +                result.put("teacherFreeDates",new ArrayList<>());
 | 
	
		
			
				|  |  | +                return result;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            teacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  | +        if(now.before(applyStartDay)){
 | 
	
		
			
				|  |  | +            now=applyStartDay;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |          calendar.setTime(now);
 | 
	
		
			
				|  |  | -        findTeacherFreeTimes:
 | 
	
		
			
				|  |  |          calendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.SECOND, 0);
 | 
	
	
		
			
				|  | @@ -457,6 +500,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 | 
	
		
			
				|  |  |          List<Date> result=new ArrayList<>();
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  | +        if(now.before(applyStartDay)){
 | 
	
		
			
				|  |  | +            now=applyStartDay;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          calendar.setTime(now);
 | 
	
		
			
				|  |  |          calendar.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  |          SysConfig practiceApplyStartTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_START_TIME);
 | 
	
	
		
			
				|  | @@ -497,15 +543,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
 | 
	
		
			
				|  |  |          Date now = new Date();
 | 
	
		
			
				|  |  | -        Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  | -        calendar.setTime(now);
 | 
	
		
			
				|  |  | -        calendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  | -        calendar.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  | -        calendar.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  | -        calendar.add(Calendar.DATE,1);
 | 
	
		
			
				|  |  | -        Date applyStartDay = calendar.getTime();
 | 
	
		
			
				|  |  | -        calendar.add(Calendar.DATE,8);
 | 
	
		
			
				|  |  | -        Date applyEndDay = calendar.getTime();
 | 
	
		
			
				|  |  |          if (practiceGroup.getFirstCourseTime().before(activityStartDate)
 | 
	
		
			
				|  |  |                  ||practiceGroup.getFirstCourseTime().after(activityEndDate)) {
 | 
	
		
			
				|  |  |              throw new BizException("预约时间超过范围");
 |