|
@@ -187,10 +187,14 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
Teacher teacher = teacherDao.get(Integer.parseInt(userId));
|
|
|
CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
|
|
|
+ if (Objects.isNull(courseSchedule)) {
|
|
|
+ return new BaseResponse(ErrorEnum.ERR_ROOM_NOT_EXIST, ErrorEnum.ERR_ROOM_NOT_EXIST.getErrMsg(), null);
|
|
|
+ }
|
|
|
if (courseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
return new BaseResponse(ErrorEnum.JOIN_ROOM_ERROR, ErrorEnum.JOIN_ROOM_ERROR.getErrMsg(), null);
|
|
|
}
|
|
|
-
|
|
|
+ // 获取RTC服务提供方
|
|
|
+ updateCourseScheduleServiceProvider(courseSchedule);
|
|
|
|
|
|
//是否是连堂课
|
|
|
String continueCourseTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME, courseSchedule.getTenantId());
|
|
@@ -220,6 +224,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
if (Objects.isNull(schedule)) {
|
|
|
schedule = courseScheduleDao.get(courseId);
|
|
|
}
|
|
|
+ // 获取RTC服务提供方
|
|
|
+ updateCourseScheduleServiceProvider(schedule);
|
|
|
|
|
|
//记录用户实际选择的房间
|
|
|
if (courseSchedule.getGroupType() == GroupType.COMM) {
|
|
@@ -230,30 +236,6 @@ public class RoomServiceImpl implements RoomService {
|
|
|
redisTemplate.opsForValue().setIfAbsent(roomId + userId, courseSchedule.getId().toString());
|
|
|
log.info("joinRoom current: roomId={}, userId={}", roomId, userId);
|
|
|
|
|
|
- // 获取RTC服务提供方
|
|
|
- if (StringUtils.isBlank(courseSchedule.getServiceProvider())) {
|
|
|
-
|
|
|
- String rtcServiceProvider = Optional.ofNullable(sysConfigDao.findConfigValue(SysConfigService.RTC_SERVICE_PROVIDER))
|
|
|
- .orElse(RongCloudRTCPlugin.PLUGIN_NAME);
|
|
|
-
|
|
|
- // 按分部强制开始腾讯网络教室
|
|
|
- {
|
|
|
- List<Integer> collect = Arrays.stream(Optional.ofNullable(sysConfigDao.findConfigValue(SysConfigService.TENCENT_RTC_SERVICE_PROVIDER)).orElse("").split(","))
|
|
|
- .filter(StringUtils::isNotBlank)
|
|
|
- .map(Integer::parseInt).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
- if (collect.contains(courseSchedule.getOrganId())) {
|
|
|
- // 强制开启腾讯网络教室
|
|
|
- rtcServiceProvider = TencentCloudRTCPlugin.PLUGIN_NAME;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- courseSchedule.setServiceProvider(rtcServiceProvider);
|
|
|
-
|
|
|
- // 更新网络课服务提供方
|
|
|
- courseScheduleDao.updateServiceProvider(courseSchedule.getId(), courseSchedule.getServiceProvider());
|
|
|
- }
|
|
|
-
|
|
|
// 主讲老师信息
|
|
|
SysUser teacherInfo = sysUserFeignService.queryUserById(courseSchedule.getActualTeacherId());
|
|
|
if (Objects.isNull(teacherInfo)) {
|
|
@@ -378,6 +360,36 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 更新课程RTC服务提供方
|
|
|
+ * @param courseSchedule CourseSchedule
|
|
|
+ */
|
|
|
+ private void updateCourseScheduleServiceProvider(CourseSchedule courseSchedule) {
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(courseSchedule.getServiceProvider())) {
|
|
|
+
|
|
|
+ String rtcServiceProvider = Optional.ofNullable(sysConfigDao.findConfigValue(SysConfigService.RTC_SERVICE_PROVIDER))
|
|
|
+ .orElse(RongCloudRTCPlugin.PLUGIN_NAME);
|
|
|
+
|
|
|
+ // 按分部强制开始腾讯网络教室
|
|
|
+ {
|
|
|
+ List<Integer> collect = Arrays.stream(Optional.ofNullable(sysConfigDao.findConfigValue(SysConfigService.TENCENT_RTC_SERVICE_PROVIDER)).orElse("").split(","))
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .map(Integer::parseInt).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (collect.contains(courseSchedule.getOrganId())) {
|
|
|
+ // 强制开启腾讯网络教室
|
|
|
+ rtcServiceProvider = TencentCloudRTCPlugin.PLUGIN_NAME;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ courseSchedule.setServiceProvider(rtcServiceProvider);
|
|
|
+
|
|
|
+ // 更新网络课服务提供方
|
|
|
+ courseScheduleDao.updateServiceProvider(courseSchedule.getId(), courseSchedule.getServiceProvider());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 创建网络课直播间
|
|
|
* @param roomId 课程房间编号
|
|
|
* @param courseSchedule 课程信息
|