diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java
index 066e8349..9cf97fee 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/annotation/EnableRyFeignClients.java
@@ -17,7 +17,7 @@ public @interface EnableRyFeignClients
{
String[] value() default {};
- String[] basePackages() default { "com.ruoyi" };
+ String[] basePackages() default { "com.ruoyi" ,"com.xjs"};
Class>[] basePackageClasses() default {};
diff --git a/xjs-business/pom.xml b/xjs-business/pom.xml
index df25d204..0c0c494b 100644
--- a/xjs-business/pom.xml
+++ b/xjs-business/pom.xml
@@ -21,6 +21,7 @@
11
11
3.4.3.4
+ 5.7.17
@@ -92,6 +93,25 @@
${mybatisplus.version}
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/client/BaiduFeignClient.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/client/BaiduFeignClient.java
new file mode 100644
index 00000000..0fd1fbf8
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/client/BaiduFeignClient.java
@@ -0,0 +1,19 @@
+package com.xjs.english.client;
+
+import com.xjs.english.domain.qo.translation.BaiDuTranslationQo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author xiejs
+ * @desc
+ * @create 2021-12-25
+ */
+@FeignClient(name = "baidu",url = "http://api.fanyi.baidu.com/api/trans/vip/translate?")
+public interface BaiduFeignClient {
+
+ @PostMapping(headers = {"Content-Type=application/x-www-form-urlencoded"})
+ String translationApi(BaiDuTranslationQo qo);
+
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/client/YouDaoFeignClient.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/client/YouDaoFeignClient.java
new file mode 100644
index 00000000..fa4e9c69
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/client/YouDaoFeignClient.java
@@ -0,0 +1,21 @@
+package com.xjs.english.client;
+
+import com.alibaba.fastjson.JSONObject;
+import com.xjs.english.domain.qo.translation.YouDaoTranslationQo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author xiejs
+ * @desc
+ * @create 2021-12-25
+ */
+@FeignClient(name = "youdao",url = "http://fanyi.youdao.com/translate?")
+public interface YouDaoFeignClient {
+
+ @GetMapping( headers ={ "Accept-Encoding=''"})
+ JSONObject translationApi(@SpringQueryMap YouDaoTranslationQo qo);
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/config/BaiduProperties.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/config/BaiduProperties.java
new file mode 100644
index 00000000..7153600b
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/config/BaiduProperties.java
@@ -0,0 +1,28 @@
+package com.xjs.english.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author xiejs
+ * @desc
+ * @create 2021-12-25
+ */
+@Data
+@ConfigurationProperties(prefix = "baidu.open")
+@Component
+public class BaiduProperties {
+
+ /**
+ * APP ID
+ */
+ private String appId;
+
+ /**
+ * 密钥
+ */
+ private String key;
+
+
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/config/FeignConfig.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/config/FeignConfig.java
new file mode 100644
index 00000000..48a3f614
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/config/FeignConfig.java
@@ -0,0 +1,22 @@
+package com.xjs.english.config;
+
+import feign.Logger;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author xiejs
+ * @desc
+ * @create 2021-12-25
+ */
+@Configuration
+public class FeignConfig{
+ /**
+ * 配置日志输出
+ * @return
+ */
+ @Bean
+ Logger.Level feignLoggerLevel() {
+ return Logger.Level.FULL;
+ }
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/consts/TranslationTypeConst.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/consts/TranslationTypeConst.java
new file mode 100644
index 00000000..b1ed689b
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/consts/TranslationTypeConst.java
@@ -0,0 +1,12 @@
+package com.xjs.english.consts;
+
+/**
+ * @author xiejs
+ * @desc
+ * @create 2021-12-25
+ */
+public interface TranslationTypeConst {
+ Integer BAIDU = 1;
+ Integer YOUDAO = 2;
+ Integer GOOGLE = 3;
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/controller/TranslationController.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/controller/TranslationController.java
new file mode 100644
index 00000000..05ac396a
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/controller/TranslationController.java
@@ -0,0 +1,39 @@
+package com.xjs.english.controller;
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.xjs.english.domain.qo.translation.TranslationQo;
+import com.xjs.english.domain.vo.translation.TranslationVo;
+import com.xjs.english.service.TranslationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import static com.xjs.english.consts.TranslationTypeConst.BAIDU;
+import static com.xjs.english.consts.TranslationTypeConst.YOUDAO;
+
+/**
+ * @author xiejs
+ * @desc
+ * @create 2021-12-25
+ */
+@RestController
+@RequestMapping("translation")
+public class TranslationController {
+
+ @Autowired
+ private TranslationService youDaoTranslationServiceImpl;
+ @Autowired
+ private TranslationService baiDuTranslationServiceImpl;
+
+ @PostMapping
+ public AjaxResult translation(@Validated @RequestBody TranslationQo translationQo) {
+ TranslationVo translationVo=new TranslationVo();
+ if (BAIDU.equals(translationQo.getTranslationType())) {
+ translationVo = baiDuTranslationServiceImpl.translationApi(translationQo);
+ }
+ if (YOUDAO.equals(translationQo.getTranslationType())) {
+ translationVo = youDaoTranslationServiceImpl.translationApi(translationQo);
+ }
+ return AjaxResult.success(translationVo);
+ }
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/BaiDuTranslationQo.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/BaiDuTranslationQo.java
new file mode 100644
index 00000000..d9d22137
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/BaiDuTranslationQo.java
@@ -0,0 +1,48 @@
+package com.xjs.english.domain.qo.translation;
+
+import lombok.Data;
+
+/**
+ * @author xiejs
+ * @desc 百度翻译条件
+ * @create 2021-12-25
+ */
+@Data
+public class BaiDuTranslationQo {
+ /**
+ * appid
+ */
+ private String appid;
+
+ /**
+ * 密钥
+ */
+ private String key;
+
+ /**
+ * 需要翻译的词
+ */
+ private String q;
+
+ /**
+ * 翻译目标语言
+ */
+ private String to ;
+
+
+ /**
+ * 翻译源语言
+ */
+ private String from = "auto";
+
+
+ /**
+ * 盐(随机数)
+ */
+ private String salt = "xjsisyourfatter";
+
+ /**
+ * 签名(appid+query+salt+key的MD5值)
+ */
+ private String sign;
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/TranslationQo.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/TranslationQo.java
new file mode 100644
index 00000000..55af146d
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/TranslationQo.java
@@ -0,0 +1,36 @@
+package com.xjs.english.domain.qo.translation;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author xiejs
+ * @desc 翻译条件
+ * @create 2021-12-25
+ */
+@Data
+public class TranslationQo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 需要翻译的词(前端可以指定翻译词)
+ */
+ @NotBlank(message = "翻译内容不能为空")
+ private String q="你傻吗,大傻逼?嗯,哈哈哈";
+
+ /**
+ * 翻译目标语言(前端可以指定目标语言)
+ */
+ private String to = "auto";
+
+ /**
+ * 翻译api类型(例如:有道、谷歌、百度等)
+ * 1、百度 2、有道 3、谷歌 4 ...
+ */
+ @NotNull(message = "翻译api类型不能为空")
+ private Integer translationType;
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/YouDaoTranslationQo.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/YouDaoTranslationQo.java
new file mode 100644
index 00000000..4a38538e
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/qo/translation/YouDaoTranslationQo.java
@@ -0,0 +1,30 @@
+package com.xjs.english.domain.qo.translation;
+
+import lombok.Data;
+
+/**
+ * @author xiejs
+ * @desc 有道翻译条件实体
+ * @create 2021-12-25
+ */
+@Data
+public class YouDaoTranslationQo{
+
+ /**
+ * 响应类型
+ */
+ private String doctype="json";
+
+ /**
+ * 目标语言(有道的目标语言无效,中转英、英转中)
+ */
+ private String type;
+
+ /**
+ * 翻译的内容
+ */
+ private String i ;
+
+
+
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/vo/translation/GoogleTranslationVo.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/vo/translation/GoogleTranslationVo.java
new file mode 100644
index 00000000..17460360
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/vo/translation/GoogleTranslationVo.java
@@ -0,0 +1,11 @@
+package com.xjs.english.domain.vo.translation;
+
+/**
+ * @author xiejs
+ * @desc 谷歌翻译实体
+ * @create 2021-12-25
+ */
+public class GoogleTranslationVo extends TranslationVo {
+
+
+}
diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/vo/translation/TranslationVo.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/vo/translation/TranslationVo.java
new file mode 100644
index 00000000..3b653b00
--- /dev/null
+++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/english/domain/vo/translation/TranslationVo.java
@@ -0,0 +1,52 @@
+package com.xjs.english.domain.vo.translation;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author xiejs
+ * @desc 翻译实体类VO
+ * @create 2021-12-25
+ */
+@Data
+public class TranslationVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 源语言
+ */
+ private String from;
+
+ /**
+ * 目标语言
+ */
+ private String to;
+
+ /**
+ * 翻译结果
+ */
+ private List