浏览代码

询盘内容翻译,亚马逊翻译接口

chenlei1231 5 月之前
父节点
当前提交
1d050ba816

+ 6 - 0
jeecg-module-system/jeecg-system-biz/pom.xml

@@ -106,6 +106,12 @@
 			<artifactId>dataforseo-client</artifactId>
 			<version>1.0.19</version>
 		</dependency>
+
+		<dependency>
+			<groupId>com.amazonaws</groupId>
+			<artifactId>aws-java-sdk</artifactId>
+			<version>1.11.1000</version>
+		</dependency>
     </dependencies>
 
 </project>

+ 38 - 38
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/common/constant/AdwebConstant.java

@@ -2,85 +2,85 @@ package org.jeecg.modules.adweb.common.constant;
 
 public interface AdwebConstant {
     /*网站类型(1模板,2站点)*/
-    public static final Integer TEMPLATE = 1;
-    public static final Integer SITE = 2;
-    public static final Integer WPTEMPLATE = 3;
+   Integer TEMPLATE = 1;
+   Integer SITE = 2;
+   Integer WPTEMPLATE = 3;
 
     /*网站状态 当前状态:0:已删除;1:正常; 2:未发布*/
-    public static final Integer SITE_DEL = 0;
+   Integer SITE_DEL = 0;
 
-    public static final Integer SITE_PUBLISH = 1;
+   Integer SITE_PUBLISH = 1;
 
-    public static final Integer SITE_UNPUBLISH = 2;
+   Integer SITE_UNPUBLISH = 2;
 
     /*菜单状态*/
-    public static final Integer MENU_DEL  = 1;
+   Integer MENU_DEL  = 1;
 
     /*模板配置状态*/
-    public static final Integer TEMPLATE_SETTING_DEL  = 1;
+   Integer TEMPLATE_SETTING_DEL  = 1;
 
     /*模板上架状态*/
-    public static final Integer TEMPLATE_PUTAWAY = 1;
+   Integer TEMPLATE_PUTAWAY = 1;
 
     /*产品状态0删除1可用*/
-    public static final Integer STATUS = 1;
+   Integer STATUS = 1;
 
     /*组件编码*/
-    public static final String PRODUCT = "product";
+   String PRODUCT = "product";
 
     /*内容*/
-    public static final String NEWS = "news";
+   String NEWS = "news";
 
     /*平台标识*/
-    public static final String APPKEY = "adweb";
+   String APPKEY = "adweb";
 
     /*内容分类*/
-    public static final String NEWSCATALOG = "newsCatalog";
+   String NEWSCATALOG = "newsCatalog";
 
-    public static final String PRODUCTCTALOG = "productCatalog";
+   String PRODUCTCTALOG = "productCatalog";
 
     /**
      * 缓存前缀
      */
-    public static final String CACHE_PREFIX = "AdWeb3::";
+   String CACHE_PREFIX = "AdWeb3::";
 
     //询盘阶段,字典条目
-    public static final String ENQUIRY_PHASE = "enquiry_phase";
+   String ENQUIRY_PHASE = "enquiry_phase";
     //询盘跟进状态,字典条目
-    public static final String ENQUIRY_TRACK_STATUS = "enquiry_track_status";
+   String ENQUIRY_TRACK_STATUS = "enquiry_track_status";
     //询盘用户有效性,字典条目
-    public static final String ENQUIRY_EFFECTIVE = "enquiry_effective";
+    String ENQUIRY_EFFECTIVE = "enquiry_effective";
     //询盘回复状态,字典条目
-    public static final String ENQUIRY_REPLAY_STATUS = "enquiry_replay_status";
+   String ENQUIRY_REPLAY_STATUS = "enquiry_replay_status";
     //ADMP dictService
-    public static final String CUSTOMER_ORDER_CURRENCY = "customer_order_currency";
+   String CUSTOMER_ORDER_CURRENCY = "customer_order_currency";
 
-    public static final String ENQUIRY_PARAM_NAME = "enquiry_param_name";
-    public static final String ENQUIRY_PARAM_EMAIL = "enquiry_param_email";
-    public static final String ENQUIRY_PARAM_PHONE = "enquiry_param_phone";
-    public static final String ENQUIRY_PARAM_MESSAGE = "enquiry_param_message";
-    public static final String ENQUIRY_PARAM_COMPANY = "enquiry_param_company";
-    public static final String ENQUIRY_PARAM_FROM_PAGE = "enquiry_param_from_page";
+   String ENQUIRY_PARAM_NAME = "enquiry_param_name";
+   String ENQUIRY_PARAM_EMAIL = "enquiry_param_email";
+   String ENQUIRY_PARAM_PHONE = "enquiry_param_phone";
+   String ENQUIRY_PARAM_MESSAGE = "enquiry_param_message";
+   String ENQUIRY_PARAM_COMPANY = "enquiry_param_company";
+   String ENQUIRY_PARAM_FROM_PAGE = "enquiry_param_from_page";
 
     /**
      * 页面code
      */
-    public static final String HOME_PAGE_CODE = "home";
-    public static final String ABOUT_US_PAGE_CODE = "aboutUs";
-    public static final String PRODUCTS_PAGE_CODE = "products";
-    public static final String PRODUCT_DETAIL_PAGE_CODE = "productDetail";
-    public static final String NEWS_PAGE_CODE = "news";
-    public static final String NEWS_DETAIL_PAGE_CODE = "newsDetail";
-    public static final String CONTACT_US_PAGE_CODE = "contactUs";
-    public static final String FAQ_PAGE_CODE = "faq";
+   String HOME_PAGE_CODE = "home";
+   String ABOUT_US_PAGE_CODE = "aboutUs";
+   String PRODUCTS_PAGE_CODE = "products";
+   String PRODUCT_DETAIL_PAGE_CODE = "productDetail";
+   String NEWS_PAGE_CODE = "news";
+   String NEWS_DETAIL_PAGE_CODE = "newsDetail";
+   String CONTACT_US_PAGE_CODE = "contactUs";
+   String FAQ_PAGE_CODE = "faq";
 
     /**
      * 模板标签
      */
-    public static final String TEMPLATE_TAGS = "template_tags";
+   String TEMPLATE_TAGS = "template_tags";
 
     /*SEO关键字类型 1 - 指定词 2 - 长尾词 */
-    public static final int KEYWORD_TYPE_APPOINT = 1;
-    public static final int KEYWORD_TYPE_LONG_TAIL = 2;
+   int KEYWORD_TYPE_APPOINT = 1;
+   int KEYWORD_TYPE_LONG_TAIL = 2;
 
 }

+ 55 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/common/util/AwsTranslateUtils.java

@@ -0,0 +1,55 @@
+package org.jeecg.modules.adweb.common.util;
+
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.translate.AmazonTranslate;
+import com.amazonaws.services.translate.AmazonTranslateClient;
+import com.amazonaws.services.translate.model.TranslateTextRequest;
+import com.amazonaws.services.translate.model.TranslateTextResult;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author: wrk
+ * @date 2022/8/3 11:03
+ */
+@Component
+@Slf4j
+public class AwsTranslateUtils {
+
+    private static final String REGION = "us-west-2";
+
+    @Value("${aws.translate.accessKey}")
+    private String accessKey;
+
+    @Value("${aws.translate.secretKey}")
+    private String secretKey;
+
+
+    /**
+     * 翻译中文
+     * @param text
+     * @return
+     */
+    public String translate(String text){
+        try {
+            BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);
+            AmazonTranslate translate = AmazonTranslateClient.builder()
+                    .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                    .withRegion(REGION)
+                    .build();
+
+            TranslateTextRequest request = new TranslateTextRequest()
+                    .withText(text)
+                    .withSourceLanguageCode("auto")
+                    .withTargetLanguageCode("zh");
+            TranslateTextResult result  = translate.translateText(request);
+            return result.getTranslatedText();
+        } catch (Exception e){
+            log.error("调用亚马逊翻译接口失败", e);
+        }
+        return "";
+    }
+}

+ 53 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/controller/AdwebEnquiryController.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.adweb.enquiry.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
@@ -15,6 +16,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
@@ -24,6 +26,7 @@ import org.jeecg.common.system.vo.DictPropertyModel;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.FastJsonUtil;
 import org.jeecg.modules.adweb.common.constant.AdwebConstant;
+import org.jeecg.modules.adweb.common.util.AwsTranslateUtils;
 import org.jeecg.modules.adweb.common.util.DateUtil;
 import org.jeecg.modules.adweb.common.util.ListUtil;
 import org.jeecg.modules.adweb.enquiry.dto.param.AdmpEnquirySearchDto;
@@ -62,27 +65,37 @@ import java.util.stream.Collectors;
 @RequestMapping("/adweb/adwebEnquiry")
 @Slf4j
 public class AdwebEnquiryController extends JeecgController<AdwebEnquiry, IAdwebEnquiryService> {
-    @Autowired
-    private IAdwebEnquiryService adwebEnquiryService;
 
+    @Value("${enquiry.disable-admin-read:true}")
+    private Boolean disableAdminRead;
     @Value("${enquiry.demoFlag:false}")
     private Boolean demoFlag;
+    @Value("${jeecg.path.upload}")
+    private String uploadUrl;
+    @Value("${enquiry.token}")
+    private String enquiryToken;
+
+    @Resource
+    private IAdwebEnquiryService adwebEnquiryService;
 
     @Resource
     private AdwebEnquiryMapper adwebEnquiryMapper;
 
-    @Autowired
+    @Resource
     private SysAdwebApi sysAdwebApi;
 
-    @Autowired
+    @Resource
     private IAdwebSiteService adwebSiteService;
 
-    @Autowired
+    @Resource
     private ISiteUserPermissionService siteUserPermissionService;
 
-    @Autowired
+    @Resource
     private ISysDictService sysDictService;
 
+    @Resource
+    private AwsTranslateUtils awsTranslateUtils;
+
     /**
      * 分页列表查询
      *
@@ -498,6 +511,40 @@ public class AdwebEnquiryController extends JeecgController<AdwebEnquiry, IAdweb
     }
 
     /**
+     * 将询盘的状态改为已读
+     *
+     * @param id 询盘id
+     * @return 处理结果
+     */
+    @GetMapping("/read")
+    public Result<?> read(@Param("id") String id) {
+        if (disableAdminRead && (sysAdwebApi.isAdmin() || sysAdwebApi.isOem())) {
+            return Result.OK();
+        }
+        UpdateWrapper<AdwebEnquiry> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.in("id", (Object) id.split(","));
+        updateWrapper.set("read_status", 1);
+        adwebEnquiryService.update(updateWrapper);
+        return Result.OK();
+    }
+
+    /**
+     * @param query
+     * @return
+     */
+    @RequestMapping(value = "/enquiryTrans", method = RequestMethod.POST)
+    @ResponseBody
+    public Result<String> getEnquiryTrans(String query, String id) {
+        String text = awsTranslateUtils.translate(query);
+        UpdateWrapper<AdwebEnquiry> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", id);
+        updateWrapper.set("trans_content", text);
+        adwebEnquiryService.update(updateWrapper);
+
+        return Result.ok(text);
+    }
+
+    /**
      * 特殊时间数据处理
      *
      * @param dateType 时间

+ 12 - 0
jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml

@@ -391,3 +391,15 @@ dataforseo:
   password: 0845d3de83295cca
   api-path: https://api.dataforseo.com
 
+### 询盘列表配置
+enquiry:
+  disable-admin-read: true
+  demoFlag: false
+  token: zQ3jJqtIexedIw6tZGk6p
+  pullCount: 5
+
+# 亚马逊翻译api
+aws:
+  translate:
+    accessKey: AKIAS37NJDKDETZ7PPEN
+    secretKey: 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

+ 12 - 0
jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml

@@ -379,3 +379,15 @@ dataforseo:
   password: 0845d3de83295cca
   api-path: https://api.dataforseo.com
 
+### 询盘列表配置
+enquiry:
+  disable-admin-read: true
+  demoFlag: false
+  token: zQ3jJqtIexedIw6tZGk6p
+  pullCount: 5
+
+# 亚马逊翻译api
+aws:
+  translate:
+    accessKey: AKIAS37NJDKDETZ7PPEN
+    secretKey: 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