同时在线用户数修改
This commit is contained in:
parent
05a202ed50
commit
5265fdc9f6
@ -24,7 +24,9 @@ import com.red.circle.other.inner.endpoint.live.RoomMemberClient;
|
||||
import com.red.circle.other.inner.endpoint.task.RoomDailyTaskClient;
|
||||
import com.red.circle.other.inner.endpoint.user.user.UserOnlineClient;
|
||||
import com.red.circle.other.inner.endpoint.user.user.UserProfileClient;
|
||||
import com.red.circle.other.inner.enums.live.RoomUserRolesEnum;
|
||||
import com.red.circle.other.inner.enums.task.RoomDailyTaskCode;
|
||||
import com.red.circle.other.inner.model.cmd.live.MemberRolesQryCmd;
|
||||
import com.red.circle.other.inner.model.cmd.task.RoomDailyTaskProgressUpdateInnerCmd;
|
||||
import com.red.circle.other.inner.model.cmd.user.OnlineStatusUploadCmd;
|
||||
import com.red.circle.other.inner.model.dto.live.RoomMemberDTO;
|
||||
@ -37,8 +39,11 @@ import com.red.circle.tool.core.regex.RegexConstant;
|
||||
import com.red.circle.tool.core.sequence.IdWorkerUtils;
|
||||
import com.red.circle.tool.core.text.StringUtils;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -121,7 +126,15 @@ public class UserHeartbeatListener implements MessageListener {
|
||||
// 房间内同时在线用户数
|
||||
if (Objects.equals(roomProfile.getUserId(), event.getUserId())) {
|
||||
List<LiveRoomUser> liveRoomUsers = liveMicUserCacheService.listUser(roomProfile.getId());
|
||||
handleOnlineUserCountTask(event.getUserId(), liveRoomUsers.size());
|
||||
Set<Long> userIdList = liveRoomUsers.stream().map(LiveRoomUser::getUserId).collect(Collectors.toSet());
|
||||
|
||||
MemberRolesQryCmd roleQry = new MemberRolesQryCmd().setRoomId(roomId).setUserIds(userIdList);
|
||||
Map<Long, RoomUserRolesEnum> body = roomMemberClient.mapMemberRoles(roleQry).getBody();
|
||||
Set<RoomUserRolesEnum> collect = body.values().stream()
|
||||
.filter(roleEnum -> !RoomUserRolesEnum.TOURIST.equals(roleEnum))
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
handleOnlineUserCountTask(event.getUserId(), collect.size());
|
||||
} else {
|
||||
// 在他人房间活跃
|
||||
if (!tryAcquireMinuteTick(event.getUserId())) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user