Browse Source

12月14日现金管理多语言配置,优化多语言权限查询

huangqizheng/feature-20260106155423-红包修改
wangguorui 4 weeks ago
parent
commit
94a4c1b2e5
  1. 54
      src/main/java/com/example/demo/controller/coin/PermissionController.java
  2. 22
      src/main/java/com/example/demo/controller/coin/RoleController.java

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

22
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<MenuVo> 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);
}
}
}
}

Loading…
Cancel
Save