日常任务-优化上麦定时任务

This commit is contained in:
2025-08-28 18:17:58 +08:00
parent c0fef64f12
commit 124b3e47c1

View File

@@ -12,6 +12,7 @@ import com.accompany.business.vo.home.PlayRoomVo;
import com.accompany.common.constant.ApplicationConstant;
import com.accompany.common.redis.RedisKey;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.common.utils.GsonUtil;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.model.Room;
import com.accompany.core.service.common.JedisService;
@@ -328,10 +329,19 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
}
Set<Long> uids = getMicRecordMap().readAllKeySet();
List<Long> roomUids = micRecordMap.values().stream().map(MicRecordVo::getRoomUid).distinct().collect(Collectors.toList());
Map<Long, GuildMember> guildMemberMap = guildMemberService.mapFamilyMember(uids);
List<String> cacheList = jedisService.hmread(RedisKey.room_mic_up.getKey(), roomUids.stream().toArray(String[]::new));
Map<Long, PlayRoomVo> roomMicMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(cacheList)){
roomMicMap = cacheList.stream().filter(str-> com.accompany.core.util.StringUtils.isNotBlank(str)
&& !ApplicationConstant.NULL_JSON_OBJECT.equalsIgnoreCase(str))
.map(str-> GsonUtil.getGson().fromJson(str, PlayRoomVo.class)).collect(Collectors.toMap(PlayRoomVo::getUid, v->v));
}
Long timeInMillis = Calendar.getInstance().getTimeInMillis();
uids.forEach(uid -> {
for (Long uid : uids) {
MicRecordVo micRecordVo = micRecordMap.get(uid);
if (ObjectUtil.isNull(micRecordVo)) {
micRecordMap.remove(uid);
@@ -340,17 +350,13 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
Long roomId = micRecordVo.getRoomId();
Integer pos = micRecordVo.getPos();
Long roomUid = micRecordVo.getRoomUid();
String str = jedisService.hget(RedisKey.room_mic_up.getKey(), String.valueOf(roomUid));
if (com.accompany.common.utils.StringUtils.isEmpty(str)
|| ApplicationConstant.NULL_JSON_OBJECT.equalsIgnoreCase(str)) {
micRecordMap.remove(uid);
return;
}
PlayRoomVo playRoomVo = gson.fromJson(str, PlayRoomVo.class);
if (CollectionUtils.isEmpty(playRoomVo.getMicUsers())) {
PlayRoomVo playRoomVo = roomMicMap.get(roomUid);
if (playRoomVo == null || CollectionUtils.isEmpty(playRoomVo.getMicUsers())) {
micRecordMap.remove(uid);
return;
}
Set<Long> micUids = playRoomVo.getMicUsers().stream().map(MicUserVo::getUid).collect(Collectors.toSet());
if (!micUids.contains(uid)) {
micRecordMap.remove(uid);
@@ -392,6 +398,6 @@ public class GuildMemberRoomMicRecordService extends ServiceImpl<GuildMemberRoom
lock.unlock();
}
}
});
}
}
}