add 读取聊天记录时,清空缓存里对应的未读消息

This commit is contained in:
chen zida
2023-11-30 15:22:33 +08:00
parent d7d4b7e41c
commit 060609ae40

View File

@@ -173,6 +173,17 @@ public class MessageSyncService {
}
public List<ImMessageHistoryVo> chatHistory(ChatHistoryReq chatHistoryReq){
// 1.清空缓存里对应的未读消息
String key = chatHistoryReq.getAppId() + ":" + Constants.RedisConstants.OfflineMessage + ":" + chatHistoryReq.getOperater();
ZSetOperations zSetOperations = redisTemplate.opsForZSet();
Set querySet = zSetOperations.range(key,0,-1);
for (Object o : querySet) {
OfflineMessageContent offlineMessageContent = JSONObject.parseObject(o.toString(), OfflineMessageContent.class);
if (chatHistoryReq.getUserId().equals(offlineMessageContent.getFromId()) || chatHistoryReq.getUserId().equals(offlineMessageContent.getToId())){
zSetOperations.remove(key,o);
}
}
// 2.获取聊天记录记录
List<ImMessageHistoryVo> imMessageHistoryVos = new ArrayList<>();
Page<ImMessageHistoryEntity> objectPage = new Page<>(chatHistoryReq.getOffset(),chatHistoryReq.getLimit());
LambdaQueryWrapper<ImMessageHistoryEntity> and = new LambdaQueryWrapper<ImMessageHistoryEntity>().eq(ImMessageHistoryEntity::getOwnerId, chatHistoryReq.getOperater())