From bdce9d76892f00f861b64ae121b88cf7f07b93e8 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Sat, 4 Apr 2026 15:55:29 +0800 Subject: [PATCH] =?UTF-8?q?20260404=20=E6=96=B0=E5=A2=9E=E5=9C=B0=E5=8C=BA?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E6=96=B9=E5=BC=8F=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/coin/MarketController.java | 65 +++++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/controller/coin/MarketController.java b/src/main/java/com/example/demo/controller/coin/MarketController.java index 231a010..c950a97 100644 --- a/src/main/java/com/example/demo/controller/coin/MarketController.java +++ b/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.domain.entity.Market; 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.service.coin.MarketService; import com.example.demo.Util.LanguageTranslationUtil; @@ -49,18 +50,28 @@ public class MarketController { } } - //获取市场-支付方式树形结构 + //获取市场 - 支付方式树形结构 @RequestMapping("/getAreaPayTypeTree") public Result getAreaPayTypeTree(@RequestHeader(defaultValue = "zh_CN") String lang) { try { + // 解析语言代码 + String languageCode = parseLanguageCode(lang); List marketsTree = marketService.getAreaPayTypeTree(); + // 如果不是中文环境,先将翻译后的名称转换为中文简体进行处理 + if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { + convertTranslatedAreaPayTypeTreeToChinese(marketsTree, languageCode); + } + + // 对地区名称和支付方式名称进行多语言转换 + translateAreaPayTypeTree(marketsTree, lang); return Result.success(marketsTree); } catch (Exception 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 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 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) {