Browse Source

20260404 新增地区支付方式翻译

lijianlin/feature-20260401-现金管理四期
wangguorui 5 days ago
parent
commit
bdce9d7689
  1. 65
      src/main/java/com/example/demo/controller/coin/MarketController.java

65
src/main/java/com/example/demo/controller/coin/MarketController.java

@ -3,6 +3,7 @@ package com.example.demo.controller.coin;
import com.example.demo.config.interfac.Log; import com.example.demo.config.interfac.Log;
import com.example.demo.domain.entity.Market; import com.example.demo.domain.entity.Market;
import com.example.demo.domain.vo.cash.AreaPayTypeTreeVO; import com.example.demo.domain.vo.cash.AreaPayTypeTreeVO;
import com.example.demo.domain.vo.cash.PayTypeVO;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.coin.MarketService; import com.example.demo.service.coin.MarketService;
import com.example.demo.Util.LanguageTranslationUtil; import com.example.demo.Util.LanguageTranslationUtil;
@ -49,18 +50,28 @@ public class MarketController {
} }
} }
//获取市场-支付方式树形结构
//获取市场 - 支付方式树形结构
@RequestMapping("/getAreaPayTypeTree") @RequestMapping("/getAreaPayTypeTree")
public Result getAreaPayTypeTree(@RequestHeader(defaultValue = "zh_CN") String lang) { public Result getAreaPayTypeTree(@RequestHeader(defaultValue = "zh_CN") String lang) {
try { try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
List<AreaPayTypeTreeVO> marketsTree = marketService.getAreaPayTypeTree(); List<AreaPayTypeTreeVO> marketsTree = marketService.getAreaPayTypeTree();
// 如果不是中文环境先将翻译后的名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedAreaPayTypeTreeToChinese(marketsTree, languageCode);
}
// 对地区名称和支付方式名称进行多语言转换
translateAreaPayTypeTree(marketsTree, lang);
return Result.success(marketsTree); return Result.success(marketsTree);
} catch (Exception e) { } catch (Exception e) {
log.error("获取市场列表失败", e); log.error("获取市场列表失败", e);
return Result.error("获取市场列表失败");
String errorMsg = languageTranslationUtil.translate("获取市场列表失败", lang);
return Result.error(errorMsg);
} }
} }
@ -82,6 +93,56 @@ public class MarketController {
} }
} }
/** /**
* 转换地区支付方式树的多语言字段
*/
private void translateAreaPayTypeTree(List<AreaPayTypeTreeVO> treeList, String lang) {
if (treeList != null) {
for (AreaPayTypeTreeVO node : treeList) {
// 翻译地区名称
if (node.getName() != null) {
node.setName(languageTranslationUtil.translate(node.getName(), lang));
}
// 翻译支付方式名称
if (node.getChildren() != null) {
for (PayTypeVO payType : node.getChildren()) {
if (payType.getName() != null) {
payType.setName(languageTranslationUtil.translate(payType.getName(), lang));
}
}
}
}
}
}
/**
* 将翻译后的地区支付方式树名称转换为中文简体
*/
private void convertTranslatedAreaPayTypeTreeToChinese(List<AreaPayTypeTreeVO> treeList, String languageCode) {
if (treeList != null) {
for (AreaPayTypeTreeVO node : treeList) {
// 转换地区名称
if (node.getName() != null && !node.getName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
node.getName(), languageCode);
node.setName(chineseName);
}
// 转换支付方式名称
if (node.getChildren() != null) {
for (PayTypeVO payType : node.getChildren()) {
if (payType.getName() != null && !payType.getName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
payType.getName(), languageCode);
payType.setName(chineseName);
}
}
}
}
}
}
/**
* 解析语言代码 * 解析语言代码
*/ */
private String parseLanguageCode(String langHeader) { private String parseLanguageCode(String langHeader) {

Loading…
Cancel
Save