shangke 1 年之前
父节点
当前提交
877208f522

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

@@ -3572,11 +3572,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 					// 查询最新课程信息
 					CourseSchedule newCourseSchedule = courseScheduleDao.get(item.getId());
-					if (newCourseSchedule.getClassDate().getTime() > item.getClassDate().getTime()) {
+					// 连堂课更新标识
+					boolean updateFlag = true;
+					// 新课时间
+					Date newCourseScheduleDate = getDateTime(newCourseSchedule.getClassDate(), newCourseSchedule.getStartClassTime()).toDate();
+					Date oldCourseScheduleDate = getDateTime(item.getClassDate(), item.getStartClassTime()).toDate();
+					if (newCourseScheduleDate.getTime() > oldCourseScheduleDate.getTime()) {
 						newCourseSchedule = item;
+						// 更新标识
+						updateFlag = false;
 					}
+
 					// 直播课关联直播间编号
-					String liveRoomId = getCourseScheduleLiveRoomId(newCourseSchedule, continueCourseTime, Lists.newArrayList(), Lists.newArrayList());
+					String liveRoomId = getCourseScheduleLiveRoomId(newCourseSchedule, continueCourseTime, Lists.newArrayList(), Lists.newArrayList(), updateFlag);
 
 					if (StringUtils.isBlank(liveRoomId)) {
 						liveRoomId = item.getLiveRoomId();
@@ -6281,7 +6289,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		// 课程时间长计算
 		List<CourseScheduleWrapper.CourseScheduleTime> courseScheduleTimes = Lists.newArrayList();
 		// 直播课关联直播间编号
-		String liveRoomId = getCourseScheduleLiveRoomId(courseSchedule, continueCourseTime, newCourseSchedules, courseScheduleTimes);
+		String liveRoomId = getCourseScheduleLiveRoomId(courseSchedule, continueCourseTime, newCourseSchedules, courseScheduleTimes, true);
 
 		// 定时任务更新课程状态为进行中,判断当前课程状态是否匹配
 		/*int studentRemindTime = Integer.parseInt(sysConfigService.findByParamName(SysConfigService.LIVE_CLASS_START_REMIND_TIME).getParanValue());
@@ -6333,7 +6341,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private String getCourseScheduleLiveRoomId(CourseSchedule courseSchedule,
 											   String continueCourseTime,
 											   List<CourseSchedule> newCourseSchedules,
-											   List<CourseScheduleWrapper.CourseScheduleTime> courseScheduleTimes) {
+											   List<CourseScheduleWrapper.CourseScheduleTime> courseScheduleTimes,
+											   Boolean updateFlag) {
 		String liveRoomId;
 		// 课程开始时间
 		courseSchedule.setStartClassTime(getDateTime(courseSchedule.getClassDate(), courseSchedule.getStartClassTime()).toDate());
@@ -6434,8 +6443,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						.distinct().collect(Collectors.toList());
 				try {
 
-					// 关联直播间编号
-					courseScheduleDao.batchUpdateLiveRoomId(collect, finalCourseSchedule.getLiveRoomId());
+					if (Optional.ofNullable(updateFlag).orElse(true)) {
+						// 关联直播间编号
+						courseScheduleDao.batchUpdateLiveRoomId(collect, finalCourseSchedule.getLiveRoomId());
+					}
 
 					if (CollectionUtils.size(collect) > 1) {
 						collect = newCourseSchedules.subList(0, newCourseSchedules.size() - 1).stream()
@@ -6446,6 +6457,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						courseScheduleDao.batchUpdateContinuousCourse(collect, true);
 					}
 
+					if (!Optional.ofNullable(updateFlag).orElse(true)) {
+						// 更新连堂课状态
+						courseScheduleDao.batchUpdateContinuousCourse(Lists.newArrayList(courseSchedule.getId()), false);
+					}
+
 					// 更新连堂课状态,最后一节课重置
 					CourseSchedule lastCourseSchedule = newCourseSchedules.get(newCourseSchedules.size() - 1);
 					if (Objects.nonNull(lastCourseSchedule)) {

+ 1 - 2
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -205,8 +205,7 @@ public class CourseScheduleController extends BaseController {
                 }
                 if(DateUtil.minutesBetween(new Date(),oldCourseSchedule.getStartClassTime()) < Integer.parseInt(startRemindTime)
                  && DateUtil.minutesBetween(new Date(),oldCourseSchedule.getEndClassTime()) >= 0){
-                    // FIXME: 测试环境暂时注释
-                    // throw new BizException("直播课课程开始前{}分钟不允许调整",startRemindTime);
+                    throw new BizException("直播课课程开始前{}分钟不允许调整",startRemindTime);
                 }
             }
         }