From 5c834847170786e14b2fa041538573d343f4ce59 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Thu, 22 Jan 2026 18:10:18 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=9C=8822=E6=97=A5=EF=BC=8C=E7=8E=B0?= =?UTF-8?q?=E9=87=91=E6=9F=A5=E8=AF=A2=E5=9C=B0=E5=8C=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/cash/CashCollectionController.java | 9 +-- .../java/com/example/demo/domain/entity/User.java | 2 +- .../demo/mapper/cash/CashCollectionMapper.java | 2 + .../demo/service/cash/CashCollectionService.java | 4 +- .../cash/CashCollectionServiceImpl.java | 74 ++++++++++++++-------- .../resources/cashMapper/CashCollectionMapper.xml | 6 ++ 6 files changed, 63 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index c96ec8c..1c0e554 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -52,14 +52,11 @@ public class CashCollectionController { //根据精网号获取姓名和地区 @PostMapping("/getNameAndMarket") public Result getNameAndMarket(@RequestBody Integer jwcode, @RequestHeader(defaultValue = "zh_CN") String lang) { - try { - return Result.success(cashCollectionService.getNameAndMarket(jwcode)); - } catch (Exception e) { - String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang); - return Result.error(errorMsg); - } + // 直接返回服务层的 Result 对象 + return cashCollectionService.getNameAndMarket(jwcode); } + //获取收款活动列表 @PostMapping("/getActivityList") public Result getActivityList() diff --git a/src/main/java/com/example/demo/domain/entity/User.java b/src/main/java/com/example/demo/domain/entity/User.java index 255bbc4..ecf3bfc 100644 --- a/src/main/java/com/example/demo/domain/entity/User.java +++ b/src/main/java/com/example/demo/domain/entity/User.java @@ -27,7 +27,7 @@ public class User implements Serializable { private String name; // 客户姓名 private String market; // 所属地区 @ExcelIgnore - private String marketName; // 所属地区 + private String marketName; // 所属地区 @ExcelIgnore private BigDecimal sumPermanentGold; // 历史永久金币 @ExcelIgnore diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index 0577fa7..334c30b 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -25,6 +25,8 @@ import java.util.Set; @Mapper public interface CashCollectionMapper { //ceshi + // 检查用户是否存在 + int checkUserExists(@Param("jwcode") Integer jwcode); //根据jwcode获取所属地区 String getMarketByJwcode(@Param("jwcode") Integer jwcode); //新增收款订单 diff --git a/src/main/java/com/example/demo/service/cash/CashCollectionService.java b/src/main/java/com/example/demo/service/cash/CashCollectionService.java index 30f5603..9cf3f9d 100644 --- a/src/main/java/com/example/demo/service/cash/CashCollectionService.java +++ b/src/main/java/com/example/demo/service/cash/CashCollectionService.java @@ -4,9 +4,9 @@ import com.example.demo.domain.DTO.PerformanceDTO; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.GOrder; import com.example.demo.domain.entity.RechargeActivity; -import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.cash.PerformanceVO; +import com.example.demo.domain.vo.coin.Result; import com.github.pagehelper.PageInfo; import java.util.List; @@ -34,7 +34,7 @@ public interface CashCollectionService { //补全手续费等 String complete(CashRecord cashRecord); //根据精网号获取姓名和地区 - User getNameAndMarket(Integer jwcode); + Result getNameAndMarket(Integer jwcode); //获取活动列表 List getActivityList(); //同步g_order订单到cash_record表 diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 838ed44..adec204 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -10,6 +10,7 @@ import com.example.demo.domain.vo.cash.CashCollectionMessage; import com.example.demo.domain.vo.cash.PerformanceVO; import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Messages; +import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.UserMapper; @@ -355,34 +356,57 @@ public class CashCollectionServiceImpl implements CashCollectionService { } //根据精网号查询姓名和地区 -@Override -public User getNameAndMarket(Integer jwcode) { - try { - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String token = request.getHeader("token"); - Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); - if (admin != null) { - List list = Arrays.asList(admin.getMarkets().split(",")); - List markets = marketMapper.getMarketIds(list); - if (markets.contains("9") || markets.contains("9999")) { - markets = null; - } - GoldUser gUser = userMapper.selectUserCard(jwcode.toString(), markets); - if (gUser != null) { - User user = new User(); - user.setMarket(cashCollectionMapper.getMarketByJwcode(jwcode)); - user.setName(cashCollectionMapper.getNameByJwcode(jwcode)); - user.setMarketName(cashCollectionMapper.getMarketNameByJwcode(jwcode)); - return user; + @Override + public Result getNameAndMarket(Integer jwcode) { + try { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + + if (admin != null) { + List list = Arrays.asList(admin.getMarkets().split(",")); + List markets = marketMapper.getMarketIds(list); + + // 检查用户是否存在 + int userCount = cashCollectionMapper.checkUserExists(jwcode); + if (userCount == 0) { + return Result.error("用户为空"); + } + + if (markets.contains("9") || markets.contains("9999")) { + // 有特殊权限,可访问所有用户 + User user = new User(); + user.setMarket(cashCollectionMapper.getMarketByJwcode(jwcode)); + user.setName(cashCollectionMapper.getNameByJwcode(jwcode)); + user.setMarketName(cashCollectionMapper.getMarketNameByJwcode(jwcode)); + return Result.success(user); + } else { + // 检查用户所在市场是否在管理员权限范围内 + String userMarket = cashCollectionMapper.getMarketByJwcode(jwcode); + + if (userMarket != null && markets.contains(userMarket)) { + // 有权限访问,返回用户信息 + User user = new User(); + user.setMarket(userMarket); + user.setName(cashCollectionMapper.getNameByJwcode(jwcode)); + user.setMarketName(cashCollectionMapper.getMarketNameByJwcode(jwcode)); + return Result.success(user); + } else { + // 无权限,返回用户所属地区 + String userMarketName = cashCollectionMapper.getMarketNameByJwcode(jwcode); + return Result.errorWithData("无权限访问", java.util.Map.of("market", userMarketName)); + } + } + } else { + // admin 为 null,即权限验证失败 + String userMarketName = cashCollectionMapper.getMarketNameByJwcode(jwcode); + return Result.errorWithData("无权限访问", java.util.Map.of("market", userMarketName)); } + } catch (Exception e) { + e.printStackTrace(); + return Result.error("精网号有误!请检查"); } - } catch (Exception e) { - e.printStackTrace(); } - - // 如果没有返回有效用户信息,则抛出异常 - throw new RuntimeException("无法获取用户信息"); -} //获取收款活动列表 @Override diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 7c8ec34..05f97a5 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -98,6 +98,12 @@ set is_synced = 1 where id = #{orderId} + +