diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index f0cecc88..db356f73 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -2,7 +2,9 @@ package com.nflg.mobilebroken.admin.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Validator; import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.itextpdf.text.pdf.BaseFont; import com.nflg.mobilebroken.admin.annotation.ApiMark; @@ -21,6 +23,7 @@ import com.nflg.mobilebroken.repository.entity.*; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import com.nflg.mobilebroken.starter.service.UniPushService; +import com.nflg.mobilebroken.starter.service.impl.DeepSeekTranslate; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; @@ -40,6 +43,7 @@ import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; import org.xhtmlrenderer.pdf.ITextRenderer; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; @@ -145,6 +149,11 @@ public class TicketController extends ControllerBase { @Resource private ITBaseAreaService areaService; + @Resource + private DeepSeekTranslate deepSeekTranslate; + @Resource + private ILanguageService languageService; + /** * 获取问题类型 * @return 问题类型列表 @@ -289,10 +298,25 @@ public class TicketController extends ControllerBase { */ @PostMapping("searchTicket") @ApiMark(moduleName = "工单管理", apiName = "搜索工单") - public ApiResult> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request) { - + public ApiResult> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request, HttpServletRequest request2) { + // 20260311 工单标题,在列表页面把它的翻译列展示出来 + String languageCode = request2.getHeader("language"); + Language language; + if (StrUtil.isNotBlank(languageCode)) { + language = languageService.lambdaQuery().eq(Language::getCode, languageCode).one(); + } else { + language = null; + } return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> { d.setEvaluate(getTicketEvaluateForList(Math.toIntExact(d.getId()))); + // 标题字符串不含中文才翻译 + if (ObjectUtil.isNotEmpty(d.getTitle()) && !Validator.hasChinese(d.getTitle())) { + String text = d.getTitle().replaceAll("
", ","); + if (language != null && language.getName() != null) { + String titleTranslate = deepSeekTranslate.translateWord(text, "auto", language.getName(), "text"); + d.setTitleTranslate(titleTranslate); + } + } return d; })); }