Browse Source

修复VIP课堂

shangke 2 years ago
parent
commit
591b8a6740
1 changed files with 37 additions and 25 deletions
  1. 37 25
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

+ 37 - 25
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -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 课程信息