From 5370a20d4ab5a47a29d41d9fdabfdb4927d57541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 5 Mar 2025 19:06:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TicketController.java | 14 +++++++++++++- .../cfs/controller/TiketController.java | 12 ++++++++++++ .../mobilebroken/cfs/service/SsePushService.java | 11 +++++++++++ .../service/impl/AppUserApplyforServiceImpl.java | 4 ++-- .../service/impl/DictionaryItemServiceImpl.java | 3 --- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index 833f06cb..c4cc5a18 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -363,6 +363,18 @@ public class TicketController extends ControllerBase { for (Integer id : ids){ Ticket ticket=ticketService.rejectTicket(id); // ticketEventPublisher.publishTicketCompleteEvent(ticket); + ChatMessageDTO message = new ChatMessageDTO() + .setId(cn.hutool.core.util.IdUtil.getSnowflakeNextIdStr()) + .setFrom("system") + .setTicketState(ticket.getState()) + .setSenderId(0) + .setSenderName("服务助手") + .setContent("工单驳回
工单被驳回,请继续跟进处理。") + .setCreateTime(Instant.now()); + ticketChatService.addMessage(id, message); + //推送消息 + ssePushService.sendTicketMessageToAdmin(id,message); + ssePushService.sendTicketMessageToApp(id,message); } return ApiResult.success(); } @@ -501,7 +513,7 @@ public class TicketController extends ControllerBase { AppUser user = appUserService.getById(ticket.getUserId()); String areaName = ""; if (user.getIsPrimary()){ - areaName=adminAreaService.getById(user.getAreaId()).getAreaName(); + areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); }else if (Objects.nonNull(user.getAreaId())){ areaName = appAreaService.getById(user.getAreaId()).getName(); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java index 97a37d4d..1cfac088 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java @@ -355,6 +355,18 @@ public class TiketController extends ControllerBase { public ApiResult reopenTicket(@Valid @RequestParam @NotNull Integer id) { Ticket ticket=ticketService.reopen(id); ticketEventPublisher.publishTicketReopenEvent(ticket, MultilingualUtil.getLanguage(), MultilingualUtil.getZone()); + ChatMessageDTO message = new ChatMessageDTO() + .setId(cn.hutool.core.util.IdUtil.getSnowflakeNextIdStr()) + .setFrom("system") + .setTicketState(ticket.getState()) + .setSenderId(0) + .setSenderName("服务助手") + .setContent("重启议题
用户重启议题,请继续关注此工单信息。") + .setCreateTime(Instant.now()); + ticketChatService.addMessage(id, message); + //推送消息 + ssePushService.sendTicketMessageToAdmin(id,message); + ssePushService.sendTicketMessageToApp(id,message); return ApiResult.success(); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/service/SsePushService.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/service/SsePushService.java index 7956b70c..375f5917 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/service/SsePushService.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/service/SsePushService.java @@ -37,6 +37,17 @@ public class SsePushService { } } + public void sendTicketMessageToApp(Integer ticketId, ChatMessageDTO message){ + try { + PushRequest request=new PushRequest().setTicketId(ticketId).setMessage(buildMessage(message)); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity response = restTemplate.postForEntity(sseUrl+"/sse/app/push",request, ApiResult.class); + log.debug("发送消息结果:{}", JSONUtil.toJsonStr(response.getBody())); + } catch (Exception e) { + log.error("发送消息出错", e); + } + } + private ChatMessageVO buildMessage(ChatMessageDTO message){ String zone = MultilingualUtil.getZone(); ZoneId zoneId = ZoneId.of(zone); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java index 7b44c71a..aae54b29 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java @@ -172,9 +172,9 @@ public class AppUserApplyforServiceImpl extends ServiceImpl areas=customerService.getAreas(Arrays.stream(appUser.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())); vo.setUser(new AppUserVO() - .setAreaName(area.getAreaName()) + .setAreaName(StrUtil.join(",",areas)) .setSalesUserName(appUser.getSalesUserName()) .setState(1) .setTitle(Objects.isNull(appUser.getTitleId()) ? "" : positionService.getById(appUser.getTitleId()).getPositionName()) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java index 0b64320f..79246cc6 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java @@ -105,9 +105,6 @@ public class DictionaryItemServiceImpl extends ServiceImpl forAdd = new ArrayList<>(); List forUpdate = new ArrayList<>(); for (TranslateMap translate : request.getLanguages()) { - if(StrUtil.isBlank(translate.getValue())){ - continue; - } DictionaryItemTranslate t = new DictionaryItemTranslate() .setDictionaryItemId(id) .setLanguageCode(translate.getCode())