|
@@ -1,5 +1,7 @@
|
|
package com.xy.service;
|
|
package com.xy.service;
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
@@ -11,17 +13,20 @@ import com.xy.dto.SysDictDto;
|
|
import com.xy.entity.SysDict;
|
|
import com.xy.entity.SysDict;
|
|
import com.xy.entity.SysDictRedis;
|
|
import com.xy.entity.SysDictRedis;
|
|
import com.xy.mapper.SysDictMapper;
|
|
import com.xy.mapper.SysDictMapper;
|
|
|
|
+import com.xy.translate.baidu.TransApi;
|
|
import com.xy.utils.*;
|
|
import com.xy.utils.*;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
import static com.xy.utils.Beans.copy;
|
|
import static com.xy.utils.Beans.copy;
|
|
@@ -44,6 +49,38 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
|
|
|
|
|
|
private RedisService<SysDictRedis> redisService;
|
|
private RedisService<SysDictRedis> redisService;
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 全量翻译
|
|
|
|
+ */
|
|
|
|
+ @Async
|
|
|
|
+ public void translateAllDict() {
|
|
|
|
+ List<SysDict> SysDicts = this.list();
|
|
|
|
+ List<SysDict> updateList = new ArrayList<>();
|
|
|
|
+ for (SysDict sysDict : SysDicts) {
|
|
|
|
+ String name = sysDict.getMsg();
|
|
|
|
+ String enName = sysDict.getEnMsg();
|
|
|
|
+ if (StrUtil.isEmpty(enName)) {
|
|
|
|
+ //百度api翻译
|
|
|
|
+ String translatedValue = TransApi.translate(name, "zh", "en");
|
|
|
|
+ sysDict.setEnMsg(translatedValue);
|
|
|
|
+ updateList.add(sysDict);
|
|
|
|
+ // 增加1.2秒的延迟
|
|
|
|
+ try {
|
|
|
|
+ Thread.sleep(1800);
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
+ Thread.currentThread().interrupt();
|
|
|
|
+ log.error("线程中断异常", e);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (CollUtil.isNotEmpty(updateList)) {
|
|
|
|
+ updateBatchById(updateList);
|
|
|
|
+ //刷新redis
|
|
|
|
+ updateList.forEach(sysDict -> refuRedis(sysDict));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@ApiOperation("添加")
|
|
@ApiOperation("添加")
|
|
@PostMapping("save")
|
|
@PostMapping("save")
|
|
public R save(@RequestBody @Validated SysDictDto.Save save) {
|
|
public R save(@RequestBody @Validated SysDictDto.Save save) {
|