|
@@ -132,6 +132,12 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
throw new BizException(DateUtil.format(liveStartTime, "yyyy年MM月dd日 HH点mm分") + " 可进入直播间准备");
|
|
throw new BizException(DateUtil.format(liveStartTime, "yyyy年MM月dd日 HH点mm分") + " 可进入直播间准备");
|
|
}
|
|
}
|
|
if (room.getLiveState() == 2) {
|
|
if (room.getLiveState() == 2) {
|
|
|
|
+ //如果直播结束了还是推广状态则将推广修改为取消
|
|
|
|
+ if (room.getPopularize() == 1) {
|
|
|
|
+ this.update(Wrappers.<ImLiveBroadcastRoom>lambdaUpdate()
|
|
|
|
+ .set(ImLiveBroadcastRoom::getPopularize, 0)
|
|
|
|
+ .eq(ImLiveBroadcastRoom::getId, room.getId()));
|
|
|
|
+ }
|
|
throw new BizException("直播已结束!");
|
|
throw new BizException("直播已结束!");
|
|
}
|
|
}
|
|
return room;
|
|
return room;
|
|
@@ -295,6 +301,16 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public ImLiveBroadcastRoomVo queryPopularizeRoom() {
|
|
public ImLiveBroadcastRoomVo queryPopularizeRoom() {
|
|
|
|
+ //查询该学生信息-获取分部
|
|
|
|
+ SysUser user = getSysUser();
|
|
|
|
+ //查询哪些分部无法推广直播间
|
|
|
|
+ String popularizeOrgan = sysConfigDao.findConfigValue("live_popularize_organ");
|
|
|
|
+ if (StringUtils.isNotBlank(popularizeOrgan)) {
|
|
|
|
+ List<String> organList = WrapperUtil.toList(popularizeOrgan);
|
|
|
|
+ if (organList.contains(user.getOrganId().toString())) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
Map<String, Object> param = new HashMap<>();
|
|
Map<String, Object> param = new HashMap<>();
|
|
param.put("tenantId", TenantContextHolder.getTenantId());
|
|
param.put("tenantId", TenantContextHolder.getTenantId());
|
|
param.put("popularize", 1);
|
|
param.put("popularize", 1);
|
|
@@ -443,9 +459,11 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
//总观看人数
|
|
//总观看人数
|
|
List<ImLiveBroadcastRoomMember> memberList = new ArrayList<>();
|
|
List<ImLiveBroadcastRoomMember> memberList = new ArrayList<>();
|
|
//获取直播间所有人数据写入 im_live_broadcast_room_member
|
|
//获取直播间所有人数据写入 im_live_broadcast_room_member
|
|
- RMap<Integer, RoomUserInfoVo> roomTotalUserCache = getTotalUserCache(roomUid);
|
|
|
|
|
|
+ RMap<Integer, String> roomTotalUserCache = getTotalUserCache(roomUid);
|
|
if (roomTotalUserCache.isExists()) {
|
|
if (roomTotalUserCache.isExists()) {
|
|
- List<RoomUserInfoVo> roomTotalUser = new ArrayList<>(roomTotalUserCache.values());
|
|
|
|
|
|
+ List<RoomUserInfoVo> roomTotalUser = roomTotalUserCache.values().parallelStream()
|
|
|
|
+ .map(a -> JSONObject.toJavaObject(JSONObject.parseObject(a), RoomUserInfoVo.class))
|
|
|
|
+ .collect(Collectors.toList());
|
|
for (RoomUserInfoVo v : roomTotalUser) {
|
|
for (RoomUserInfoVo v : roomTotalUser) {
|
|
ImLiveBroadcastRoomMember member = new ImLiveBroadcastRoomMember();
|
|
ImLiveBroadcastRoomMember member = new ImLiveBroadcastRoomMember();
|
|
member.setTenantId(v.getTenantId());
|
|
member.setTenantId(v.getTenantId());
|
|
@@ -563,47 +581,32 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
Integer userId = Integer.valueOf(userid);
|
|
Integer userId = Integer.valueOf(userid);
|
|
|
|
|
|
//从房间累计用户信息中查询该用户的信息
|
|
//从房间累计用户信息中查询该用户的信息
|
|
- RMap<Integer, RoomUserInfoVo> roomTotalUser = getTotalUserCache(roomUid);
|
|
|
|
|
|
+ RMap<Integer, String> roomTotalUser = getTotalUserCache(roomUid);
|
|
//该房间未查询到用户数据则不处理
|
|
//该房间未查询到用户数据则不处理
|
|
if (!roomTotalUser.isExists() && !roomTotalUser.containsKey(userId)) {
|
|
if (!roomTotalUser.isExists() && !roomTotalUser.containsKey(userId)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
//查询用户数据
|
|
//查询用户数据
|
|
- RoomUserInfoVo userInfo = roomTotalUser.get(userId);
|
|
|
|
|
|
+ RoomUserInfoVo userInfo = JSONObject.toJavaObject(JSONObject.parseObject(roomTotalUser.get(userId)), RoomUserInfoVo.class);
|
|
//如果有动态观看时间则证明主播开播过,需要计算当前用户观看时长
|
|
//如果有动态观看时间则证明主播开播过,需要计算当前用户观看时长
|
|
if (Objects.nonNull(userInfo.getDynamicLookTime())) {
|
|
if (Objects.nonNull(userInfo.getDynamicLookTime())) {
|
|
userInfo.setTotalViewTime(getLookMinutes(userInfo.getDynamicLookTime(), userInfo.getTotalViewTime()));
|
|
userInfo.setTotalViewTime(getLookMinutes(userInfo.getDynamicLookTime(), userInfo.getTotalViewTime()));
|
|
userInfo.setDynamicLookTime(null);
|
|
userInfo.setDynamicLookTime(null);
|
|
}
|
|
}
|
|
- roomTotalUser.fastPut(userId, userInfo);
|
|
|
|
-
|
|
|
|
|
|
+ roomTotalUser.fastPut(userId, JSONObject.toJSONString(userInfo));
|
|
//查询在线人员列表
|
|
//查询在线人员列表
|
|
- RMap<Integer, BaseRoomUserVo> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
|
|
|
|
+ RMap<Integer, String> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
if (!onlineUserInfo.isExists()) {
|
|
if (!onlineUserInfo.isExists()) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- //发消息给主播 告知现在人数
|
|
|
|
- int size = 0;
|
|
|
|
- ImRoomMessage message = new ImRoomMessage();
|
|
|
|
- message.setIsIncludeSender(1);
|
|
|
|
- message.setObjectName(ImRoomMessage.MEMBER_COUNT);
|
|
|
|
- message.setToChatroomId(roomUid);
|
|
|
|
|
|
+ //在线人数
|
|
|
|
+ int count = 0;
|
|
//大于1就发送实际人数,如果是最后一个人离开房间则发送一条0人数消息给主播
|
|
//大于1就发送实际人数,如果是最后一个人离开房间则发送一条0人数消息给主播
|
|
if (onlineUserInfo.size() > 1) {
|
|
if (onlineUserInfo.size() > 1) {
|
|
- size = onlineUserInfo.size();
|
|
|
|
- }
|
|
|
|
- HashMap<String, Integer> sendMap = new HashMap<>();
|
|
|
|
- sendMap.put("count", size);
|
|
|
|
- message.setFromUserId(userId.toString());
|
|
|
|
- message.setContent(sendMap);
|
|
|
|
- //发送消息
|
|
|
|
- try {
|
|
|
|
- imFeignService.publishRoomMsg(message);
|
|
|
|
- log.info("opsRoom>>>> sendLiveOnlineNum>>>> speakerId room:{}", JSONObject.toJSONString(message));
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("opsRoom>>>> sendLiveOnlineNum>>>> speakerId error {}", e.getMessage());
|
|
|
|
- log.error("opsRoom>>>> sendLiveOnlineNum>>>> speakerId sendMessage {} :", JSONObject.toJSONString(message));
|
|
|
|
|
|
+ count = onlineUserInfo.size();
|
|
}
|
|
}
|
|
|
|
+ //向直播间发送当前在线人数消息
|
|
|
|
+ this.sendOnlineUserCount(roomUid, userId, count);
|
|
//从在线人员列表删除该人员
|
|
//从在线人员列表删除该人员
|
|
onlineUserInfo.fastRemove(userId);
|
|
onlineUserInfo.fastRemove(userId);
|
|
log.info("opsRoom>>>> looker userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
log.info("opsRoom>>>> looker userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
@@ -611,27 +614,60 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 向直播间发送当前在线人数消息
|
|
|
|
+ *
|
|
|
|
+ * @param roomUid 房间uid
|
|
|
|
+ * @param fromUserId 发送人id
|
|
|
|
+ * @param count 人数
|
|
|
|
+ */
|
|
|
|
+ private void sendOnlineUserCount(String roomUid, Integer fromUserId, Integer count) {
|
|
|
|
+ //校验传入参数,房间uid和发送人id不能为空
|
|
|
|
+ if (!WrapperUtil.checkObj(roomUid, fromUserId, count)) {
|
|
|
|
+ log.info(" sendOnlineUserCount>>>> param is null roomUid: {} fromUserId:{} count:{}", roomUid, fromUserId, count);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ ImRoomMessage message = new ImRoomMessage();
|
|
|
|
+ message.setIsIncludeSender(1);
|
|
|
|
+ message.setObjectName(ImRoomMessage.MEMBER_COUNT);
|
|
|
|
+ message.setToChatroomId(roomUid);
|
|
|
|
+ HashMap<String, Integer> sendMap = new HashMap<>();
|
|
|
|
+ sendMap.put("count", count);
|
|
|
|
+ message.setFromUserId(fromUserId.toString());
|
|
|
|
+ message.setContent(sendMap);
|
|
|
|
+ //发送消息
|
|
|
|
+ try {
|
|
|
|
+ imFeignService.publishRoomMsg(message);
|
|
|
|
+ log.info(" sendOnlineUserCount>>>> message: {}", JSONObject.toJSONString(message));
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("sendOnlineUserCount>>>> error {}", e.getMessage());
|
|
|
|
+ log.error("sendOnlineUserCount>>>> sendMessage {} :", JSONObject.toJSONString(message));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 查询userId是不是主讲人
|
|
* 查询userId是不是主讲人
|
|
|
|
+ *
|
|
|
|
+ * @return true 是主讲人 false 不是主讲人
|
|
*/
|
|
*/
|
|
private boolean isSpeaker(ImUserState user, Date now, String userid) {
|
|
private boolean isSpeaker(ImUserState user, Date now, String userid) {
|
|
RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, userid));
|
|
RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, userid));
|
|
- if (speakerCache.isExists()) {
|
|
|
|
- RoomSpeakerInfo speakerInfo = speakerCache.get();
|
|
|
|
- //主讲人进入房间
|
|
|
|
- if (user.getStatus().equals("0")) {
|
|
|
|
- speakerInfo.setJoinRoomTime(now);
|
|
|
|
- log.info("opsRoom>>>> join speakerCache {}", JSONObject.toJSONString(speakerInfo));
|
|
|
|
- speakerCache.set(speakerInfo);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- //主讲人退出房间关闭录像
|
|
|
|
- closeLive(speakerInfo);
|
|
|
|
- speakerInfo.setExitRoomTime(now);
|
|
|
|
- log.info("opsRoom>>>> exit speakerCache {}", JSONObject.toJSONString(speakerInfo));
|
|
|
|
|
|
+ if (!speakerCache.isExists()) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ RoomSpeakerInfo speakerInfo = speakerCache.get();
|
|
|
|
+ //主讲人进入房间
|
|
|
|
+ if (user.getStatus().equals("0")) {
|
|
|
|
+ speakerInfo.setJoinRoomTime(now);
|
|
|
|
+ log.info("opsRoom>>>> join speakerCache {}", JSONObject.toJSONString(speakerInfo));
|
|
speakerCache.set(speakerInfo);
|
|
speakerCache.set(speakerInfo);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- return false;
|
|
|
|
|
|
+ //主讲人退出房间关闭录像
|
|
|
|
+ closeLive(speakerInfo);
|
|
|
|
+ speakerInfo.setExitRoomTime(now);
|
|
|
|
+ log.info("opsRoom>>>> exit speakerCache {}", JSONObject.toJSONString(speakerInfo));
|
|
|
|
+ speakerCache.set(speakerInfo);
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -675,16 +711,14 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
}
|
|
}
|
|
//记录用户当前房间uid
|
|
//记录用户当前房间uid
|
|
redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userId.toString())).set(roomUid, 12L, TimeUnit.HOURS);
|
|
redissonClient.getBucket(LIVE_USER_ROOM.replace(USER_ID, userId.toString())).set(roomUid, 12L, TimeUnit.HOURS);
|
|
- //在线人员列表
|
|
|
|
- RMap<Integer, BaseRoomUserVo> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
|
|
//房间累计用户信息-指只要进入到该房间的用户都要记录
|
|
//房间累计用户信息-指只要进入到该房间的用户都要记录
|
|
- RMap<Integer, RoomUserInfoVo> roomTotalUser = getTotalUserCache(roomUid);
|
|
|
|
|
|
+ RMap<Integer, String> roomTotalUser = getTotalUserCache(roomUid);
|
|
//判断是否第一次进房间
|
|
//判断是否第一次进房间
|
|
RoomUserInfoVo userInfo;
|
|
RoomUserInfoVo userInfo;
|
|
Date now = new Date();
|
|
Date now = new Date();
|
|
if (roomTotalUser.containsKey(userId)) {
|
|
if (roomTotalUser.containsKey(userId)) {
|
|
//多次进入更新动态进入时间
|
|
//多次进入更新动态进入时间
|
|
- userInfo = roomTotalUser.get(userId);
|
|
|
|
|
|
+ userInfo = JSONObject.toJavaObject(JSONObject.parseObject(roomTotalUser.get(userId)), RoomUserInfoVo.class);
|
|
} else {
|
|
} else {
|
|
//第一次进该房间 写入用户首次进入时间
|
|
//第一次进该房间 写入用户首次进入时间
|
|
userInfo = getUserInfo(userId);
|
|
userInfo = getUserInfo(userId);
|
|
@@ -700,9 +734,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
userInfo.setDynamicLookTime(now);
|
|
userInfo.setDynamicLookTime(now);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- roomTotalUser.fastPut(userId, userInfo);
|
|
|
|
|
|
+ roomTotalUser.fastPut(userId, JSONObject.toJSONString(userInfo));
|
|
|
|
+ //在线人员列表
|
|
|
|
+ RMap<Integer, String> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
//进入房间写如在线人员列表
|
|
//进入房间写如在线人员列表
|
|
- onlineUserInfo.fastPut(userId, userInfo);
|
|
|
|
|
|
+ onlineUserInfo.fastPut(userId, JSONObject.toJSONString(userInfo));
|
|
|
|
+ //向直播间发送当前在线人数消息
|
|
|
|
+// this.sendOnlineUserCount(roomUid, userId, count);
|
|
log.info("joinRoom>>>> userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
log.info("joinRoom>>>> userInfo: {}", JSONObject.toJSONString(userInfo));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -807,15 +845,17 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
//加锁-避免快速点击开启直播和关闭直后异步执行后直播数据错误
|
|
//加锁-避免快速点击开启直播和关闭直后异步执行后直播数据错误
|
|
boolean b = this.runIfLockCanGet(LIVE_LOOK_LOCK.replace(ROOM_UID, roomUid), () -> {
|
|
boolean b = this.runIfLockCanGet(LIVE_LOOK_LOCK.replace(ROOM_UID, roomUid), () -> {
|
|
//查询所有在直播间的用户并计算观看时长
|
|
//查询所有在直播间的用户并计算观看时长
|
|
- RMap<Integer, RoomUserInfoVo> roomTotalUser = getTotalUserCache(roomUid);
|
|
|
|
|
|
+ RMap<Integer, String> roomTotalUser = getTotalUserCache(roomUid);
|
|
if (!roomTotalUser.isExists()) {
|
|
if (!roomTotalUser.isExists()) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
//查询在线人员列表
|
|
//查询在线人员列表
|
|
- RMap<Integer, BaseRoomUserVo> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
|
|
- roomTotalUser.forEach((id, userInfo) -> {
|
|
|
|
|
|
+ RMap<Integer, String> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
|
|
+ boolean onlineUserInfoExists = onlineUserInfo.isExists();
|
|
|
|
+ roomTotalUser.forEach((id, userInfoStr) -> {
|
|
|
|
+ RoomUserInfoVo userInfo = JSONObject.toJavaObject(JSONObject.parseObject(userInfoStr), RoomUserInfoVo.class);
|
|
//获取当前用户是否在房间状态 true在 false不在
|
|
//获取当前用户是否在房间状态 true在 false不在
|
|
- if (onlineUserInfo.isExists() && onlineUserInfo.containsKey(id)) {
|
|
|
|
|
|
+ if (onlineUserInfoExists && onlineUserInfo.containsKey(id)) {
|
|
if (type.equals(1)) {
|
|
if (type.equals(1)) {
|
|
//开启直播后对当前在房间的用户写入观看时间
|
|
//开启直播后对当前在房间的用户写入观看时间
|
|
userInfo.setDynamicLookTime(new Date());
|
|
userInfo.setDynamicLookTime(new Date());
|
|
@@ -825,7 +865,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
} else {
|
|
} else {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- roomTotalUser.fastPut(id, userInfo);
|
|
|
|
|
|
+ roomTotalUser.fastPut(id, JSONObject.toJSONString(userInfo));
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}, 2, 1, TimeUnit.MINUTES);
|
|
}, 2, 1, TimeUnit.MINUTES);
|
|
@@ -1020,11 +1060,11 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public List<BaseRoomUserVo> queryRoomLimitOnlineUserInfo(String roomUid) {
|
|
public List<BaseRoomUserVo> queryRoomLimitOnlineUserInfo(String roomUid) {
|
|
- RMap<Integer, BaseRoomUserVo> onlineUserCache = getOnlineUserCache(roomUid);
|
|
|
|
- return onlineUserCache.values().stream()
|
|
|
|
- .filter(Objects::nonNull)
|
|
|
|
- .limit(200)
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ RMap<Integer, String> onlineUserCache = getOnlineUserCache(roomUid);
|
|
|
|
+ return onlineUserCache.values().parallelStream()
|
|
|
|
+ .map(a -> JSONObject.toJavaObject(JSONObject.parseObject(a), BaseRoomUserVo.class))
|
|
|
|
+ .limit(200)
|
|
|
|
+ .collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1034,9 +1074,9 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public List<BaseRoomUserVo> queryRoomOnlineUserInfo(String roomUid) {
|
|
public List<BaseRoomUserVo> queryRoomOnlineUserInfo(String roomUid) {
|
|
- RMap<Integer, BaseRoomUserVo> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
|
|
- return onlineUserInfo.values().stream()
|
|
|
|
- .filter(Objects::nonNull)
|
|
|
|
|
|
+ RMap<Integer, String> onlineUserInfo = getOnlineUserCache(roomUid);
|
|
|
|
+ return onlineUserInfo.values().parallelStream()
|
|
|
|
+ .map(a -> JSONObject.toJavaObject(JSONObject.parseObject(a), BaseRoomUserVo.class))
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1046,17 +1086,29 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
|
|
* @param roomUid 直播间uid
|
|
* @param roomUid 直播间uid
|
|
*/
|
|
*/
|
|
private List<RoomUserInfoVo> queryTotalRoomUserInfo(String roomUid) {
|
|
private List<RoomUserInfoVo> queryTotalRoomUserInfo(String roomUid) {
|
|
- RMap<Integer, RoomUserInfoVo> roomTotalUser = getTotalUserCache(roomUid);
|
|
|
|
- return roomTotalUser.values().stream()
|
|
|
|
- .filter(Objects::nonNull)
|
|
|
|
|
|
+ RMap<Integer, String> roomTotalUser = getTotalUserCache(roomUid);
|
|
|
|
+ return roomTotalUser.values().parallelStream()
|
|
|
|
+ .map(a -> JSONObject.toJavaObject(JSONObject.parseObject(a), RoomUserInfoVo.class))
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
- private RMap<Integer, BaseRoomUserVo> getOnlineUserCache(String roomUid) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取直播间在线用户信息缓存
|
|
|
|
+ *
|
|
|
|
+ * @param roomUid 直播间uid
|
|
|
|
+ * @return RMap key:userId value:BaseRoomUserVo -> jsonToString
|
|
|
|
+ */
|
|
|
|
+ private RMap<Integer, String> getOnlineUserCache(String roomUid) {
|
|
return redissonClient.getMap(LIVE_ROOM_ONLINE_USER_LIST.replace(ROOM_UID, roomUid));
|
|
return redissonClient.getMap(LIVE_ROOM_ONLINE_USER_LIST.replace(ROOM_UID, roomUid));
|
|
}
|
|
}
|
|
|
|
|
|
- private RMap<Integer, RoomUserInfoVo> getTotalUserCache(String roomUid) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取直播间所有用户信息缓存
|
|
|
|
+ *
|
|
|
|
+ * @param roomUid 直播间uid
|
|
|
|
+ * @return RMap key:userId value:RoomUserInfoVo -> jsonToString
|
|
|
|
+ */
|
|
|
|
+ private RMap<Integer, String> getTotalUserCache(String roomUid) {
|
|
return redissonClient.getMap(LIVE_ROOM_TOTAL_USER_LIST.replace(ROOM_UID, roomUid));
|
|
return redissonClient.getMap(LIVE_ROOM_TOTAL_USER_LIST.replace(ROOM_UID, roomUid));
|
|
}
|
|
}
|
|
|
|
|