|
@@ -622,6 +622,12 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
* @param userId 用户id
|
|
|
*/
|
|
|
public void joinRoom(String roomUid, Integer userId) {
|
|
|
+ //查询房间信息
|
|
|
+ ImLiveBroadcastRoomVo imLiveBroadcastRoomVo = queryRoomInfo(roomUid);
|
|
|
+ if (Objects.isNull(imLiveBroadcastRoomVo)) {
|
|
|
+ log.info("opsRoom>>>> joinRoom error roomUid: {}", roomUid);
|
|
|
+ return;
|
|
|
+ }
|
|
|
//记录用户当前房间uid
|
|
|
redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userId.toString())).set(roomUid);
|
|
|
//房间累计用户信息-指只要进入到该房间的用户都要记录
|
|
@@ -638,7 +644,17 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
|
userInfo.setFirstJoinTime(now);
|
|
|
userInfo.setTotalViewTime(0);
|
|
|
}
|
|
|
- userInfo.setState(0);//0 进入/在房间
|
|
|
+ //0 进入房间
|
|
|
+ userInfo.setState(0);
|
|
|
+ //查询主讲人信息
|
|
|
+ RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, imLiveBroadcastRoomVo.getSpeakerId().toString()));
|
|
|
+ if (speakerCache.isExists()) {
|
|
|
+ //如果用户进来时主讲人已经开启直播则修改学生观看时间
|
|
|
+ Integer state = speakerCache.get().getState();
|
|
|
+ if (Objects.nonNull(state) && state == 0) {
|
|
|
+ userInfo.setDynamicLookTime(now);
|
|
|
+ }
|
|
|
+ }
|
|
|
roomTotalUser.fastPut(userId, userInfo);
|
|
|
log.info("joinRoom>>>> userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
|
}
|