hgw пре 2 година
родитељ
комит
67108c1648

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/constant/LiveRoomConstant.java

@@ -35,4 +35,7 @@ public interface LiveRoomConstant {
     //当前房间心跳
     String LIVE_ROOM_HEART_BEAT = String.join(":", COOLESHOW, "LIVE_ROOM_HEART_BEAT", ROOM_UID);
 
+    //正在临时直播间的房间列表
+    String TEACHER_TEMP_LIVE_ROOM = String.join(":", COOLESHOW, "TEACHER_TEMP_LIVE_ROOM");
+
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -303,6 +303,9 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         this.createLiveRoomInfo(room, sysUser);
         //临时
         this.pushLiveCreateRoom(room);
+        //写入临时直播间列表
+        RMap<Long, String> map = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
+        map.put(teacherId, roomUid);
         return roomUid;
     }
 
@@ -494,6 +497,9 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         redissonClient.getBucket(LIVE_ROOM_HEART_BEAT.replace(ROOM_UID, roomUid)).deleteAsync();
         //删除房间全部人员缓存
         this.getTotalUserCache(roomUid).deleteAsync();
+        //删除该临时直播间列表
+        RMap<Long, String> map = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
+        map.remove(room.getSpeakerId());
     }
 
     /**
@@ -730,6 +736,8 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
      * @param userId  用户id 观看者id
      */
     public RoomInfoCache joinRoom(String roomUid, Long userId) {
+        Optional.ofNullable(roomUid).orElseThrow(() -> new BizException("房间编号不能为空!"));
+        Optional.ofNullable(userId).orElseThrow(() -> new BizException("人员编号不能为空!"));
         //获取进入房间人员信息
         SysUser sysUser = this.getSysUser(userId);
         //校验信息