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); + } + } } }