From 576be05dfa53cd528fe7daeb090ff4581afee4eb Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Thu, 30 Dec 2021 00:38:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=B4=E6=98=8E=EF=BC=9A1=E3=80=81=E8=8B=B1?= =?UTF-8?q?=E8=AF=AD=E6=A8=A1=E5=9D=97=E6=B7=BB=E5=8A=A0=E5=8D=95=E8=AF=8D?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?feign=E8=BF=9C=E7=A8=8B=E8=B0=83=E7=94=A8=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=AE=8C=E6=88=90=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../english/RemoteTranslationFeign.java | 25 +++++ .../english/domain/TranslationVo.java | 96 +++++++++++++++++++ .../factory/RemoteTranslationFactory.java | 26 +++++ .../src/views/business/english/word/index.vue | 61 ++++++------ .../java/com/xjs}/exception/ApiException.java | 2 +- .../com/xjs}/exception/BusinessException.java | 2 +- .../main/java/com/xjs/utils/ChineseUtil.java | 66 +++++++++++++ .../java/com/xjs/utils/ChineseUtilTest.java | 20 ++++ .../java/com/xjs/word/domain/EnglishWord.java | 7 ++ .../service/impl/EnglishWordServiceImpl.java | 38 ++++++++ .../impl/TianXingJDTCCopyWritingFactory.java | 2 +- .../impl/TianXingMMMYCopyWritingFactory.java | 2 +- .../impl/TianXingPYQCopyWritingFactory.java | 2 +- .../impl/TianXingWYYCopyWritingFactory.java | 2 +- .../controller/TranslationController.java | 48 +++++++++- .../factory/impl/BaiDuTranslationFactory.java | 2 +- .../impl/YouDaoTranslationFactory.java | 2 +- 17 files changed, 362 insertions(+), 41 deletions(-) create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteTranslationFeign.java create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/TranslationVo.java create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteTranslationFactory.java rename xjs-business/{xjs-business-openapi/src/main/java/com/xjs/common => xjs-business-common/src/main/java/com/xjs}/exception/ApiException.java (92%) rename xjs-business/{xjs-business-openapi/src/main/java/com/xjs/common => xjs-business-common/src/main/java/com/xjs}/exception/BusinessException.java (92%) create mode 100644 xjs-business/xjs-business-common/src/main/java/com/xjs/utils/ChineseUtil.java create mode 100644 xjs-business/xjs-business-common/src/test/java/com/xjs/utils/ChineseUtilTest.java diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteTranslationFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteTranslationFeign.java new file mode 100644 index 00000000..8710dd33 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteTranslationFeign.java @@ -0,0 +1,25 @@ +package com.xjs.business.english; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.xjs.business.english.domain.TranslationVo; +import com.xjs.business.english.factory.RemoteTranslationFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @author xiejs + * @desc rpc远程调用其他服务翻译接口 + * @create 2021-12-29 + */ +@FeignClient(contextId = "remoteTranslationFeign", + value = ServiceNameConstants.BUSINESS_OPENAPI_SERVICE, + fallbackFactory = RemoteTranslationFactory.class) +public interface RemoteTranslationFeign { + + @GetMapping(value = "/translation/forRPC") + //get请求传递单个参数需要此注解 + R translation(@RequestParam("content") String content); + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/TranslationVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/TranslationVo.java new file mode 100644 index 00000000..9a1f6531 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/TranslationVo.java @@ -0,0 +1,96 @@ +package com.xjs.business.english.domain; + + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * @author xiejs + * @desc 翻译实体类VO + * @create 2021-12-25 + */ +public class TranslationVo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 源语言 + */ + private String from; + + /** + * 目标语言 + */ + private String to; + + /** + * 翻译结果 + */ + private List> transResult; + + /** + * 是否错误 + */ + private Long errorCode; + + + /** + * 运行时间,单位毫秒 + */ + private Long elapsedTime; + + + /** + * 语言类型 + */ + private String type; + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public List> getTransResult() { + return transResult; + } + + public void setTransResult(List> transResult) { + this.transResult = transResult; + } + + public Long getErrorCode() { + return errorCode; + } + + public void setErrorCode(Long errorCode) { + this.errorCode = errorCode; + } + + public Long getElapsedTime() { + return elapsedTime; + } + + public void setElapsedTime(Long elapsedTime) { + this.elapsedTime = elapsedTime; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteTranslationFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteTranslationFactory.java new file mode 100644 index 00000000..cb28ef4d --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteTranslationFactory.java @@ -0,0 +1,26 @@ +package com.xjs.business.english.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.factory.RemoteFileFallbackFactory; +import com.xjs.business.english.RemoteTranslationFeign; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author xiejs + * @desc 调用翻译接口降级处理 + * @create 2021-12-29 + */ +@Component +public class RemoteTranslationFactory implements FallbackFactory { + + private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class); + + @Override + public RemoteTranslationFeign create(Throwable cause) { + log.error("api模块翻译服务调用失败:{}", cause.getMessage()); + return content -> R.fail("翻译服务调用失败" + cause.getMessage()); + } +} diff --git a/ruoyi-ui/src/views/business/english/word/index.vue b/ruoyi-ui/src/views/business/english/word/index.vue index c73be4f9..ee4391b7 100644 --- a/ruoyi-ui/src/views/business/english/word/index.vue +++ b/ruoyi-ui/src/views/business/english/word/index.vue @@ -46,7 +46,8 @@ size="mini" @click="handleAdd" v-hasPermi="['english:word:add']" - >新增 + >新增 + 修改 + >修改 + 删除 + >删除 + 导出 + >导出 + - + - +