zouxuan 2 роки тому
батько
коміт
f93a1da049

+ 37 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -3576,8 +3576,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						if (newCourseSchedule.getClassDate().getTime() > item.getClassDate().getTime()) {
 							newCourseSchedule = item;
 						}
+						// 连堂课更新标识
+						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();
@@ -6171,18 +6181,38 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		ExecutorService executor = Executors.newCachedThreadPool();
 		CompletableFuture.runAsync(() ->
 				courseSchedules.parallelStream().filter(e->e.getGroupType() == LIVE).forEach(item -> {
+
 					// 是否是连堂课
 					String continueCourseTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME, item.getTenantId());
 					if (StringUtils.isEmpty(continueCourseTime)) {
 						continueCourseTime = "5";
 					}
 
+					// 查询最新课程信息
+					CourseSchedule newCourseSchedule = courseScheduleDao.get(item.getId());
+					if (newCourseSchedule.getClassDate().getTime() > item.getClassDate().getTime()) {
+						newCourseSchedule = item;
+					}
+					// 连堂课更新标识
+					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;
 					}
 
@@ -6191,8 +6221,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);
 
 						// 发送用户信息
@@ -6206,8 +6236,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
 		);
@@ -6564,8 +6595,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				} catch (Exception e) {
 					log.error("getLiveCourseScheduleTime courseScheduleIds={}", collect, e);
 				}
-
-			});
 			// 连堂课直播间编号
 			liveRoomId = finalCourseSchedule.getLiveRoomId();
 		} else {