diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java index a17c7d88..830d3986 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java @@ -66,9 +66,10 @@ public class RoomVoiceDiscoverQryExe { List activeVoiceRooms = activeVoiceRoomService.listDiscover(cmd.requireReqSysOrigin(), cmd.isAllRegion(), region, 50); log.info("activeVoiceRooms:{}", JSON.toJSONString(activeVoiceRooms)); // 处理没有人的房间,有缓存不会大量创建线程 - new Thread(() -> formatRoomList(activeVoiceRooms)).start(); + List longs = formatRoomList(activeVoiceRooms); + List list = activeVoiceRooms.stream().filter(e -> !longs.contains(e.getId())).toList(); - List roomList = roomVoiceProfileCommon.toListRoomVoiceProfileCO(activeVoiceRooms); + List roomList = roomVoiceProfileCommon.toListRoomVoiceProfileCO(list); if (CollectionUtils.isEmpty(roomList)) { //roomList = getHomeData(cmd,latestMobileDeviceService.getLatestLanguage(cmd.requiredReqUserId())); @@ -96,7 +97,7 @@ public class RoomVoiceDiscoverQryExe { * @param roomList * @return */ - private void formatRoomList(List roomList) { + private List formatRoomList(List roomList) { List notUserRooms = new ArrayList<>(); //只显示有人活跃用户,获取在线人数大于0的房间 roomList.forEach(item -> { @@ -109,7 +110,9 @@ public class RoomVoiceDiscoverQryExe { }); if (!notUserRooms.isEmpty()) { activeVoiceRoomService.removeByIds(notUserRooms); + return notUserRooms; } + return CollectionUtils.newArrayList(); } public static void main(String[] args) {