shangke 2 gadi atpakaļ
vecāks
revīzija
48e5a155a9

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -42,6 +42,14 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      */
     ImLiveBroadcastRoomVo visitorRoomInfo(String roomUid, Integer userId);
 
+    /**
+     * 直播间配置信息
+     * @param room ImLiveBroadcastRoomVo
+     * @param sysUser SysUser
+     * @return ImLiveBroadcastRoomVo
+     */
+    ImLiveBroadcastRoomVo getLiveBroadcastRoomConfig(ImLiveBroadcastRoomVo room, SysUser sysUser);
+
     ImLiveBroadcastRoomVo queryRoomInfo(String roomUid);
 
     void add(ImLiveBroadcastRoomDto dto);

+ 30 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -283,17 +283,11 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     }
 
     public ImLiveBroadcastRoomVo queryRoomAndCheck(ImLiveBroadcastRoomVo room, SysUser sysUser) {
+
         //直播间信息校验
         if (!room.getTenantId().equals(sysUser.getTenantId())) {
             throw new BizException("您不是该直播机构人员,不可观看!");
         }
-        if (room.getRoomState() == 1) {
-            throw new BizException("直播间不存在");
-        }
-        if (room.getLiveState() == 0) {
-            Date liveStartTime = DateUtil.addMinutes(room.getLiveStartTime(), -PRE_LIVE_TIME_MINUTE);
-            throw new BizException(DateUtil.format(liveStartTime, "yyyy年MM月dd日 HH点mm分") + " 可进入直播间准备");
-        }
         if (room.getLiveState() == 2) {
             //如果直播结束了还是推广状态则将推广修改为取消
             if (room.getPopularize() == 1) {
@@ -303,6 +297,27 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
             }
             throw new BizException("直播已结束!");
         }
+
+        if (room.getRoomState() == 1) {
+            throw new BizException("直播间不存在");
+        }
+        if (room.getLiveState() == 0) {
+            Date liveStartTime = DateUtil.addMinutes(room.getLiveStartTime(), -PRE_LIVE_TIME_MINUTE);
+            throw new BizException(DateUtil.format(liveStartTime, "yyyy年MM月dd日 HH点mm分") + " 可进入直播间准备");
+        }
+
+        return getLiveBroadcastRoomConfig(room, sysUser);
+    }
+
+    /**
+     * 直播间配置信息
+     * @param room ImLiveBroadcastRoomVo
+     * @param sysUser SysUser
+     * @return ImLiveBroadcastRoomVo
+     */
+    @Override
+    public ImLiveBroadcastRoomVo getLiveBroadcastRoomConfig(ImLiveBroadcastRoomVo room, SysUser sysUser) {
+
         room.setBlacklistFlag(0);
         //黑名单查询-查询当前用户是否在黑名单中
         int count = imLiveRoomBlackService.count(Wrappers.<ImLiveRoomBlack>lambdaQuery()
@@ -324,7 +339,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         // 直播房间统计信息
         getRoomData(room);
 
-
         // 直播间配置信息
         return room.userSig(userSig).liveRoomConfig(pluginService.getLiveRoomConfig());
     }
@@ -2246,12 +2260,15 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                     pluginService.rtcRoomRecordStart(recordStart);
                 }
 
-                // imFeignService.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
-                //推送预约直播间消息
-                imLiveRoomReservationService.push(room);
+                // 直播间类型: NORMAL, LIVE
+                if (room.getGroupType().equals("NORMAL")) {
+                    // imFeignService.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
+                    //推送预约直播间消息
+                    imLiveRoomReservationService.push(room);
 
-                //推送直播开始消息
-                this.sendRoomLiveState(sysUser, room, MessageTypeEnum.JIGUANG_LIVE_STARTED);
+                    //推送直播开始消息
+                    this.sendRoomLiveState(sysUser, room, MessageTypeEnum.JIGUANG_LIVE_STARTED);
+                }
 
                 // 查询黑名单人员
                 List<ImLiveRoomBlack> blackList = imLiveRoomBlackService.lambdaQuery()

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -179,7 +179,8 @@
         cs.tenant_id_,
         cs.evaluate_flag_,
         cs.service_provider_,
-        cs.mute_all_
+        cs.mute_all_,
+        cs.live_room_id_
     </sql>
 
     <sql id="courseIgnore">

+ 1 - 1
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -34,7 +34,7 @@ public class RoomController{
 
     @RequestMapping(value = "/joinLive", method = RequestMethod.POST)
     public BaseResponse joinLiveRoom(@RequestBody ReqUserData data) throws Exception {
-        return new BaseResponse(roomService.joinRoom(data.getRoomId(), false));
+        return roomService.joinRoom(data.getRoomId(), false);
     }
 
     @ApiOperation("查询网络教室信息")

+ 7 - 8
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -317,8 +317,10 @@ public class RoomServiceImpl implements RoomService {
             }
 
             // 返回直播间配置参数
-            roomResult.setLiveRoom(imLiveBroadcastRoomService.visitorRoomInfo(liveRoom.getRoomUid(), sysUser.getId())
-                            .autoCloseNetworkRoomTime(roomResult.getAutoCloseNetworkRoomTime())
+            ImLiveBroadcastRoomVo roomVo = JSON.parseObject(JSON.toJSONString(liveRoom), ImLiveBroadcastRoomVo.class);
+
+            roomResult.setLiveRoom(imLiveBroadcastRoomService.getLiveBroadcastRoomConfig(roomVo, sysUser)
+                    .autoCloseNetworkRoomTime(roomResult.getAutoCloseNetworkRoomTime())
                     .surplusTime(roomResult.getSurplusTime()));
 
             // 主动触发用户加入直播间
@@ -368,10 +370,10 @@ public class RoomServiceImpl implements RoomService {
             liveRoom.setServiceProvider(liveClient);
         }
 
-        String roomUid = "LIVE-" + roomId + "-" + DateTime.now().toDate().getTime();
+        String roomUid = "LIVE-" + roomId + "-" + courseSchedule.getCreateTime().getTime();
         liveRoom.setTenantId(TenantContextHolder.getTenantId());
         liveRoom.setRoomUid(roomUid);
-        liveRoom.setRoomConfig(JSONObject.toJSONString(liveRoom.getRoomConfig()));
+        //liveRoom.setRoomConfig(liveRoom.getRoomConfig());
         liveRoom.setLiveState(1);
         liveRoom.setRoomState(0);
         liveRoom.setGroupType("LIVE");
@@ -387,10 +389,7 @@ public class RoomServiceImpl implements RoomService {
         imLiveBroadcastRoomService.createLiveRoom(liveRoom);
 
         // 返回直播间信息
-        return imLiveBroadcastRoomService.lambdaQuery()
-                .eq(ImLiveBroadcastRoom::getRoomUid, courseSchedule.getLiveRoomId())
-                .last("LIMIT 1")
-                .one();
+        return liveRoom;
     }
 
     /**