|
@@ -107,45 +107,32 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
Date secondClassEndTime = DateUtil.addMinutes(practiceGroup.getSecondCourseTime(), practiceCourseMinutes);
|
|
|
|
|
|
Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
|
|
|
- for (Map.Entry<Integer, List<CourseSchedule>> integerListEntry : teacherCoursesMap.entrySet()) {
|
|
|
- List<CourseSchedule> teacherCourses = integerListEntry.getValue();
|
|
|
+ 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=false;
|
|
|
- boolean enableCreateSecondCourse=false;
|
|
|
+ boolean enableCreateFirstCourse=true;
|
|
|
+ boolean enableCreateSecondCourse=true;
|
|
|
for (int i=0;i<teacherCourses.size()-1;i++) {
|
|
|
CourseSchedule preCourseSchedule = teacherCourses.get(i);
|
|
|
CourseSchedule backCourseSchedule = teacherCourses.get(i+1);
|
|
|
- if(i==0){
|
|
|
- if (!firstClassEndTime.after(preCourseSchedule.getStartClassTime())){
|
|
|
- enableCreateFirstCourse=true;
|
|
|
- }
|
|
|
- if (!secondClassEndTime.after(preCourseSchedule.getStartClassTime())){
|
|
|
- enableCreateSecondCourse=true;
|
|
|
- }
|
|
|
- }
|
|
|
- if (i==teacherCourses.size()-1){
|
|
|
- if(!practiceGroup.getFirstCourseTime().before(backCourseSchedule.getEndClassTime())){
|
|
|
- enableCreateFirstCourse=true;
|
|
|
- }
|
|
|
- if(!practiceGroup.getSecondCourseTime().before(backCourseSchedule.getEndClassTime())){
|
|
|
- enableCreateSecondCourse=true;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- if(!practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
|
|
|
- &&!firstClassEndTime.after(backCourseSchedule.getStartClassTime())){
|
|
|
- enableCreateFirstCourse=true;
|
|
|
+ if(practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
|
|
|
+ &&firstClassEndTime.after(backCourseSchedule.getStartClassTime())){
|
|
|
+ enableCreateFirstCourse=false;
|
|
|
}
|
|
|
|
|
|
- if(!practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
|
|
|
- &&!secondClassEndTime.after(backCourseSchedule.getStartClassTime())){
|
|
|
- enableCreateFirstCourse=true;
|
|
|
- }
|
|
|
- if (enableCreateFirstCourse&&enableCreateSecondCourse){
|
|
|
- includeTeacherIds.add(integerListEntry.getKey());
|
|
|
- break;
|
|
|
+ if(practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
|
|
|
+ &&secondClassEndTime.after(backCourseSchedule.getStartClassTime())){
|
|
|
+ enableCreateSecondCourse=false;
|
|
|
}
|
|
|
}
|
|
|
+ if (enableCreateFirstCourse&&enableCreateSecondCourse){
|
|
|
+ includeTeacherIds.add(teacherId);
|
|
|
+ }
|
|
|
}
|
|
|
if(CollectionUtils.isEmpty(includeTeacherIds)){
|
|
|
throw new BizException("未找到符合条件的教师");
|
|
@@ -166,12 +153,17 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<Map<Integer, Integer>> teacherCourseNumMaps = courseScheduleTeacherSalaryDao.countTeacherCourses(teacherIds, GroupType.PRACTICE);
|
|
|
- Map<Integer,Integer> teacherCourseNumMap=MapUtil.convertIntegerMap(teacherCourseNumMaps);
|
|
|
- Map<Integer,Integer> temp=new HashMap<>();
|
|
|
+ List<Map<Integer, Integer>> teacherCourseNumMaps = courseScheduleTeacherSalaryDao.countTeacherCourses(includeTeacherIds, GroupType.PRACTICE);
|
|
|
+ HashMap<Integer,Integer> teacherCourseNumMap= (HashMap<Integer, Integer>) MapUtil.convertIntegerMap(teacherCourseNumMaps);
|
|
|
+ for (Integer includeTeacherId : includeTeacherIds) {
|
|
|
+ if(!teacherCourseNumMap.containsKey(includeTeacherId)){
|
|
|
+ teacherCourseNumMap.put(includeTeacherId,0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Integer> temp=new ArrayList<>();
|
|
|
teacherCourseNumMap.entrySet().stream()
|
|
|
- .sorted()
|
|
|
- .forEach(result->temp.put(result.getKey(),result.getValue()));
|
|
|
+ .sorted((r1,r2)->r1.getValue().compareTo(r2.getValue()))
|
|
|
+ .forEach(result->temp.add(result.getKey()));
|
|
|
return temp.get(0);
|
|
|
}
|
|
|
|
|
@@ -243,11 +235,15 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}
|
|
|
Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
|
|
|
Set<Date> allTeacherFreeDates=new HashSet<>();
|
|
|
- for (Map.Entry<Integer, List<CourseSchedule>> integerListEntry : teacherCoursesMap.entrySet()) {
|
|
|
- if(excludeTeacherIds.contains(integerListEntry.getKey())){
|
|
|
+ for (Integer teacherId : teacherIds) {
|
|
|
+ if(excludeTeacherIds.contains(teacherId)){
|
|
|
continue;
|
|
|
}
|
|
|
- List<CourseSchedule> teacherCourses = integerListEntry.getValue();
|
|
|
+ List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
|
|
|
+ if(CollectionUtils.isEmpty(teacherCourses)){
|
|
|
+ allTeacherFreeDates=new HashSet<>(enableApplyDates);
|
|
|
+ break;
|
|
|
+ }
|
|
|
teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
|
|
|
for (int i=0;i<teacherCourses.size()-1;i++) {
|
|
|
CourseSchedule preCourseSchedule = teacherCourses.get(i);
|
|
@@ -270,12 +266,15 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
for (Date enableApplyDate : enableApplyDates) {
|
|
|
Date enableApplyDateCourseEndTime = DateUtil.addMinutes(enableApplyDate, practiceCourseMinutes);
|
|
|
if(!enableApplyDate.before(preCourseSchedule.getEndClassTime())
|
|
|
- &&!enableApplyDateCourseEndTime.after(backCourseSchedule.getStartClassTime())){
|
|
|
+ &&!enableApplyDateCourseEndTime.after(backCourseSchedule.getStartClassTime())){
|
|
|
allTeacherFreeDates.add(enableApplyDate);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ for (Map.Entry<Integer, List<CourseSchedule>> integerListEntry : teacherCoursesMap.entrySet()) {
|
|
|
+
|
|
|
+ }
|
|
|
result.put("teacherFreeDates",allTeacherFreeDates);
|
|
|
return result;
|
|
|
}
|
|
@@ -353,14 +352,11 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
allCourseDates.sort(Comparator.comparing(Date::getTime));
|
|
|
|
|
|
Integer applyTimes = 0;
|
|
|
- List<PracticeGroup> userPracticeCoursesWithDateRange = practiceGroupDao.getUserPracticeApplyRecord(practiceGroup.getStudentId());
|
|
|
- if (!CollectionUtils.isEmpty(userPracticeCoursesWithDateRange)) {
|
|
|
- applyTimes = userPracticeCoursesWithDateRange.size();
|
|
|
- }
|
|
|
+ applyTimes = practiceGroupDao.countUserPracticeApplyRecord(practiceGroup.getStudentId());
|
|
|
|
|
|
-// if (applyTimes >= 1) {
|
|
|
-// throw new BizException("您的预约次数已经达到限制");
|
|
|
-// }
|
|
|
+ if (applyTimes >= 1) {
|
|
|
+ throw new BizException("您的预约次数已经达到限制");
|
|
|
+ }
|
|
|
applyTimes += 1;
|
|
|
|
|
|
practiceGroup.setCoursesStartDate(allCourseDates.get(0));
|
|
@@ -434,7 +430,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
classGroupStudentMapper.setGroupType(GroupType.PRACTICE);
|
|
|
classGroupStudentMapperDao.insert(classGroupStudentMapper);
|
|
|
|
|
|
- List<CourseSchedule> courseSchedules=new ArrayList<>();
|
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries=new ArrayList<>();
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
|
|
|
List<TeacherAttendance> teacherAttendances=new ArrayList<>();
|
|
@@ -456,7 +451,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.PRACTICE);
|
|
|
courseSchedule.setGroupType(GroupType.PRACTICE);
|
|
|
courseSchedule.setName(practiceGroup.getName());
|
|
|
- courseSchedules.add(courseSchedule);
|
|
|
+ courseScheduleDao.insert(courseSchedule);
|
|
|
|
|
|
//课程与老师薪水表
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
@@ -493,8 +488,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
teacherAttendance.setCreateTime(now);
|
|
|
teacherAttendances.add(teacherAttendance);
|
|
|
}
|
|
|
-
|
|
|
- courseScheduleDao.batchAddCourseSchedules(courseSchedules);
|
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|