Bladeren bron

Merge remote-tracking branch 'origin/master_saas' into master_saas

zouxuan 2 jaren geleden
bovenliggende
commit
40a3feb208
1 gewijzigde bestanden met toevoegingen van 61 en 1 verwijderingen
  1. 61 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

+ 61 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -3557,7 +3557,67 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			e.printStackTrace();
 		}
 		// 直播课消息推送
-		this.sendChatRoomMessage(liveCourseSchedules);
+		// this.sendChatRoomMessage(liveCourseSchedules);
+
+		if (CollectionUtils.isNotEmpty(liveCourseSchedules)) {
+
+			CompletableFuture.runAsync(() ->
+
+					liveCourseSchedules.parallelStream().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;
+						}
+						// 直播课关联直播间编号
+						String liveRoomId = getCourseScheduleLiveRoomId(newCourseSchedule, continueCourseTime, Lists.newArrayList(), Lists.newArrayList());
+
+						if (StringUtils.isBlank(liveRoomId)) {
+							liveRoomId = item.getLiveRoomId();
+						}
+
+						ImLiveBroadcastRoom liveRoom = imLiveBroadcastRoomService.getByRoomUid(liveRoomId);
+						if (Objects.isNull(liveRoom)) {
+							log.warn("liveRoom sendChatRoomMessage is null, liveRoomId:{}", liveRoomId);
+							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);
+						}
+					})
+			);
+
+		}
+
 		return BaseController.succeed();
     }