update 文档管理html 文本翻译改为腾讯云机器翻译服务器api,优化翻译逻辑,减少翻译量
This commit is contained in:
parent
95573662ff
commit
94899a4baa
|
@ -155,6 +155,19 @@
|
|||
<version>3.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jsoup</groupId>
|
||||
<artifactId>jsoup</artifactId>
|
||||
<version>1.16.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- 版本在maven生效需要时间,如获取不对应的版本,可以调低版本号-->
|
||||
<dependency>
|
||||
<groupId>com.tencentcloudapi</groupId>
|
||||
<artifactId>tencentcloud-sdk-java-tmt</artifactId>
|
||||
<version>3.1.1297</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ public class ManageBroadcastServiceImpl extends ServiceImpl<ManageBroadcastMappe
|
|||
}else{
|
||||
collect = list.stream().map(broadcast -> {
|
||||
//如果英文为null,需要翻译并保存一下
|
||||
if("".equals(broadcast.getContentEn()) || ("".equals(broadcast.getButtonContentEn()) && "".equals(broadcast.getButtonContent()))){
|
||||
if("".equals(broadcast.getContentEn()) || ("".equals(broadcast.getButtonContentEn()) && !"".equals(broadcast.getButtonContent()))){
|
||||
broadcast.setButtonContentEn(TranslateUtils.translate(broadcast.getButtonContent(), "zh", "en"));
|
||||
broadcast.setContentEn(TranslateUtils.translate(broadcast.getContent(), "zh", "en"));
|
||||
manageBroadcastMapper.updateById(broadcast);
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper;
|
|||
import com.github.pagehelper.PageInfo;
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.constant.HttpStatus;
|
||||
import com.m2pool.common.core.utils.StringUtils;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.utils.SecurityUtils;
|
||||
import com.m2pool.manage.constant.CountryConstant;
|
||||
|
@ -95,33 +96,29 @@ public class ManageDocumentsServiceImpl extends ServiceImpl<ManageDocumentsMappe
|
|||
String fromCountry = CountryConstant.ZH;
|
||||
String toCountry = CountryConstant.EN;
|
||||
ManageDocuments build;
|
||||
//英文转中文
|
||||
if (CountryConstant.EN.equals(manageDocumentVo.getLang())){
|
||||
build = ManageDocuments.builder()
|
||||
.titleEn(manageDocumentVo.getTitle())
|
||||
.subTitleEn(manageDocumentVo.getSubTitle())
|
||||
.contentEn(manageDocumentVo.getContent())
|
||||
.content(TranslateUtils.translate(manageDocumentVo.getContent(), toCountry, fromCountry))
|
||||
.title(TranslateUtils.translate(manageDocumentVo.getTitle(), toCountry, fromCountry))
|
||||
.subTitle(TranslateUtils.translate(manageDocumentVo.getSubTitle(), toCountry, fromCountry))
|
||||
.type(manageDocumentVo.getType())
|
||||
.childType(manageDocumentVo.getChildType())
|
||||
.createUser(SecurityUtils.getUsername())
|
||||
.updateUser(SecurityUtils.getUsername())
|
||||
.articleUrl(manageDocumentVo.getArticleUrl())
|
||||
.titleUrl(manageDocumentVo.getTitleUrl())
|
||||
.coin(manageDocumentVo.getCoin())
|
||||
.build();
|
||||
}else{
|
||||
if (manageDocumentVo.getTitle().isEmpty()){
|
||||
return R.fail("标题不能为空");
|
||||
}
|
||||
if (manageDocumentVo.getType() == null){
|
||||
return R.fail("文档类型不能为空");
|
||||
}
|
||||
if (manageDocumentVo.getTitleUrl() != null && manageDocumentVo.getTitleUrl().length() >= 256){
|
||||
return R.fail("标题图片长度不能大于255");
|
||||
}
|
||||
|
||||
if (manageDocumentVo.getContent().length() >= 50000){
|
||||
return R.fail("内容长度大于50000,请确定传递的html格式是否正确");
|
||||
}
|
||||
|
||||
//中文转英文
|
||||
build = ManageDocuments.builder()
|
||||
.title(manageDocumentVo.getTitle())
|
||||
.subTitle(manageDocumentVo.getSubTitle())
|
||||
.content(manageDocumentVo.getContent())
|
||||
.type(manageDocumentVo.getType())
|
||||
.contentEn(TranslateUtils.translate(manageDocumentVo.getContent(), fromCountry, toCountry))
|
||||
.titleEn(TranslateUtils.translate(manageDocumentVo.getTitle(), fromCountry, toCountry))
|
||||
.subTitleEn(TranslateUtils.translate(manageDocumentVo.getSubTitle(), fromCountry, toCountry))
|
||||
.contentEn(TranslateUtils.translateHtml(manageDocumentVo.getContent(), fromCountry, toCountry))
|
||||
.titleEn(TranslateUtils.tencentTextTranslate(manageDocumentVo.getTitle(), fromCountry, toCountry))
|
||||
.subTitleEn(TranslateUtils.tencentTextTranslate(manageDocumentVo.getSubTitle(),fromCountry, toCountry))
|
||||
.childType(manageDocumentVo.getChildType())
|
||||
.articleUrl(manageDocumentVo.getArticleUrl())
|
||||
.titleUrl(manageDocumentVo.getTitleUrl())
|
||||
|
@ -129,7 +126,6 @@ public class ManageDocumentsServiceImpl extends ServiceImpl<ManageDocumentsMappe
|
|||
.updateUser(SecurityUtils.getUsername())
|
||||
.coin(manageDocumentVo.getCoin())
|
||||
.build();
|
||||
}
|
||||
int insert = manageDocumentsMapper.insert(build);
|
||||
//存入mongodb 方便以后如果mysql查询限制时切换
|
||||
mongoTemplate.save(build, "documents");
|
||||
|
@ -151,48 +147,27 @@ public class ManageDocumentsServiceImpl extends ServiceImpl<ManageDocumentsMappe
|
|||
|
||||
@Override
|
||||
public R<String> updateDocument(ManageDocumentVo manageDocumentVo) {
|
||||
|
||||
String fromCountry = CountryConstant.ZH;
|
||||
String toCountry = CountryConstant.EN;
|
||||
ManageDocuments build;
|
||||
if (manageDocumentVo.getTitleUrl() != null && manageDocumentVo.getTitleUrl().length() >= 256){
|
||||
return R.fail("标题图片地址字符数不能大于255");
|
||||
}
|
||||
Update update = new Update();
|
||||
//英文转中文
|
||||
if (CountryConstant.EN.equals(manageDocumentVo.getLang())){
|
||||
build = ManageDocuments.builder()
|
||||
.id(manageDocumentVo.getId())
|
||||
.titleEn(manageDocumentVo.getTitle())
|
||||
.subTitleEn(manageDocumentVo.getSubTitle())
|
||||
.contentEn(manageDocumentVo.getContent())
|
||||
.content(TranslateUtils.translate(manageDocumentVo.getContent(), toCountry, fromCountry))
|
||||
.title(TranslateUtils.translate(manageDocumentVo.getTitle(), toCountry, fromCountry))
|
||||
.subTitle(TranslateUtils.translate(manageDocumentVo.getSubTitle(), toCountry, fromCountry))
|
||||
.childType(manageDocumentVo.getChildType())
|
||||
.articleUrl(manageDocumentVo.getArticleUrl())
|
||||
.titleUrl(manageDocumentVo.getTitleUrl())
|
||||
.createUser(SecurityUtils.getUsername())
|
||||
.updateUser(SecurityUtils.getUsername())
|
||||
.type(manageDocumentVo.getType())
|
||||
.coin(manageDocumentVo.getCoin())
|
||||
.build();
|
||||
|
||||
// 英文转中文
|
||||
update.set("titleEn", manageDocumentVo.getTitle())
|
||||
.set("subTitleEn", manageDocumentVo.getSubTitle())
|
||||
.set("contentEn", manageDocumentVo.getContent())
|
||||
.set("articleUrl", manageDocumentVo.getArticleUrl())
|
||||
.set("titleUrl", manageDocumentVo.getTitleUrl())
|
||||
.set("content", TranslateUtils.translate(manageDocumentVo.getContent(), toCountry, fromCountry))
|
||||
.set("title", TranslateUtils.translate(manageDocumentVo.getTitle(), toCountry, fromCountry))
|
||||
.set("subTitle", TranslateUtils.translate(manageDocumentVo.getSubTitle(), toCountry, fromCountry));
|
||||
}else{
|
||||
String content = StringUtils.isEmpty(manageDocumentVo.getContent()) ? "" : TranslateUtils.translateHtml(manageDocumentVo.getContent(), fromCountry, toCountry);
|
||||
String title = StringUtils.isEmpty(manageDocumentVo.getTitle()) ? "" : TranslateUtils.tencentTextTranslate(manageDocumentVo.getTitle(), fromCountry, toCountry);
|
||||
String subTitle = StringUtils.isEmpty(manageDocumentVo.getSubTitle()) ? "" : TranslateUtils.tencentTextTranslate(manageDocumentVo.getSubTitle(), fromCountry, toCountry);
|
||||
//中文转英文
|
||||
build = ManageDocuments.builder()
|
||||
.id(manageDocumentVo.getId())
|
||||
.title(manageDocumentVo.getTitle())
|
||||
.subTitle(manageDocumentVo.getSubTitle())
|
||||
.content(manageDocumentVo.getContent())
|
||||
.contentEn(TranslateUtils.translate(manageDocumentVo.getContent(), fromCountry, toCountry))
|
||||
.titleEn(TranslateUtils.translate(manageDocumentVo.getTitle(), fromCountry, toCountry))
|
||||
.subTitleEn(TranslateUtils.translate(manageDocumentVo.getSubTitle(), fromCountry, toCountry))
|
||||
.contentEn(content)
|
||||
.titleEn(title)
|
||||
.subTitleEn(subTitle)
|
||||
.articleUrl(manageDocumentVo.getArticleUrl())
|
||||
.titleUrl(manageDocumentVo.getTitleUrl())
|
||||
.childType(manageDocumentVo.getChildType())
|
||||
|
@ -207,12 +182,10 @@ public class ManageDocumentsServiceImpl extends ServiceImpl<ManageDocumentsMappe
|
|||
.set("content", manageDocumentVo.getContent())
|
||||
.set("articleUrl", manageDocumentVo.getArticleUrl())
|
||||
.set("titleUrl", manageDocumentVo.getTitleUrl())
|
||||
.set("contentEn", TranslateUtils.translate(manageDocumentVo.getContent(), fromCountry, toCountry))
|
||||
.set("titleEn", TranslateUtils.translate(manageDocumentVo.getTitle(), fromCountry, toCountry))
|
||||
.set("subTitleEn", TranslateUtils.translate(manageDocumentVo.getSubTitle(), fromCountry, toCountry));
|
||||
}
|
||||
|
||||
update.set("childType", manageDocumentVo.getChildType())
|
||||
.set("contentEn", content)
|
||||
.set("titleEn", title)
|
||||
.set("subTitleEn", subTitle)
|
||||
.set("childType", manageDocumentVo.getChildType())
|
||||
.set("createUser", SecurityUtils.getUsername())
|
||||
.set("updateUser", SecurityUtils.getUsername())
|
||||
.set("type", manageDocumentVo.getType());
|
||||
|
@ -220,7 +193,6 @@ public class ManageDocumentsServiceImpl extends ServiceImpl<ManageDocumentsMappe
|
|||
Query query = new Query(Criteria.where("id").is(manageDocumentVo.getId()));
|
||||
|
||||
mongoTemplate.updateFirst(query, update, "documents");
|
||||
|
||||
int insert = manageDocumentsMapper.updateById(build);
|
||||
if (insert > 0){
|
||||
return R.success("修改文章成功");
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -45,10 +45,10 @@
|
|||
coin = #{coin} AND `user` = #{user}
|
||||
<choose>
|
||||
<when test="startDate != null and endDate != null">
|
||||
and `date` >= #{startDate} and `date`<![CDATA[ <= ]]> #{endDate}
|
||||
and `should_out_date` >= #{startDate} and `should_out_date`<![CDATA[ <= ]]> #{endDate}
|
||||
</when>
|
||||
<otherwise>
|
||||
and `date` >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
|
||||
and `should_out_date` >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
|
||||
</otherwise>
|
||||
</choose>
|
||||
</where>
|
||||
|
|
|
@ -401,7 +401,6 @@ public class PoolServiceImpl implements PoolService {
|
|||
|
||||
|
||||
List<PowerLineDto> list = poolMapper.getHourNetPowerList(pool.getCoin());
|
||||
System.out.println("list----yyb-1"+list);
|
||||
if("1h".equals(vo.getInterval()) || "rt".equals(vo.getInterval())){
|
||||
PageHelper.clearPage();
|
||||
//30m数据 限制条数为最近1天的条数 即1*48=48
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.m2pool.pool.utils;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.m2pool.common.core.utils.DateUtils;
|
||||
|
@ -41,6 +42,37 @@ public class SocketDemo {
|
|||
//Date endDate = DateUtils.getPreviousHalfHourOrFullHour(new Date());
|
||||
//Date startDate = DateUtils.getOneMonthAgo(endDate);
|
||||
//System.out.println(startDate+" "+endDate);
|
||||
String textToTranslate = "<p _msthidden=\"3\"><span style=\"color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);\" _msttexthash=\"84072040\" _msthash=\"1610\">API 中 coin 字段可目前仅取值支持:nexa</span></p><p _msthidden=\"3\"><span id=\"step\"></span></p><h3 style=\"text-align: start;\" _msttexthash=\"11282648\" _msthash=\"1609\">矿池信息</h3><h3 style=\"text-align: start;\" _msthidden=\"3\"><span style=\"font-size: 16px;\" _msttexthash=\"11308739\" _msthash=\"1608\">公共结构</span></h3><p style=\"text-align: start;\" _msthidden=\"3\"><strong _msttexthash=\"7939243\" _msthash=\"1607\">哈希率</strong></p><p style=\"text-align: start;\" _msttexthash=\"11425713\" _msthash=\"1606\">算力数据</p><p style=\"text-align: start;\" _msthidden=\"3\"><br/></p><table style=\"width: auto;\" _msthidden=\"3\"><tbody><tr><th colspan=\"1\" rowspan=\"1\" width=\"120\" _msttexthash=\"5204511\" _msthash=\"1596\">名称</th><th colspan=\"1\" rowspan=\"1\" width=\"99.03\" _msttexthash=\"5230641\" _msthash=\"1597\">类型</th><th colspan=\"1\" rowspan=\"1\" width=\"117\" style=\"text-align: center;\" _msttexthash=\"4973501\" _msthash=\"1598\">备注</th><th colspan=\"1\" rowspan=\"1\" width=\"186\" style=\"text-align: center;\" _msttexthash=\"7093697\" _msthash=\"1599\">解释</th></tr><tr><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\"><font _mstmutation=\"1\" _msttexthash=\"5119231\" _msthash=\"1600\">日期</font><br/></td><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\" _msttexthash=\"5119231\" _msthash=\"1601\">日期</td><td colspan=\"1\" rowspan=\"1\" width=\"auto\"></td><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\" _msttexthash=\"23246444\" _msthash=\"1602\">算力统计时间</td></tr><tr><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\"><font _mstmutation=\"1\" _msttexthash=\"5078437\" _msthash=\"1603\">算力</font><br/></td><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\"><font _mstmutation=\"1\" _msttexthash=\"1952132\" _msthash=\"1604\">双</font><br/></td><td colspan=\"1\" rowspan=\"1\" width=\"auto\"></td><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\"><font _mstmutation=\"1\" _msttexthash=\"5078437\" _msthash=\"1605\">算力</font><br/></td></tr></tbody></table><p _msthidden=\"3\"><span id=\"MinersList\"></span></p><p _msthidden=\"3\"><span style=\"color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);\" _msttexthash=\"10586056\" _msthash=\"1595\">矿工名单</span></p><p _msthidden=\"3\"><span style=\"color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);\" _msttexthash=\"20870291\" _msthash=\"1594\">矿工数量数据</span></p><table style=\"width: auto;\" _msthidden=\"3\"><tbody><tr><th colspan=\"1\" rowspan=\"1\" width=\"148.7\" style=\"text-align: center;\" _msttexthash=\"5204511\" _msthash=\"1581\">名称</th><th colspan=\"1\" rowspan=\"1\" width=\"99\" style=\"text-align: center;\" _msttexthash=\"5230641\" _msthash=\"1582\">类型</th><th colspan=\"1\" rowspan=\"1\" width=\"111\" style=\"text-align: center;\" _msttexthash=\"4973501\" _msthash=\"1583\">备注</th><th colspan=\"1\" rowspan=\"1\" width=\"153\" style=\"text-align: center;\" _msttexthash=\"7093697\" _msthash=\"1584\">解释</th></tr><tr><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\" _msttexthash=\"2241785\" _msthash=\"1585\">总</td><td colspan=\"1\" rowspan=\"1\" width=\"auto\" style=\"text-align: center;\" _msttexthash=\"5064124\" _msthash=\"1586\">整数</td><td colspan=\"1\" rowspan=\"1\" width=\"auto\">"; // 替换为实际要翻译的文本
|
||||
String apiKey = ""; // 替换为实际的 API 密钥
|
||||
String response = translate(textToTranslate, apiKey);
|
||||
System.out.println(response);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 发送翻译请求
|
||||
* @param text 待翻译的文本
|
||||
* @param apiKey API 密钥
|
||||
* @return 响应结果字符串
|
||||
*/
|
||||
public static String translate(String text, String apiKey) {
|
||||
// 构建请求体
|
||||
JSONObject requestBody = new JSONObject();
|
||||
requestBody.put("q", text);
|
||||
requestBody.put("source", "auto");
|
||||
requestBody.put("target", "zh");
|
||||
requestBody.put("format", "text");
|
||||
requestBody.put("alternatives", 3);
|
||||
requestBody.put("api_key", apiKey);
|
||||
|
||||
// 发送 POST 请求
|
||||
String result = HttpRequest.post("https://libretranslate.com/translate")
|
||||
.header("Content-Type", "application/json")
|
||||
.body(requestBody.toString())
|
||||
.execute()
|
||||
.body();
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
<module>m2pool-oapi</module>
|
||||
<module>m2pool-chat</module>
|
||||
<module>m2pool-manage</module>
|
||||
<module>m2pool-lease</module>
|
||||
</modules>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue