shangke 2 年 前
コミット
5fd8389ef1

+ 27 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -3571,13 +3571,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 							continueCourseTime = "5";
 						}
 
-						// 查询最新课程信息
-						CourseSchedule newCourseSchedule = courseScheduleDao.get(item.getId());
-						if (newCourseSchedule.getClassDate().getTime() > item.getClassDate().getTime()) {
-							newCourseSchedule = item;
-						}
-						// 直播课关联直播间编号
-						String liveRoomId = getCourseScheduleLiveRoomId(newCourseSchedule, continueCourseTime, Lists.newArrayList(), Lists.newArrayList());
+					// 查询最新课程信息
+					CourseSchedule newCourseSchedule = courseScheduleDao.get(item.getId());
+					// 连堂课更新标识
+					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(), updateFlag);
 
 						if (StringUtils.isBlank(liveRoomId)) {
 							liveRoomId = item.getLiveRoomId();
@@ -6391,7 +6399,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());
@@ -6443,7 +6451,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());
@@ -6544,8 +6553,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()
@@ -6556,6 +6567,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)) {

+ 18 - 4
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -190,10 +190,24 @@ public class CourseScheduleController extends BaseController {
                     &&!VipGroupStatusEnum.FINISHED.equals(vipGroup.getStatus())){
                 throw new BizException("非进行中课程组不允许进行此操作");
             }
-            //校验调整时间
-            courseScheduleService.checkLiveAdjust(oldCourseSchedule,null);
-            //重置连堂课标记
-            courseScheduleService.resetLiveRemind(courseSchedule);
+
+            // 直播课
+            if (GroupType.LIVE.equals(oldCourseSchedule.getGroupType())){
+                if(org.apache.commons.lang3.StringUtils.isNotBlank(oldCourseSchedule.getLiveRoomId())){
+                    // 重置连堂课,关联直播间,消息推送状态
+                    courseSchedule.setLiveRemind(0);
+                    courseSchedule.setContinuousCourse(false);
+                    courseSchedule.setLiveRoomId("");
+                }
+                String startRemindTime = sysConfigDao.findConfigValue("live_class_start_remind_time");
+                if(StringUtils.isEmpty(startRemindTime)){
+                    startRemindTime = "30";
+                }
+                if(DateUtil.minutesBetween(new Date(),oldCourseSchedule.getStartClassTime()) < Integer.parseInt(startRemindTime)
+                 && DateUtil.minutesBetween(new Date(),oldCourseSchedule.getEndClassTime()) >= 0){
+                    throw new BizException("直播课课程开始前{}分钟不允许调整",startRemindTime);
+                }
+            }
         }
         if(Objects.isNull(courseSchedule.getClassGroupId())){
             courseSchedule.setClassGroupId(oldCourseSchedule.getClassGroupId());