mirror of
https://github.com/zongzibinbin/MallChat.git
synced 2026-03-14 06:03:42 +08:00
@@ -35,19 +35,19 @@ public class MessageAdapter {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<ChatMessageResp> buildMsgResp(List<Message> messages, Map<Long, Message> replyMap, List<MessageMark> msgMark, Long receiveUid) {
|
public static List<ChatMessageResp> buildMsgResp(List<Message> messages, List<MessageMark> msgMark, Long receiveUid) {
|
||||||
Map<Long, List<MessageMark>> markMap = msgMark.stream().collect(Collectors.groupingBy(MessageMark::getMsgId));
|
Map<Long, List<MessageMark>> markMap = msgMark.stream().collect(Collectors.groupingBy(MessageMark::getMsgId));
|
||||||
return messages.stream().map(a -> {
|
return messages.stream().map(a -> {
|
||||||
ChatMessageResp resp = new ChatMessageResp();
|
ChatMessageResp resp = new ChatMessageResp();
|
||||||
resp.setFromUser(buildFromUser(a.getFromUid()));
|
resp.setFromUser(buildFromUser(a.getFromUid()));
|
||||||
resp.setMessage(buildMessage(a, replyMap, markMap.getOrDefault(a.getId(), new ArrayList<>()), receiveUid));
|
resp.setMessage(buildMessage(a, markMap.getOrDefault(a.getId(), new ArrayList<>()), receiveUid));
|
||||||
return resp;
|
return resp;
|
||||||
})
|
})
|
||||||
.sorted(Comparator.comparing(a -> a.getMessage().getSendTime()))//帮前端排好序,更方便它展示
|
.sorted(Comparator.comparing(a -> a.getMessage().getSendTime()))//帮前端排好序,更方便它展示
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ChatMessageResp.Message buildMessage(Message message, Map<Long, Message> replyMap, List<MessageMark> marks, Long receiveUid) {
|
private static ChatMessageResp.Message buildMessage(Message message, List<MessageMark> marks, Long receiveUid) {
|
||||||
ChatMessageResp.Message messageVO = new ChatMessageResp.Message();
|
ChatMessageResp.Message messageVO = new ChatMessageResp.Message();
|
||||||
BeanUtil.copyProperties(message, messageVO);
|
BeanUtil.copyProperties(message, messageVO);
|
||||||
messageVO.setSendTime(message.getCreateTime());
|
messageVO.setSendTime(message.getCreateTime());
|
||||||
|
|||||||
@@ -306,15 +306,9 @@ public class ChatServiceImpl implements ChatService {
|
|||||||
if (CollectionUtil.isEmpty(messages)) {
|
if (CollectionUtil.isEmpty(messages)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
Map<Long, Message> replyMap = new HashMap<>();
|
|
||||||
//批量查出回复的消息
|
|
||||||
List<Long> replyIds = messages.stream().map(Message::getReplyMsgId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
||||||
if (CollectionUtil.isNotEmpty(replyIds)) {
|
|
||||||
replyMap = messageDao.listByIds(replyIds).stream().collect(Collectors.toMap(Message::getId, Function.identity()));
|
|
||||||
}
|
|
||||||
//查询消息标志
|
//查询消息标志
|
||||||
List<MessageMark> msgMark = messageMarkDao.getValidMarkByMsgIdBatch(messages.stream().map(Message::getId).collect(Collectors.toList()));
|
List<MessageMark> msgMark = messageMarkDao.getValidMarkByMsgIdBatch(messages.stream().map(Message::getId).collect(Collectors.toList()));
|
||||||
return MessageAdapter.buildMsgResp(messages, replyMap, msgMark, receiveUid);
|
return MessageAdapter.buildMsgResp(messages, msgMark, receiveUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user