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()));
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()
.setId(ticket.getId())
.setNo(ticket.getNo())
@ -458,8 +458,11 @@ public class TicketController extends ControllerBase {
.setContent(request.getContent())
.setCreateTime(Instant.now())
.setAttachments(request.getAttachments())
.setImages(request.getImages())
.setQuote(request.getQuote());
.setImages(request.getImages());
if(Objects.nonNull(request.getQuoteId())){
ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId());
message.setQuote(quoteMessage);
}
ticketChatService.addMessage(request.getTicketId(), message);
//推送消息
try {

View File

@ -1,8 +1,12 @@
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.dto.NotifyDTO;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@ -21,6 +25,12 @@ public class TestController extends ControllerBase {
@Resource
private APPSSEManagerService sseManagerService;
@Resource
private TicketEventPublisher ticketEventPublisher;
@Resource
private ITicketService ticketService;
@GetMapping("sse/send")
public ApiResult<Void> sendSse(@RequestParam String userId, @RequestParam String message) throws IOException {
SSEMessageDTO messageDTO = new SSEMessageDTO()
@ -29,4 +39,11 @@ public class TestController extends ControllerBase {
sseManagerService.send(Integer.valueOf(userId), messageDTO);
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);
AppUser user = appUserService.getById(ticket.getUserId());
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());
String handle = ticket.getHandle();
if (StrUtil.isNotBlank(handle)) {
@ -212,7 +212,7 @@ public class TiketController extends ControllerBase {
.setCreateTime(ticket.getCreateTime())
.setAreaName(appArea.getName())
.setSolveTime(ticket.getSolveTime())
.setCompanyName(company.getAgencyCompanyName())
.setCompanyName(StrUtil.join(",",companys.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())))
.setHandle(handle)
.setSolution(ticket.getSolution())
.setSolutionAttachments(StrUtil.isNotBlank(ticket.getSolutionAttachments()) ? StrUtil.split(ticket.getSolutionAttachments(), ",") : Collections.emptyList())
@ -291,12 +291,11 @@ public class TiketController extends ControllerBase {
.setContent(request.getContent())
.setCreateTime(Instant.now())
.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);
.setImages(request.getImages());
if(Objects.nonNull(request.getQuoteId())){
ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId());
message.setQuote(quoteMessage);
}
ticketChatService.addMessage(request.getTicketId(), message);
//推送消息
String handle = ticket.getHandle();

View File

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

View File

@ -1,6 +1,5 @@
package com.nflg.mobilebroken.common.pojo.request;
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ -23,5 +22,5 @@ public class AddChatMessageRequest {
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);
}
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
}
}