From 6afd45f3e499ad9d6845807cf60b0b3350471c55 Mon Sep 17 00:00:00 2001 From: chen zida Date: Thu, 30 Nov 2023 10:56:33 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=81=8A=E5=A4=A9=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lld/im/service/message/service/MessageSyncService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 cfcf2ce..6a87eda 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,16 +173,20 @@ public class MessageSyncService { } public List chatHistory(ChatHistoryReq chatHistoryReq){ + List imMessageHistoryVos = new ArrayList<>(); Page objectPage = new Page<>(chatHistoryReq.getOffset(),chatHistoryReq.getLimit()); LambdaQueryWrapper and = new LambdaQueryWrapper().eq(ImMessageHistoryEntity::getOwnerId, chatHistoryReq.getOperater()) .and(x -> x.eq(ImMessageHistoryEntity::getFromId, chatHistoryReq.getUserId()).or().eq(ImMessageHistoryEntity::getToId, chatHistoryReq.getUserId())) .orderByDesc(ImMessageHistoryEntity::getMessageKey); Page imMessageHistoryEntities = imMessageHistoryMapper.selectPage(objectPage,and); List messageKeys = imMessageHistoryEntities.getRecords().stream().map(x -> x.getMessageKey()).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(messageKeys)){ + return imMessageHistoryVos; + } List imMessageBodyEntities = imMessageBodyMapper.selectList(new LambdaQueryWrapper().in(ImMessageBodyEntity::getMessageKey, messageKeys)); Map collect = imMessageBodyEntities.stream().collect(Collectors.toMap(ImMessageBodyEntity::getMessageKey, x -> x)); - List imMessageHistoryVos = BeanCopyUtils.copyList(imMessageHistoryEntities.getRecords(), ImMessageHistoryVo.class); + imMessageHistoryVos = BeanCopyUtils.copyList(imMessageHistoryEntities.getRecords(), ImMessageHistoryVo.class); for (ImMessageHistoryVo imMessageHistoryVo : imMessageHistoryVos) { ImMessageBodyEntity imMessageBodyEntity = collect.get(imMessageHistoryVo.getMessageKey()); imMessageHistoryVo.setMessageBody(imMessageBodyEntity.getMessageBody());