feat 聊天记录为空异常
This commit is contained in:
@@ -173,16 +173,20 @@ 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 (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());
|
||||
|
||||
Reference in New Issue
Block a user