feat: 一些调整

This commit is contained in:
曹鹏飞 2025-02-16 23:03:45 +08:00
parent f3179d65c5
commit 7d5e289692
6 changed files with 52 additions and 13 deletions

View File

@ -349,7 +349,7 @@ public class TicketController extends ControllerBase {
List<AdminUser> adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList())); List<AdminUser> adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList()));
handle = adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(",")); handle = adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(","));
} }
AppUser primaryUser = appUserService.getPrimaryByCompanyId(user.getCompanyId()); AppUser primaryUser = user.getIsPrimary()?user:appUserService.getPrimaryByCompanyId(user.getCompanyId());
TicketInfoVO vo = new TicketInfoVO() TicketInfoVO vo = new TicketInfoVO()
.setId(ticket.getId()) .setId(ticket.getId())
.setNo(ticket.getNo()) .setNo(ticket.getNo())
@ -458,8 +458,11 @@ public class TicketController extends ControllerBase {
.setContent(request.getContent()) .setContent(request.getContent())
.setCreateTime(Instant.now()) .setCreateTime(Instant.now())
.setAttachments(request.getAttachments()) .setAttachments(request.getAttachments())
.setImages(request.getImages()) .setImages(request.getImages());
.setQuote(request.getQuote()); if(Objects.nonNull(request.getQuoteId())){
ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId());
message.setQuote(quoteMessage);
}
ticketChatService.addMessage(request.getTicketId(), message); ticketChatService.addMessage(request.getTicketId(), message);
//推送消息 //推送消息
try { try {

View File

@ -1,8 +1,12 @@
package com.nflg.mobilebroken.cfs.controller; package com.nflg.mobilebroken.cfs.controller;
import com.nflg.mobilebroken.cfs.publisher.TicketEventPublisher;
import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.pojo.dto.NotifyDTO; import com.nflg.mobilebroken.common.pojo.dto.NotifyDTO;
import com.nflg.mobilebroken.common.pojo.dto.SSEMessageDTO; import com.nflg.mobilebroken.common.pojo.dto.SSEMessageDTO;
import com.nflg.mobilebroken.common.util.MultilingualUtil;
import com.nflg.mobilebroken.repository.entity.Ticket;
import com.nflg.mobilebroken.repository.service.ITicketService;
import com.nflg.mobilebroken.starter.service.impl.APPSSEManagerService; import com.nflg.mobilebroken.starter.service.impl.APPSSEManagerService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -21,6 +25,12 @@ public class TestController extends ControllerBase {
@Resource @Resource
private APPSSEManagerService sseManagerService; private APPSSEManagerService sseManagerService;
@Resource
private TicketEventPublisher ticketEventPublisher;
@Resource
private ITicketService ticketService;
@GetMapping("sse/send") @GetMapping("sse/send")
public ApiResult<Void> sendSse(@RequestParam String userId, @RequestParam String message) throws IOException { public ApiResult<Void> sendSse(@RequestParam String userId, @RequestParam String message) throws IOException {
SSEMessageDTO messageDTO = new SSEMessageDTO() SSEMessageDTO messageDTO = new SSEMessageDTO()
@ -29,4 +39,11 @@ public class TestController extends ControllerBase {
sseManagerService.send(Integer.valueOf(userId), messageDTO); sseManagerService.send(Integer.valueOf(userId), messageDTO);
return ApiResult.success(); return ApiResult.success();
} }
@GetMapping("sss")
public ApiResult sss(){
Ticket ticket =ticketService.getById(8);
ticketEventPublisher.publishTicketCreateEvent(ticket, MultilingualUtil.getLanguage(), MultilingualUtil.getZone());
return ApiResult.success();
}
} }

View File

@ -187,7 +187,7 @@ public class TiketController extends ControllerBase {
Ticket ticket = ticketService.getById(id); Ticket ticket = ticketService.getById(id);
AppUser user = appUserService.getById(ticket.getUserId()); AppUser user = appUserService.getById(ticket.getUserId());
AppArea appArea = appAreaService.getById(user.getAreaId()); AppArea appArea = appAreaService.getById(user.getAreaId());
TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId())); List<TBaseCustomer> companys = customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo()); DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
String handle = ticket.getHandle(); String handle = ticket.getHandle();
if (StrUtil.isNotBlank(handle)) { if (StrUtil.isNotBlank(handle)) {
@ -212,7 +212,7 @@ public class TiketController extends ControllerBase {
.setCreateTime(ticket.getCreateTime()) .setCreateTime(ticket.getCreateTime())
.setAreaName(appArea.getName()) .setAreaName(appArea.getName())
.setSolveTime(ticket.getSolveTime()) .setSolveTime(ticket.getSolveTime())
.setCompanyName(company.getAgencyCompanyName()) .setCompanyName(StrUtil.join(",",companys.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())))
.setHandle(handle) .setHandle(handle)
.setSolution(ticket.getSolution()) .setSolution(ticket.getSolution())
.setSolutionAttachments(StrUtil.isNotBlank(ticket.getSolutionAttachments()) ? StrUtil.split(ticket.getSolutionAttachments(), ",") : Collections.emptyList()) .setSolutionAttachments(StrUtil.isNotBlank(ticket.getSolutionAttachments()) ? StrUtil.split(ticket.getSolutionAttachments(), ",") : Collections.emptyList())
@ -291,12 +291,11 @@ public class TiketController extends ControllerBase {
.setContent(request.getContent()) .setContent(request.getContent())
.setCreateTime(Instant.now()) .setCreateTime(Instant.now())
.setAttachments(request.getAttachments()) .setAttachments(request.getAttachments())
.setImages(request.getImages()) .setImages(request.getImages());
.setQuote(request.getQuote()); if(Objects.nonNull(request.getQuoteId())){
// ticketChatService.pushMessage(request.getTicketId(),message); ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId());
// TicketChat chat=ticketChatService.findByTicketId(request.getTicketId()); message.setQuote(quoteMessage);
// chat.getMessages().add(message); }
// ticketChatService.save(chat);
ticketChatService.addMessage(request.getTicketId(), message); ticketChatService.addMessage(request.getTicketId(), message);
//推送消息 //推送消息
String handle = ticket.getHandle(); String handle = ticket.getHandle();

View File

@ -29,6 +29,7 @@ public class TicketCreateEvent extends ApplicationEvent {
private final Ticket ticket; private final Ticket ticket;
private final String language; private final String language;
private final String zone; private final String zone;
@Resource @Resource
private IDictionaryItemTranslateService dictionaryItemTranslateService; private IDictionaryItemTranslateService dictionaryItemTranslateService;
@Resource @Resource

View File

@ -1,6 +1,5 @@
package com.nflg.mobilebroken.common.pojo.request; package com.nflg.mobilebroken.common.pojo.request;
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -23,5 +22,5 @@ public class AddChatMessageRequest {
private List<String> images; private List<String> images;
// 引用的消息 // 引用的消息
private ChatMessageDTO quote; private Long quoteId;
} }

View File

@ -74,4 +74,24 @@ public class TicketChatService {
// 执行更新操作 // 执行更新操作
mongoTemplate.findAndModify(query, update, TicketChatDTO.class); mongoTemplate.findAndModify(query, update, TicketChatDTO.class);
} }
public ChatMessageDTO getMessage(Integer ticketId, Long messageId) {
// 构建查询条件
Query query = new Query();
query.addCriteria(Criteria.where("ticketId").is(ticketId));
// 查询 TicketChatDTO
TicketChatDTO ticketChat = mongoTemplate.findOne(query, TicketChatDTO.class);
// TicketChatDTO 中提取 ChatMessageDTO
if (ticketChat != null) {
for (ChatMessageDTO message : ticketChat.getMessages()) {
if (messageId.equals(message.getId())) {
return message;
}
}
}
return null; // 如果未找到返回 null
}
} }