feat 聊天记录为空异常
This commit is contained in:
@@ -173,16 +173,20 @@ public class MessageSyncService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<ImMessageHistoryVo> chatHistory(ChatHistoryReq chatHistoryReq){
|
public List<ImMessageHistoryVo> chatHistory(ChatHistoryReq chatHistoryReq){
|
||||||
|
List<ImMessageHistoryVo> imMessageHistoryVos = new ArrayList<>();
|
||||||
Page<ImMessageHistoryEntity> objectPage = new Page<>(chatHistoryReq.getOffset(),chatHistoryReq.getLimit());
|
Page<ImMessageHistoryEntity> objectPage = new Page<>(chatHistoryReq.getOffset(),chatHistoryReq.getLimit());
|
||||||
LambdaQueryWrapper<ImMessageHistoryEntity> and = new LambdaQueryWrapper<ImMessageHistoryEntity>().eq(ImMessageHistoryEntity::getOwnerId, chatHistoryReq.getOperater())
|
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()))
|
.and(x -> x.eq(ImMessageHistoryEntity::getFromId, chatHistoryReq.getUserId()).or().eq(ImMessageHistoryEntity::getToId, chatHistoryReq.getUserId()))
|
||||||
.orderByDesc(ImMessageHistoryEntity::getMessageKey);
|
.orderByDesc(ImMessageHistoryEntity::getMessageKey);
|
||||||
Page<ImMessageHistoryEntity> imMessageHistoryEntities = imMessageHistoryMapper.selectPage(objectPage,and);
|
Page<ImMessageHistoryEntity> imMessageHistoryEntities = imMessageHistoryMapper.selectPage(objectPage,and);
|
||||||
List<Long> messageKeys = imMessageHistoryEntities.getRecords().stream().map(x -> x.getMessageKey()).collect(Collectors.toList());
|
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));
|
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));
|
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) {
|
for (ImMessageHistoryVo imMessageHistoryVo : imMessageHistoryVos) {
|
||||||
ImMessageBodyEntity imMessageBodyEntity = collect.get(imMessageHistoryVo.getMessageKey());
|
ImMessageBodyEntity imMessageBodyEntity = collect.get(imMessageHistoryVo.getMessageKey());
|
||||||
imMessageHistoryVo.setMessageBody(imMessageBodyEntity.getMessageBody());
|
imMessageHistoryVo.setMessageBody(imMessageBodyEntity.getMessageBody());
|
||||||
|
|||||||
Reference in New Issue
Block a user