Browse Source

12月1日现金管理多语言配置,修改

wangguorui/feature-20251125171605-现金管理多语言配置
wangguorui 1 month ago
parent
commit
949a107183
  1. 37
      src/main/java/com/example/demo/controller/coin/GoldDetailController.java

37
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<String> userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
List<String> markets = marketService.getMarketIds(userMarkets);
// 校验分页参数
// 校验分页参数
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
}
@ -215,10 +215,10 @@ public class GoldDetailController {
return Result.error("页大小为空!");
}
// 获取传入的市场列表
// 获取传入的市场列表
List<String> 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<User> pageInfo = (PageInfo<User>) 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<User> 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));
}
}
}
}
}
Loading…
Cancel
Save