update 文档管理html 文本翻译改为腾讯云机器翻译服务器api,优化翻译逻辑,减少翻译量

This commit is contained in:
yyb
2025-08-12 17:09:06 +08:00
parent 95573662ff
commit 94899a4baa
8 changed files with 297 additions and 144 deletions

View File

@@ -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>

View File

@@ -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);

View File

@@ -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,41 +96,36 @@ 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{
//中文转英文
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))
.childType(manageDocumentVo.getChildType())
.articleUrl(manageDocumentVo.getArticleUrl())
.titleUrl(manageDocumentVo.getTitleUrl())
.createUser(SecurityUtils.getUsername())
.updateUser(SecurityUtils.getUsername())
.coin(manageDocumentVo.getCoin())
.build();
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.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())
.createUser(SecurityUtils.getUsername())
.updateUser(SecurityUtils.getUsername())
.coin(manageDocumentVo.getCoin())
.build();
int insert = manageDocumentsMapper.insert(build);
//存入mongodb 方便以后如果mysql查询限制时切换
mongoTemplate.save(build, "documents");
@@ -151,68 +147,45 @@ public class ManageDocumentsServiceImpl extends ServiceImpl<ManageDocumentsMappe
@Override
public R<String> updateDocument(ManageDocumentVo manageDocumentVo) {
String fromCountry = CountryConstant.ZH;
String toCountry = CountryConstant.EN;
ManageDocuments build;
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{
//中文转英文
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))
.articleUrl(manageDocumentVo.getArticleUrl())
.titleUrl(manageDocumentVo.getTitleUrl())
.childType(manageDocumentVo.getChildType())
.createUser(SecurityUtils.getUsername())
.updateUser(SecurityUtils.getUsername())
.type(manageDocumentVo.getType())
.coin(manageDocumentVo.getCoin())
.build();
// 中文转英文
update.set("title", manageDocumentVo.getTitle())
.set("subTitle", manageDocumentVo.getSubTitle())
.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));
if (manageDocumentVo.getTitleUrl() != null && manageDocumentVo.getTitleUrl().length() >= 256){
return R.fail("标题图片地址字符数不能大于255");
}
Update update = new Update();
update.set("childType", manageDocumentVo.getChildType())
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(content)
.titleEn(title)
.subTitleEn(subTitle)
.articleUrl(manageDocumentVo.getArticleUrl())
.titleUrl(manageDocumentVo.getTitleUrl())
.childType(manageDocumentVo.getChildType())
.createUser(SecurityUtils.getUsername())
.updateUser(SecurityUtils.getUsername())
.type(manageDocumentVo.getType())
.coin(manageDocumentVo.getCoin())
.build();
// 中文转英文
update.set("title", manageDocumentVo.getTitle())
.set("subTitle", manageDocumentVo.getSubTitle())
.set("content", manageDocumentVo.getContent())
.set("articleUrl", manageDocumentVo.getArticleUrl())
.set("titleUrl", manageDocumentVo.getTitleUrl())
.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

View File

@@ -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>