From 94a4c1b2e502e691bd80091e65771737fe1dfd88 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Sun, 14 Dec 2025 17:36:59 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=8814=E6=97=A5=E7=8E=B0=E9=87=91?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=A4=9A=E8=AF=AD=E8=A8=80=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/coin/PermissionController.java | 54 +++++++++++++++++++++- .../demo/controller/coin/RoleController.java | 22 +++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/controller/coin/PermissionController.java b/src/main/java/com/example/demo/controller/coin/PermissionController.java index f81bf6a..e8923ad 100644 --- a/src/main/java/com/example/demo/controller/coin/PermissionController.java +++ b/src/main/java/com/example/demo/controller/coin/PermissionController.java @@ -7,6 +7,7 @@ import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.vo.coin.AdminVo; import com.example.demo.domain.vo.coin.Page; +import com.example.demo.domain.vo.coin.Permission; import com.example.demo.domain.vo.coin.Result; import com.example.demo.service.coin.PermissionService; import com.example.demo.service.coin.TranslationService; @@ -80,6 +81,13 @@ public class PermissionController { @PostMapping("/getPermission") public Result getPermission(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang){ try { + // 解析语言代码 + String languageCode = parseLanguageCode(lang); + + // 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 + if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { + convertTranslatedPermissionFieldsToChinese(page.getPermission(), languageCode); + } //解token权限 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String token = request.getHeader("token"); @@ -118,7 +126,7 @@ public class PermissionController { // 解析语言代码 String languageCode = parseLanguageCode(lang); - // 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 + // 如果不是中文环境,将输入的翻译字段转换为中文简体后再存储 if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { convertTranslatedAdminFieldsToChinese(admin, languageCode); } @@ -142,7 +150,7 @@ public class PermissionController { // 解析语言代码 String languageCode = parseLanguageCode(lang); - // 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 + // 如果不是中文环境,将输入的翻译字段转换为中文简体后再存储 if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { convertTranslatedAdminVoFieldsToChinese(adminVo, languageCode); } @@ -309,6 +317,18 @@ public class PermissionController { admin.getRemark(), languageCode); admin.setRemark(chineseRemark); } + + // 转换市场 + if (admin.getMarket() != null && !admin.getMarket().isEmpty()) { + for (int i = 0; i < admin.getMarket().size(); i++) { + String market = admin.getMarket().get(i); + if (market != null && !market.isEmpty()) { + String chineseMarket = translationService.findChineseSimplifiedByTranslation( + market, languageCode); + admin.getMarket().set(i, chineseMarket); + } + } + } } } @@ -330,6 +350,36 @@ public class PermissionController { adminVo.getRemark(), languageCode); adminVo.setRemark(chineseRemark); } + + // 转换市场 + if (adminVo.getMarket() != null && !adminVo.getMarket().isEmpty()) { + for (int i = 0; i < adminVo.getMarket().size(); i++) { + String market = adminVo.getMarket().get(i); + if (market != null && !market.isEmpty()) { + String chineseMarket = translationService.findChineseSimplifiedByTranslation( + market, languageCode); + adminVo.getMarket().set(i, chineseMarket); + } + } + } + } + } + + /** + * 将权限查询条件中的翻译字段转换为中文简体 + */ + private void convertTranslatedPermissionFieldsToChinese(Permission permission, String languageCode) { + if (permission != null) { + if (permission.getPostiton() != null && !permission.getPostiton().isEmpty()) { + String chinesePosition = translationService.findChineseSimplifiedByTranslation( + permission.getPostiton(), languageCode); + permission.setPostiton(chinesePosition); + } + if (permission.getMarket() != null && !permission.getMarket().isEmpty()) { + String chineseMarket = translationService.findChineseSimplifiedByTranslation( + permission.getMarket(), languageCode); + permission.setMarket(chineseMarket); + } } } } diff --git a/src/main/java/com/example/demo/controller/coin/RoleController.java b/src/main/java/com/example/demo/controller/coin/RoleController.java index fa98ff3..7c3d855 100644 --- a/src/main/java/com/example/demo/controller/coin/RoleController.java +++ b/src/main/java/com/example/demo/controller/coin/RoleController.java @@ -4,6 +4,7 @@ import com.example.demo.Util.JWTUtil; import com.example.demo.Util.LanguageTranslationUtil; import com.example.demo.config.interfac.Log; import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.vo.coin.MenuVo; import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.RoleVo; @@ -306,6 +307,27 @@ public class RoleController { if (role.getChannel() != null) { role.setChannel(languageTranslationUtil.translate(role.getChannel(), lang)); } + // 翻译权限树 + if (role.getTree() != null) { + translateMenuTree(role.getTree(), lang); + } + } + } + + /** + * 递归翻译菜单树 + */ + private void translateMenuTree(List menus, String lang) { + if (menus != null) { + for (MenuVo menu : menus) { + if (menu.getMenuName() != null) { + menu.setMenuName(languageTranslationUtil.translate(menu.getMenuName(), lang)); + } + // 递归处理子菜单 + if (menu.getChildren() != null) { + translateMenuTree(menu.getChildren(), lang); + } + } } }