From 9c28aa17f249020fcba147d43e071f0f24642083 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Sat, 7 Feb 2026 16:55:41 +0800 Subject: [PATCH] =?UTF-8?q?2.7=20=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/Util/GoldTistV2.java | 2 +- .../demo/controller/coin/GoldDetailController.java | 32 ++++++++++++++++++++++ .../demo/mapper/sqlserver/HistoryRecordMapper.java | 3 ++ .../serviceImpl/coin/ExportExcelServiceImpl.java | 3 ++ .../demo/serviceImpl/coin/UserServiceImpl.java | 15 ++++++---- .../sqlserverMapper/HistoryRecordMapper.xml | 13 +++++++++ 6 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/demo/Util/GoldTistV2.java b/src/main/java/com/example/demo/Util/GoldTistV2.java index d113b6b..0f01d3d 100644 --- a/src/main/java/com/example/demo/Util/GoldTistV2.java +++ b/src/main/java/com/example/demo/Util/GoldTistV2.java @@ -269,7 +269,7 @@ public class GoldTistV2 { public static void main(String[] args) throws Exception { //调用demo - addDCCoinNew("90039082",65,-20,"123","测试",0,"黄其振","文章11"); + addCoinNew("90044554",65,-1286,"","清除刷金币数量",0,"黄其振","清除刷金币数量"); } //初始化类型 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 f060727..1ce6253 100644 --- a/src/main/java/com/example/demo/controller/coin/GoldDetailController.java +++ b/src/main/java/com/example/demo/controller/coin/GoldDetailController.java @@ -323,9 +323,41 @@ public class GoldDetailController { @PostMapping("/exportqqq") public Result ExcelGoldDetail(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { + Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(page.getGoldDetail().getToken()), Admin.class); // 解析语言代码 String languageCode = parseLanguageCode(lang); + List userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); + List markets = marketService.getMarketIds(userMarkets); + + // 校验分页参数 + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } + + // 获取传入的市场列表 + List requestedMarkets = page.getGoldDetail() != null ? page.getGoldDetail().getMarkets() : null; + // 权限校验逻辑 + if (markets.contains("9") || markets.contains("9999")) { + // 特权市场:9 或 9999,跳过权限校验,直接放行传入的 markets + // 如果业务需要,也可以在这里做空值处理 + if (page.getGoldDetail() != null) { + // 保持 requestedMarkets 不变,原样接受 + // 可选:如果 requestedMarkets 为 null,可设为默认值或保持 null + } + } else { + // 普通用户:必须校验权限 + if (requestedMarkets == null || requestedMarkets.isEmpty()) { + page.getGoldDetail().setMarkets(markets); + } + if (!markets.containsAll(requestedMarkets)) { + return Result.error("无权限!请求的市场不在授权范围内。"); + } + // 校验通过,保持 requestedMarkets 不变 + } // 如果不是中文环境,将查询条件中的翻译文本转换为中文简体 if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { convertGoldDetailTranslatedFieldsToChinese(page.getGoldDetail(), languageCode); diff --git a/src/main/java/com/example/demo/mapper/sqlserver/HistoryRecordMapper.java b/src/main/java/com/example/demo/mapper/sqlserver/HistoryRecordMapper.java index 263605e..863e9f0 100644 --- a/src/main/java/com/example/demo/mapper/sqlserver/HistoryRecordMapper.java +++ b/src/main/java/com/example/demo/mapper/sqlserver/HistoryRecordMapper.java @@ -1,6 +1,7 @@ package com.example.demo.mapper.sqlserver; +import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.HistoryRecord; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -27,4 +28,6 @@ public interface HistoryRecordMapper { long countNewHistoryRecord(HistoryRecord historyRecord); // 统计总条数 long countOldHistoryRecord(HistoryRecord historyRecord); + // 获取用户信息 + GoldUser selectUser(String jwcode); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java index db64d4b..0c926aa 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java @@ -102,7 +102,10 @@ public class ExportExcelServiceImpl implements ExportExcelService { JsonNode rootNode = objectMapper.readTree(message); JsonNode requestDataNode = rootNode.path("requestData"); JsonNode GoldDetailNode = requestDataNode.path("goldDetail"); + JsonNode tokenNode = requestDataNode.path("token"); + String token = tokenNode.asText(); GoldDetail goldDetail = objectMapper.treeToValue(GoldDetailNode, GoldDetail.class); + goldDetail.setToken(token); page.setGoldDetail(goldDetail); // 从请求数据中获取语言设置,如果没有则使用默认值 diff --git a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java index 93ed455..7b2b95d 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java @@ -12,6 +12,7 @@ import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.bean.BeanUserMapper; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.UserMapper; +import com.example.demo.mapper.sqlserver.HistoryRecordMapper; import com.example.demo.service.Temporary.RedService; import com.example.demo.service.coin.UserService; import jakarta.servlet.http.HttpServletRequest; @@ -49,6 +50,8 @@ public class UserServiceImpl implements UserService { private LanguageTranslationUtil languageTranslationUtil; @Autowired private BeanUserMapper beanUserMapper; + @Autowired + private HistoryRecordMapper historyRecordMapper; //查找用户部分信息 @Override @@ -165,16 +168,16 @@ public class UserServiceImpl implements UserService { if (userCount == 0) { return Result.error("精网号有误!请检查"); } - GoldUser goldUser = userMapper.selectUser(dcUser.getJwcode()); + GoldUser goldUser = historyRecordMapper.selectUser(dcUser.getJwcode()); BeanUserCard user = beanUserMapper.userCard(dcUser.getJwcode()); dcUser.setJwcode(String.valueOf(goldUser.getJwcode())); - dcUser.setName(goldUser.getName()); dcUser.setPermanentBean(BigDecimal.valueOf(user.getPermanentBean())); dcUser.setFreeBean(BigDecimal.valueOf(user.getFreeBean())); - dcUser.setNowFreeGold(goldUser.getNowFreeGold()); - dcUser.setNowPermanentGold(goldUser.getNowPermanentGold()); - dcUser.setNowTaskGold(goldUser.getNowTaskGold()); - dcUser.setNowSumGold(goldUser.getNowSumGold()); + // 如果字段类型是 BigDecimal + dcUser.setNowFreeGold(goldUser.getNowFreeGold().divide(BigDecimal.valueOf(100))); + dcUser.setNowPermanentGold(goldUser.getNowPermanentGold().divide(BigDecimal.valueOf(100))); + dcUser.setNowTaskGold(goldUser.getNowTaskGold().divide(BigDecimal.valueOf(100))); + dcUser.setNowSumGold(goldUser.getNowSumGold().divide(BigDecimal.valueOf(100))); return Result.success(dcUser); } diff --git a/src/main/resources/sqlserverMapper/HistoryRecordMapper.xml b/src/main/resources/sqlserverMapper/HistoryRecordMapper.xml index e6efde3..2827dc8 100644 --- a/src/main/resources/sqlserverMapper/HistoryRecordMapper.xml +++ b/src/main/resources/sqlserverMapper/HistoryRecordMapper.xml @@ -84,4 +84,17 @@ AND ui.Name = #{name} + \ No newline at end of file