日常任务-优化上麦定时任务
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user