shangke 2 éve
szülő
commit
0cc9291160

+ 68 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -6397,17 +6397,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());
@@ -6418,11 +6474,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				} else {
 					newCourseSchedules.addAll(collect.subList(1, collect.size()));
 				}
-			}
+			}*/
 		}
 
 		if (CollectionUtils.isNotEmpty(newCourseSchedules)) {
 
+			// 课程按开始时间排序
+			newCourseSchedules = newCourseSchedules.stream()
+					.sorted(Comparator.comparing(CourseSchedule::getStartClassTime))
+					.collect(Collectors.toList());
+
 			// 连党课程信息
 			for (CourseSchedule item : newCourseSchedules) {
 				courseScheduleTimes.add(CourseScheduleWrapper.CourseScheduleTime.builder()
@@ -6470,9 +6531,7 @@ 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().map(CourseSchedule::getId).distinct().collect(Collectors.toList());
 
 						if (CollectionUtils.isNotEmpty(collect)) {
 							// 关联直播间编号
@@ -6492,6 +6551,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			} catch (Exception e) {
 				log.error("getLiveCourseScheduleTime courseScheduleIds={}", collect, e);
 			}
+
 			// 连堂课直播间编号
 			liveRoomId = finalCourseSchedule.getLiveRoomId();
 		} else {
@@ -6537,6 +6597,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					current.setContinuousCourse(true);
 					// 下节连堂状态
 					next.setContinuousCourse(true);
+				} else {
+					current.setContinuousCourse(false);
 				}
 			}
 		}