zouxuan 2 年之前
父節點
當前提交
2384e3e121
共有 1 個文件被更改,包括 25 次插入9 次删除
  1. 25 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

+ 25 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -2347,9 +2347,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		this.checkOnlineCategory(courseSchedules,vipGroupCourseAdjustInfo.getTeachMode());
 		//重置连堂课标记
 		this.resetLiveRemind(courseSchedules);
-		List<CourseSchedule> liveCourseSchedules = Lists.newArrayList();
 		//拷贝历史直播课
-		Collections.copy(liveCourseSchedules,courseSchedules);
+		List<CourseSchedule> liveCourseSchedules = Lists.newArrayList(courseSchedules);
         courseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 		//获取操作日志
 		List<CourseScheduleModifyLog> modifyLogs = getModifyLogs(courseScheduleIds, courseSchedules, user.getId(), now);
@@ -3058,8 +3057,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		Map<Long, CourseSchedule> oldCourseScheduleMap = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId, c -> c));
 
-		List<CourseSchedule> liveCourseSchedules = Lists.newArrayList();
-		Collections.copy(liveCourseSchedules,oldCourseScheduleList);
+		List<CourseSchedule> liveCourseSchedules = Lists.newArrayList(courseSchedules);
         for(CourseSchedule newCourseSchedule : newCourseSchedules){
 
         	//获取数据库中的记录
@@ -6094,12 +6092,29 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					continueCourseTime = "5";
 				}
 
+				// 查询最新课程信息
+				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(item, continueCourseTime, Lists.newArrayList(), Lists.newArrayList());
+				String liveRoomId = getCourseScheduleLiveRoomId(newCourseSchedule, continueCourseTime, Lists.newArrayList(), Lists.newArrayList(), updateFlag);
+
+				if (StringUtils.isBlank(liveRoomId)) {
+					liveRoomId = item.getLiveRoomId();
+				}
 
 				ImLiveBroadcastRoom liveRoom = imLiveBroadcastRoomService.getByRoomUid(liveRoomId);
 				if (Objects.isNull(liveRoom)) {
-					log.warn("liveRoom is null, liveRoomId:{}", item.getLiveRoomId());
+					log.warn("liveRoom sendChatRoomMessage is null, liveRoomId:{}", liveRoomId);
 					return;
 				}
 
@@ -6108,8 +6123,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 					LiveRoomMessage message = new LiveRoomMessage();
 					message.setIsIncludeSender(1);
-					message.setFromUserId(item.getActualTeacherId().toString());
-					message.setToChatRoomId(item.getLiveRoomId());
+					message.setFromUserId(newCourseSchedule.getActualTeacherId().toString());
+					message.setToChatRoomId(liveRoom.getRoomUid());
 					message.setObjectName(LiveRoomMessage.LIVE_STATUS_CHANGE);
 
 					// 发送用户信息
@@ -6123,8 +6138,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 							.sendUserInfo(messageUser).build());
 
 					pluginService.sendChatRoomMessage(message);
+					log.info("liveRoom sendChatRoomMessage success, liveRoomId:{}", liveRoomId);
 				} catch (Exception e) {
-					log.error("liveRoom error", e);
+					log.error("liveRoom sendChatRoomMessage error", e);
 				}
 			}),executor
 		);