diff --git a/hs-im-server/im-service/src/main/java/com/lld/im/service/message/service/MessageSyncService.java b/hs-im-server/im-service/src/main/java/com/lld/im/service/message/service/MessageSyncService.java index c2b80b8..be6744a 100644 --- a/hs-im-server/im-service/src/main/java/com/lld/im/service/message/service/MessageSyncService.java +++ b/hs-im-server/im-service/src/main/java/com/lld/im/service/message/service/MessageSyncService.java @@ -173,6 +173,17 @@ public class MessageSyncService { } public List 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 imMessageHistoryVos = new ArrayList<>(); Page objectPage = new Page<>(chatHistoryReq.getOffset(),chatHistoryReq.getLimit()); LambdaQueryWrapper and = new LambdaQueryWrapper().eq(ImMessageHistoryEntity::getOwnerId, chatHistoryReq.getOperater())