shangke 2 years ago
parent
commit
b8b792201d

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

@@ -6114,69 +6114,82 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	public void sendChatRoomMessage(List<CourseSchedule> courseSchedules) {
-		// 直播课消息推送
-		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());
-				// 连堂课更新标识
-				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;
-				}
+		List<CourseSchedule> collect = courseSchedules.stream()
+				.filter(x -> x.getGroupType() == LIVE).collect(Collectors.toList());
 
-				// 直播课关联直播间编号
-				String liveRoomId = getCourseScheduleLiveRoomId(newCourseSchedule, continueCourseTime, Lists.newArrayList(), Lists.newArrayList(), updateFlag);
+		for (CourseSchedule item : collect) {
 
-				if (StringUtils.isBlank(liveRoomId)) {
-					liveRoomId = item.getLiveRoomId();
-				}
+			// 是否是连堂课
+			String continueCourseTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME, item.getTenantId());
+			if (StringUtils.isEmpty(continueCourseTime)) {
+				continueCourseTime = "5";
+			}
 
-				ImLiveBroadcastRoom liveRoom = imLiveBroadcastRoomService.getByRoomUid(liveRoomId);
-				if (Objects.isNull(liveRoom)) {
-					log.warn("liveRoom sendChatRoomMessage is null, liveRoomId:{}", liveRoomId);
-					return;
-				}
+			// 查询最新课程信息
+			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;
+			}
 
-				try {
-					LivePluginService pluginService = livePluginContext.getPluginService(liveRoom.getServiceProvider());
-
-					LiveRoomMessage message = new LiveRoomMessage();
-					message.setIsIncludeSender(1);
-					message.setFromUserId(newCourseSchedule.getActualTeacherId().toString());
-					message.setToChatRoomId(liveRoom.getRoomUid());
-					message.setObjectName(LiveRoomMessage.LIVE_STATUS_CHANGE);
-
-					// 发送用户信息
-					LiveRoomMessage.MessageUser messageUser = LiveRoomMessage.MessageUser.builder()
-							.sendUserId("")
-							.sendUserName("")
-							.avatarUrl("")
-							.build();
-
-					message.setContent(LiveRoomMessage.MessageContent.builder()
-							.sendUserInfo(messageUser).build());
-
-					pluginService.sendChatRoomMessage(message);
-					log.info("liveRoom sendChatRoomMessage success, liveRoomId:{}", liveRoomId);
-				} catch (Exception e) {
-					log.error("liveRoom sendChatRoomMessage error", e);
+			// 直播课关联直播间编号
+			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 sendChatRoomMessage is null, liveRoomId:{}", liveRoomId);
+				if (!updateFlag) {
+					throw new BizException("课程信息已变更,请重新操作");
 				}
+				return;
+			}
+
+			try {
+				LivePluginService pluginService = livePluginContext.getPluginService(liveRoom.getServiceProvider());
+
+				LiveRoomMessage message = new LiveRoomMessage();
+				message.setIsIncludeSender(1);
+				message.setFromUserId(newCourseSchedule.getActualTeacherId().toString());
+				message.setToChatRoomId(liveRoom.getRoomUid());
+				message.setObjectName(LiveRoomMessage.LIVE_STATUS_CHANGE);
+
+				// 发送用户信息
+				LiveRoomMessage.MessageUser messageUser = LiveRoomMessage.MessageUser.builder()
+						.sendUserId("")
+						.sendUserName("")
+						.avatarUrl("")
+						.build();
+
+				message.setContent(LiveRoomMessage.MessageContent.builder()
+						.sendUserInfo(messageUser).build());
+
+				pluginService.sendChatRoomMessage(message);
+				log.info("liveRoom sendChatRoomMessage success, liveRoomId:{}", liveRoomId);
+			} catch (Exception e) {
+				log.error("liveRoom sendChatRoomMessage error", e);
+			}
+
+		}
+
+		// 直播课消息推送
+		/*ExecutorService executor = Executors.newCachedThreadPool();
+		CompletableFuture.runAsync(() ->
+			courseSchedules.parallelStream().filter(e->e.getGroupType() == LIVE).forEach(item -> {
+
 			}),executor
 		);
-		executor.shutdown();
+		executor.shutdown();*/
 	}
 
 	@Override