fix: 修复工单消息的一些问题

This commit is contained in:
曹鹏飞 2025-02-14 19:39:02 +08:00
parent 0607c578e0
commit ee02a03772
2 changed files with 37 additions and 14 deletions

View File

@ -1,6 +1,7 @@
package com.nflg.mobilebroken.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.util.StrUtil;
import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
@ -38,6 +39,8 @@ import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@ -390,16 +393,35 @@ public class TicketController extends ControllerBase {
.setAttachments(request.getAttachments())
.setImages(request.getImages())
.setQuote(request.getQuote());
// ticketChatService.pushMessage(request.getTicketId(),message);
// TicketChat chat=ticketChatService.findByTicketId(request.getTicketId());
// chat.getMessages().add(message);
// ticketChatService.save(chat);
ticketChatService.addMessage(request.getTicketId(), message);
//推送消息
try {
String zone = MultilingualUtil.getZone();
ZoneId zoneId = ZoneId.of(Objects.isNull(zone) ? "Asia/Shanghai" : zone);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).withZone(zoneId);
ChatMessageVO messageVO = new ChatMessageVO()
.setId(message.getId())
.setFrom(message.getFrom())
.setSenderId(message.getSenderId())
.setSenderName(message.getSenderName())
.setSenderAvatar(message.getSenderAvatar())
.setContent(message.getContent())
.setCreateTime(formatter.format(message.getCreateTime()))
.setImages(message.getImages())
.setAttachments(message.getAttachments())
.setQuote(Objects.isNull(message.getQuote()) ? null : new ChatMessageVO()
.setId(message.getQuote().getId())
.setFrom(message.getQuote().getFrom())
.setSenderId(message.getQuote().getSenderId())
.setSenderName(message.getQuote().getSenderName())
.setSenderAvatar(message.getQuote().getSenderAvatar())
.setContent(message.getQuote().getContent())
.setAttachments(message.getQuote().getAttachments())
.setImages(message.getQuote().getImages())
.setCreateTime(formatter.format(message.getQuote().getCreateTime())));
SSEMessageDTO messageDTO = new SSEMessageDTO()
.setType(1)
.setData(message);
.setData(messageVO);
sseManagerService.send(ticket.getUserId(), messageDTO);
} catch (IOException e) {
log.error("发送SSE消息出错", e);

View File

@ -50,15 +50,16 @@ public class TicketChatService {
.setImages(m.getImages())
.setCreateTime(formatter.format(m.getCreateTime()))
.setQuote(Objects.isNull(m.getQuote()) ? null : new ChatMessageVO()
.setId(m.getId())
.setFrom(m.getFrom())
.setSenderId(m.getSenderId())
.setSenderName(m.getSenderName())
.setSenderAvatar(m.getSenderAvatar())
.setContent(m.getContent())
.setAttachments(m.getAttachments())
.setImages(m.getImages()))
.setCreateTime(formatter.format(m.getCreateTime())))
.setId(m.getQuote().getId())
.setFrom(m.getQuote().getFrom())
.setSenderId(m.getQuote().getSenderId())
.setSenderName(m.getQuote().getSenderName())
.setSenderAvatar(m.getQuote().getSenderAvatar())
.setContent(m.getQuote().getContent())
.setAttachments(m.getQuote().getAttachments())
.setImages(m.getQuote().getImages())
.setCreateTime(formatter.format(m.getQuote().getCreateTime())))
)
.collect(Collectors.toList());
}
}