From 949a1071834ddd3af8627603bfb98b2fca1b68a6 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Mon, 1 Dec 2025 16:56:39 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=881=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=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/coin/GoldDetailController.java | 37 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/demo/controller/coin/GoldDetailController.java b/src/main/java/com/example/demo/controller/coin/GoldDetailController.java index baabf84..a259751 100644 --- a/src/main/java/com/example/demo/controller/coin/GoldDetailController.java +++ b/src/main/java/com/example/demo/controller/coin/GoldDetailController.java @@ -197,17 +197,17 @@ public class GoldDetailController { } @Log("获取客户金币余额记录") @PostMapping("/getGold") - public Result getGold(@RequestBody Page page) throws Exception { - // 获取当前请求对象 + public Result getGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { + // 获取当前请求对象 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String token = request.getHeader("token"); -// 解析 token 获取用户信息 + // 解析 token 获取用户信息 Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); List userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); List markets = marketService.getMarketIds(userMarkets); -// 校验分页参数 + // 校验分页参数 if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } @@ -215,10 +215,10 @@ public class GoldDetailController { return Result.error("页大小为空!"); } -// 获取传入的市场列表 + // 获取传入的市场列表 List requestedMarkets = page.getUser() != null ? page.getUser().getMarkets() : null; -// 权限校验逻辑 + // 权限校验逻辑 if (markets.contains("9") || markets.contains("9999")) { // 特权市场:9 或 9999,跳过权限校验,直接放行传入的 markets // 如果业务需要,也可以在这里做空值处理 @@ -237,8 +237,17 @@ public class GoldDetailController { // 校验通过,保持 requestedMarkets 不变 } - return Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser())); + Result result = Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser())); + + // 对返回结果进行多语言转换 + if (result.getCode() == 200 && result.getData() instanceof PageInfo) { + PageInfo pageInfo = (PageInfo) result.getData(); + translateUsers(pageInfo, lang); + } + + return result; } + @PostMapping("/export") public Result export(@Valid @RequestBody GoldDetailDTO dto) { String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key(可按用户/业务区分) @@ -346,4 +355,18 @@ public class GoldDetailController { default: return "未知类型"; } } + /** + * 转换用户信息的多语言字段 + */ + private void translateUsers(PageInfo pageInfo, String lang) { + if (pageInfo != null && pageInfo.getList() != null) { + for (User user : pageInfo.getList()) { + // 翻译市场名称 + if (user.getMarket() != null) { + user.setMarket(languageTranslationUtil.translate(user.getMarket(), lang)); + } + } + } + } + }