【优化】添加多语言支持
This commit is contained in:
parent
7e653786f8
commit
23e1f093c8
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -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<Void> send(UniPushMessage message) {
|
||||
translate(message);
|
||||
log.info("发送uniapp消息:{}", JSONUtil.toJsonStr(message));
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
ResponseEntity<String> 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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue