新增是否在麦位和管理员身份区分

This commit is contained in:
liaozetao
2023-12-29 18:40:41 +08:00
parent 358a9fd630
commit b98bc9378f
2 changed files with 31 additions and 3 deletions

View File

@@ -246,4 +246,16 @@ public class UserVo implements ReplaceDomainInterface {
*/
@ApiModelProperty("是否为代充")
private Boolean isRechargeUser = false;
/**
* 云信聊天室成员类型
*/
@ApiModelProperty("云信聊天室成员类型")
private String memberType;
/**
* 是否在麦上
*/
@ApiModelProperty("是否在麦上")
private Boolean inMic = false;
}

View File

@@ -3680,6 +3680,7 @@ public class RoomService extends BaseService {
uidList.add(roomUid);
}
//当前房间房管 财富等级+魅力等级之和 降序
List<Long> managerUidList = new ArrayList<>();
if (members.stream().anyMatch(v -> v.getType().equals(NetEaseConstant.RoomMemberRole.MANAGER))) {
List<RoomMemberRet> managers = members.stream().filter(v -> v.getType().equals(NetEaseConstant.RoomMemberRole.MANAGER)).collect(Collectors.toList());
managers.sort((v1, v2) -> {
@@ -3696,19 +3697,22 @@ public class RoomService extends BaseService {
return (experLevel2 + charmLevel2) - (experLevel1 + charmLevel1);
});
for (RoomMemberRet manager : managers) {
uidList.add(manager.getAccid());
managerUidList.add(manager.getAccid());
}
}
uidList.addAll(managerUidList);
//在麦上的用户 麦序降序
List<Long> micUidList = new ArrayList<>();
String roomMicUpJson = jedisService.hget(RedisKey.room_mic_up.getKey(), String.valueOf(roomUid));
if (StrUtil.isNotEmpty(roomMicUpJson)) {
PlayRoomVo playRoom = GsonUtil.getDefGson().fromJson(roomMicUpJson, PlayRoomVo.class);
List<MicUserVo> micUsers = playRoom.getMicUsers();
for (int i = micUsers.size() - 1; i >= 0; i--) {
MicUserVo micUser = micUsers.get(i);
uidList.add(micUser.getUid());
micUidList.add(micUser.getUid());
}
}
uidList.addAll(micUidList);
//排除已经排好序的
members.removeIf(v -> uidList.contains(v.getAccid()));
//剩余用户 财富等级+魅力等级之和 降序
@@ -3730,6 +3734,18 @@ public class RoomService extends BaseService {
uidList.add(member.getAccid());
}
}
return usersService.getUsersVoListByUids(new ArrayList<>(uidList));
List<UserVo> users = usersService.getUsersVoListByUids(new ArrayList<>(uidList));
if (CollectionUtil.isNotEmpty(users)) {
for (UserVo user : users) {
Long uid = user.getUid();
if (managerUidList.contains(uid)) {
user.setMemberType(NetEaseConstant.RoomMemberRole.MANAGER);
}
if (micUidList.contains(uid)) {
user.setInMic(true);
}
}
}
return users;
}
}