From 23e1f093c83aebb12dafebf534cfc8d196ea8284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 13 Apr 2026 08:41:01 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TicketController.java | 12 ++++++--- .../cfs/controller/TicketController.java | 6 +++-- .../common/pojo/dto/UniPushMessageBody.java | 9 +++++++ .../pojo/dto/UniPushMessageCallPayload.java | 9 +++++++ .../gongfu/controller/TicketController.java | 12 ++++++--- .../starter/service/UniPushService.java | 25 +++++++++++++++++++ 6 files changed, 63 insertions(+), 10 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 9f665f93..e46aa1f3 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 @@ -1434,10 +1434,12 @@ public class TicketController extends ControllerBase { .setReceiverId(receiveUserFrom + "-uid-" + receiveUserId) .setSendData(new UniPushMessageBody() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setPayload(new UniPushMessageCallPayload() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setTicketId(String.valueOf(ticketId)) .setTicketType(0) .setUserId(adminUser.getId()) @@ -1485,10 +1487,12 @@ public class TicketController extends ControllerBase { .setReceiverId("admin-uid-" + userId) .setSendData(new UniPushMessageBody() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setPayload(new UniPushMessageCallPayload() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setTicketId(String.valueOf(request.getTicketId())) .setTicketType(0) .setUserId(adminUser.getId()) diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java index cd0791a2..fa3d3c28 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java @@ -635,10 +635,12 @@ public class TicketController extends ControllerBase { .setReceiverId("admin-uid-" + handlerUserId) .setSendData(new UniPushMessageBody() .setTitle("视频通话") - .setContent(appUser.getName() + "请求与您视频通话") + .setContentPre(appUser.getName()) + .setContent("请求与您视频通话") .setPayload(new UniPushMessageCallPayload() .setTitle("视频通话") - .setContent(appUser.getName() + "请求与您视频通话") + .setContentPre(appUser.getName()) + .setContent("请求与您视频通话") .setTicketId(String.valueOf(ticketId)) .setTicketType(ticket.getType()) .setUserId(appUser.getId()) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageBody.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageBody.java index 1b5fa084..aeca8e6c 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageBody.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageBody.java @@ -3,12 +3,21 @@ package com.nflg.mobilebroken.common.pojo.dto; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Objects; + @Data @Accessors(chain = true) public class UniPushMessageBody { private String title; + // 消息内容前缀 + private String contentPre; + + public String getContentPre() { + return Objects.isNull(contentPre) ? "" : contentPre + " "; + } + private String content; private Object payload; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java index e677d50e..5ef4b374 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/dto/UniPushMessageCallPayload.java @@ -3,6 +3,8 @@ package com.nflg.mobilebroken.common.pojo.dto; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Objects; + @Data @Accessors(chain = true) public class UniPushMessageCallPayload { @@ -29,6 +31,13 @@ public class UniPushMessageCallPayload { private String title; + // 消息内容前缀 + private String contentPre; + + public String getContentPre() { + return Objects.isNull(contentPre) ? "" : contentPre; + } + private String content; private String receiverId; diff --git a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java index 256f99eb..800c9f16 100644 --- a/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java +++ b/nflg-mobilebroken-gongfu/src/main/java/com/nflg/mobilebroken/gongfu/controller/TicketController.java @@ -1404,10 +1404,12 @@ public class TicketController extends ControllerBase { .setReceiverId(receiveUserFrom + "-uid-" + receiveUserId) .setSendData(new UniPushMessageBody() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setPayload(new UniPushMessageCallPayload() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setTicketId(String.valueOf(ticketId)) .setTicketType(1) .setUserId(adminUser.getId()) @@ -1455,10 +1457,12 @@ public class TicketController extends ControllerBase { .setReceiverId("admin-uid-" + userId) .setSendData(new UniPushMessageBody() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setPayload(new UniPushMessageCallPayload() .setTitle("视频通话") - .setContent(adminUser.getUserName() + "请求与您视频通话") + .setContentPre(adminUser.getUserName()) + .setContent("请求与您视频通话") .setTicketId(String.valueOf(request.getTicketId())) .setTicketType(1) .setUserId(adminUser.getId()) diff --git a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java index 111656c1..3da9d7e9 100644 --- a/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java +++ b/nflg-mobilebroken-starter/src/main/java/com/nflg/mobilebroken/starter/service/UniPushService.java @@ -1,13 +1,17 @@ package com.nflg.mobilebroken.starter.service; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO; import com.nflg.mobilebroken.common.pojo.dto.UniPushMessage; import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageBody; import com.nflg.mobilebroken.common.pojo.dto.UniPushMessageCallPayload; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.AppUserUtil; +import com.nflg.mobilebroken.common.util.MultilingualUtil; +import com.nflg.mobilebroken.starter.service.impl.AliYunTranslate; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; @@ -15,6 +19,8 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; +import javax.annotation.Resource; +import java.util.Objects; import java.util.concurrent.CompletableFuture; @Slf4j @@ -24,8 +30,12 @@ public class UniPushService { @Value("${uniapp.cloud.push.url}") private String url; + @Resource + private AliYunTranslate aliYunTranslate; + @Async("httpExecutor") public CompletableFuture send(UniPushMessage message) { + translate(message); log.info("发送uniapp消息:{}", JSONUtil.toJsonStr(message)); RestTemplate restTemplate = new RestTemplate(); ResponseEntity response = restTemplate.postForEntity(url, message, String.class); @@ -33,6 +43,21 @@ public class UniPushService { return CompletableFuture.completedFuture(null); } + private void translate(UniPushMessage message) { + String languageCode = MultilingualUtil.getLanguage(); + String aliyunCode = Constant.LANGUAGE_ALIYUN_MAP.get(languageCode); + if (StrUtil.isNotBlank(aliyunCode) && !StrUtil.equals(languageCode, Constant.DEFAULT_LANGUAGE_CODE)) { + UniPushMessageBody body = message.getSendData(); + body.setTitle(aliYunTranslate.translateWord(body.getTitle(), aliyunCode)); + body.setContent(body.getContentPre() + aliYunTranslate.translateWord(body.getContent(), aliyunCode)); + if (body.getPayload() instanceof UniPushMessageCallPayload) { + UniPushMessageCallPayload payload = (UniPushMessageCallPayload) body.getPayload(); + payload.setTitle(aliYunTranslate.translateWord(payload.getTitle(), aliyunCode)); + payload.setContent(payload.getContentPre() + aliYunTranslate.translateWord(payload.getContent(), aliyunCode)); + } + } + } + public void sendTicketMessage(String from, String to, ChatMessageDTO data) { send(new UniPushMessage() .setSenderId(from)