|
@@ -6424,17 +6424,73 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
// 课程连堂状态
|
|
|
if (beforeCourse.get(beforeCourse.size() - 1).getContinuousCourse()) {
|
|
|
- List<CourseSchedule> collect = beforeCourse.stream()
|
|
|
+
|
|
|
+ // 倒序排序
|
|
|
+ beforeCourse = beforeCourse.stream()
|
|
|
+ .sorted(Comparator.comparing(CourseSchedule::getStartClassTime).reversed())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (int i = 0; i < beforeCourse.size(); i++) {
|
|
|
+ CourseSchedule current = beforeCourse.get(i);
|
|
|
+ if (current.getContinuousCourse()) {
|
|
|
+ newCourseSchedules.add(current);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (i + 1 < beforeCourse.size()) {
|
|
|
+ CourseSchedule next = beforeCourse.get(i + 1);
|
|
|
+
|
|
|
+ if (!next.getContinuousCourse()) {
|
|
|
+ newCourseSchedules.add(next);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 正序排序
|
|
|
+ beforeCourse = beforeCourse.stream()
|
|
|
+ .sorted(Comparator.comparing(CourseSchedule::getStartClassTime))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ /*for (int i = beforeCourse.size() - 1; i >= 0 ; i--) {
|
|
|
+ CourseSchedule current = beforeCourse.get(i);
|
|
|
+ CourseSchedule next = null;
|
|
|
+ if ((i - 1) >= 0) {
|
|
|
+ next = beforeCourse.get(i - 1);
|
|
|
+ }
|
|
|
+ if (next != null && current.getContinuousCourse() && next.getContinuousCourse()) {
|
|
|
+ newCourseSchedules.addAll(Lists.newArrayList(current, next));
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+
|
|
|
+ /*List<CourseSchedule> collect = beforeCourse.stream()
|
|
|
.filter(CourseSchedule::getContinuousCourse)
|
|
|
.collect(Collectors.toList());
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
newCourseSchedules.addAll(collect);
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
// 课程后连堂状态
|
|
|
updateContinuousCourseStatus(continueCourseTime, afterCourse);
|
|
|
if (afterCourse.get(0).getContinuousCourse()) {
|
|
|
+
|
|
|
+ for (int i = 0; i < afterCourse.size(); i++) {
|
|
|
+ CourseSchedule current = afterCourse.get(i);
|
|
|
+ if (current.getContinuousCourse()) {
|
|
|
+ newCourseSchedules.add(current);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (i + 1 < afterCourse.size()) {
|
|
|
+ CourseSchedule next = afterCourse.get(i + 1);
|
|
|
+
|
|
|
+ if (!next.getContinuousCourse()) {
|
|
|
+ newCourseSchedules.add(next);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
List<CourseSchedule> collect = afterCourse.stream()
|
|
|
.filter(CourseSchedule::getContinuousCourse)
|
|
|
.collect(Collectors.toList());
|
|
@@ -6445,11 +6501,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
} else {
|
|
|
newCourseSchedules.addAll(collect.subList(1, collect.size()));
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(newCourseSchedules)) {
|
|
|
|
|
|
+ // newCourseSchedules集合去重
|
|
|
+ newCourseSchedules = newCourseSchedules.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CourseSchedule::getId))), ArrayList::new));
|
|
|
+
|
|
|
+ // 课程按开始时间排序
|
|
|
+ newCourseSchedules = newCourseSchedules.stream()
|
|
|
+ .sorted(Comparator.comparing(CourseSchedule::getStartClassTime))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
// 连党课程信息
|
|
|
for (CourseSchedule item : newCourseSchedules) {
|
|
|
courseScheduleTimes.add(CourseScheduleWrapper.CourseScheduleTime.builder()
|
|
@@ -6487,6 +6552,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
int size = beforeCourse.size();
|
|
|
collect = beforeCourse.subList(size - 2, size).stream()
|
|
|
+ .filter(o -> CourseStatusEnum.NOT_START.equals(o.getStatus()))
|
|
|
.map(CourseSchedule::getId)
|
|
|
.distinct().collect(Collectors.toList());
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
@@ -6497,9 +6563,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
// 课程后连堂状态
|
|
|
if (afterCourse.get(0).getContinuousCourse()) {
|
|
|
- collect = afterCourse.subList(1, afterCourse.size()).stream()
|
|
|
- .map(CourseSchedule::getId)
|
|
|
- .distinct().collect(Collectors.toList());
|
|
|
+ collect = afterCourse.stream()
|
|
|
+ .filter(o -> CourseStatusEnum.NOT_START.equals(o.getStatus()))
|
|
|
+ .map(CourseSchedule::getId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
// 关联直播间编号
|
|
@@ -6519,6 +6585,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
} catch (Exception e) {
|
|
|
log.error("getLiveCourseScheduleTime courseScheduleIds={}", collect, e);
|
|
|
}
|
|
|
+
|
|
|
// 连堂课直播间编号
|
|
|
liveRoomId = finalCourseSchedule.getLiveRoomId();
|
|
|
} else {
|
|
@@ -6559,11 +6626,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
endTime = getDateTime(next.getClassDate(), next.getStartClassTime());
|
|
|
// 如果当前课程结束时间和下一节课开始时间间隔小于5分钟,那么合并时间(修复代码合并)
|
|
|
if ((startTime.isBefore(endTime) || startTime.isEqual(endTime))
|
|
|
- && startTime.plusMinutes(Integer.parseInt(continueCourseTime) + 1).isAfter(endTime)) {
|
|
|
+ && startTime.plusSeconds(Integer.parseInt(continueCourseTime) * 60 + 10).isAfter(endTime)) {
|
|
|
// 上节连堂状态
|
|
|
current.setContinuousCourse(true);
|
|
|
// 下节连堂状态
|
|
|
next.setContinuousCourse(true);
|
|
|
+ } else {
|
|
|
+ current.setContinuousCourse(false);
|
|
|
}
|
|
|
}
|
|
|
}
|