|
@@ -503,12 +503,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
|
|
|
Map<String, List<CourseTimeEntity>> nowCourseMap = getAllPracticeCourseTime(teacherId, studentId, firstDay.toString(), lastDay.toString());
|
|
|
//和生成的日历对比,筛选出空余的课程时间
|
|
|
opsNewCourseCalendarData(nowCourseMap, courseCalendarEntities, Boolean.TRUE.equals(teacherTime.getSkipHolidayFlag()) ? 1 : 0 ,
|
|
|
- teacherSubjectPrice.getCourseMinutes()+teacherSubjectPrice.getFreeMinutes());
|
|
|
+ teacherSubjectPrice.getCourseMinutes(),teacherSubjectPrice.getFreeMinutes());
|
|
|
return courseCalendarEntities;
|
|
|
}
|
|
|
|
|
|
private void opsNewCourseCalendarData(Map<String, List<CourseTimeEntity>> nowCourseMap, List<CourseCalendarEntity> courseCalendarEntities,
|
|
|
- Integer skipHoliday,Integer courseMinutes) {
|
|
|
+ Integer skipHoliday,Integer courseMinutes,Integer freeMinutes) {
|
|
|
//储存节假日数据,避免重复查询
|
|
|
Map<Integer, List<String>> holidayMap = new HashMap<>();
|
|
|
courseCalendarEntities.forEach(calendarEntity -> {
|
|
@@ -534,7 +534,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
|
|
|
}
|
|
|
|
|
|
// 检查时间段是否满足课程时间,不满足则删除,满足 并且可多段的情况下,将时间段拆分
|
|
|
- courseTime = splitTime(courseTime,courseMinutes);
|
|
|
+ courseTime = splitTime(courseTime,courseMinutes,freeMinutes);
|
|
|
calendarEntity.setCourseTime(courseTime);
|
|
|
|
|
|
//如果日历时间集合数据删没了,那么就证明当天课程已经满了 0:未满 1满
|
|
@@ -569,19 +569,20 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
|
|
|
}
|
|
|
|
|
|
// 检查时间段是否满足课程时间,不满足则删除,满足 并且可多段的情况下,将时间段拆分
|
|
|
- private List<CourseTimeEntity> splitTime(List<CourseTimeEntity> courseTime, Integer courseMinutes) {
|
|
|
+ private List<CourseTimeEntity> splitTime(List<CourseTimeEntity> courseTime, Integer courseMinutes,Integer freeMinutes) {
|
|
|
+ Integer mergeMinutes = courseMinutes + freeMinutes;
|
|
|
List<CourseTimeEntity> result = new ArrayList<>();
|
|
|
for (CourseTimeEntity courseTimeEntity : courseTime) {
|
|
|
- if (courseTimeEntity.getEndTime().getTime() - courseTimeEntity.getStartTime().getTime() >= courseMinutes * 60 * 1000) {
|
|
|
+ if (courseTimeEntity.getEndTime().getTime() - courseTimeEntity.getStartTime().getTime() >= mergeMinutes * 60 * 1000) {
|
|
|
long time = courseTimeEntity.getEndTime().getTime() - courseTimeEntity.getStartTime().getTime();
|
|
|
long startTime = courseTimeEntity.getStartTime().getTime();
|
|
|
- while (time >= courseMinutes * 60 * 1000) {
|
|
|
+ while (time >= mergeMinutes * 60 * 1000) {
|
|
|
CourseTimeEntity entity = new CourseTimeEntity();
|
|
|
entity.setStartTime(new Date(startTime));
|
|
|
entity.setEndTime(new Date(startTime + courseMinutes * 60 * 1000));
|
|
|
result.add(entity);
|
|
|
- startTime = startTime + courseMinutes * 60 * 1000;
|
|
|
- time = time - courseMinutes * 60 * 1000;
|
|
|
+ startTime = startTime + mergeMinutes * 60 * 1000;
|
|
|
+ time = time - mergeMinutes * 60 * 1000;
|
|
|
}
|
|
|
}
|
|
|
}
|