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