IM 聊天记录

This commit is contained in:
2023-11-30 11:03:59 +08:00

View File

@@ -173,19 +173,22 @@ public class MessageSyncService {
}
public List<ImMessageHistoryVo> chatHistory(ChatHistoryReq chatHistoryReq){
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())
.and(x -> x.eq(ImMessageHistoryEntity::getFromId, chatHistoryReq.getUserId()).or().eq(ImMessageHistoryEntity::getToId, chatHistoryReq.getUserId()))
.orderByDesc(ImMessageHistoryEntity::getMessageKey);
Page<ImMessageHistoryEntity> imMessageHistoryEntities = imMessageHistoryMapper.selectPage(objectPage,and);
List<Long> messageKeys = imMessageHistoryEntities.getRecords().stream().map(x -> x.getMessageKey()).collect(Collectors.toList());
if (messageKeys.size() == 0) {
return new ArrayList<ImMessageHistoryVo>();
if (CollectionUtils.isEmpty(messageKeys)){
return imMessageHistoryVos;
}
List<ImMessageBodyEntity> imMessageBodyEntities = imMessageBodyMapper.selectList(new LambdaQueryWrapper<ImMessageBodyEntity>().in(ImMessageBodyEntity::getMessageKey, messageKeys));
Map<Long, ImMessageBodyEntity> collect = imMessageBodyEntities.stream().collect(Collectors.toMap(ImMessageBodyEntity::getMessageKey, x -> x));
List<ImMessageHistoryVo> 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());