From 3d7bce517814f8950a2da3f007025ebd5d596848 Mon Sep 17 00:00:00 2001 From: wangguorui <2069821375@qq.com> Date: Tue, 13 Jan 2026 16:44:29 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=9C=8813=E6=97=A5=E7=8E=B0=E9=87=91?= =?UTF-8?q?=E7=AE=A1=E7=90=86=EF=BC=8C=E8=B7=A8=E5=9C=B0=E5=8C=BA=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/domain/vo/coin/Result.java | 8 +++ .../com/example/demo/mapper/coin/MarketMapper.java | 3 ++ .../com/example/demo/mapper/coin/UserMapper.java | 7 +++ .../demo/serviceImpl/coin/UserServiceImpl.java | 60 ++++++++++++++++------ src/main/resources/mapper/MarketMapper.xml | 6 +++ src/main/resources/mapper/UserMapper.xml | 14 +++++ 6 files changed, 82 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/example/demo/domain/vo/coin/Result.java b/src/main/java/com/example/demo/domain/vo/coin/Result.java index b880050..40e02c0 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/Result.java +++ b/src/main/java/com/example/demo/domain/vo/coin/Result.java @@ -73,6 +73,14 @@ public class Result implements Serializable { response.setMsg(e.getMessage()); return response; } + + public static Result errorWithData(Object data) { + Result result = new Result(); + result.setCode(0); // 错误码 + result.setData(data); + return result; + } + public String toJson() throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.writeValueAsString(this); diff --git a/src/main/java/com/example/demo/mapper/coin/MarketMapper.java b/src/main/java/com/example/demo/mapper/coin/MarketMapper.java index cbacf11..87eda8d 100644 --- a/src/main/java/com/example/demo/mapper/coin/MarketMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/MarketMapper.java @@ -10,6 +10,9 @@ import java.util.Set; public interface MarketMapper { List getMarket(); + // 在 MarketMapper.java 中添加 + String getMarketNameById(String marketId); + //获取市场id List getMarketIds(List list); //获取单个市场id diff --git a/src/main/java/com/example/demo/mapper/coin/UserMapper.java b/src/main/java/com/example/demo/mapper/coin/UserMapper.java index 43b5bb6..e61d39f 100644 --- a/src/main/java/com/example/demo/mapper/coin/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/UserMapper.java @@ -23,6 +23,13 @@ public interface UserMapper { //获取用户金币信息 GoldUser selectUser(String jwcode); + + // 检查用户是否存在 + int checkUserExists(String jwcode); + + // 获取用户市场信息 + String getUserMarket(String jwcode); + //获取用户金币信息 GoldUser selectUserCard(@Param("jwcode")String jwcode,@Param("markets")List markets); //获取金币数 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 cda2169..51e7162 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java @@ -3,7 +3,6 @@ package com.example.demo.serviceImpl.coin; import com.example.demo.Util.JWTUtil; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.User; -import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.coin.MarketMapper; @@ -44,33 +43,62 @@ public class UserServiceImpl implements UserService { //查找用户部分信息 @Override - public Result selectUser(String jwcode) { - //解token权限 + public Result selectUser(String jwcode) { + // 检查用户是否存在 + int userCount = userMapper.checkUserExists(jwcode); + if (userCount == 0) { + return Result.error("精网号有误!请检查"); + } + + // 解token权限 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; - } - BigDecimal redSum = redService.selectRedSum(Integer.parseInt(jwcode)); - GoldUser user = userMapper.selectUserCard(jwcode,markets); - user.setRed(redSum); - - return Result.success(user); - } - else{ - return Result.error("用户为空"); + // 检查是否有特殊权限 + boolean hasSpecialPermission = markets.contains("9") || markets.contains("9999"); + + if (hasSpecialPermission) { + // 有特殊权限,可访问所有用户 + BigDecimal redSum = redService.selectRedSum(Integer.parseInt(jwcode)); + GoldUser user = userMapper.selectUserCard(jwcode, null); + user.setRed(redSum); + return Result.success(user); + } else { + // 检查用户所在市场是否在管理员权限范围内 + String userMarketId = userMapper.getUserMarket(jwcode); + + if (userMarketId != null) { + // 根据市场ID获取市场名称 + String userMarketName = marketMapper.getMarketNameById(userMarketId); + + if (markets.contains(userMarketId)) { + // 有权限访问,返回用户信息 + BigDecimal redSum = redService.selectRedSum(Integer.parseInt(jwcode)); + GoldUser user = userMapper.selectUserCard(jwcode, markets); + user.setRed(redSum); + return Result.success(user); + } else { + // 无权限,返回用户所属地区名称到 data 中 + return Result.errorWithData( + java.util.Map.of("market", userMarketName != null ? userMarketName : userMarketId)); + } + } else { + return Result.error("用户市场信息不存在"); + } + } + } else { + return Result.error("用户权限验证失败"); } } catch (Exception e) { e.printStackTrace(); - return Result.error("用户查找不到"); + return Result.error("精网号有误!请检查"); } - } //查找用户全部信息 diff --git a/src/main/resources/mapper/MarketMapper.xml b/src/main/resources/mapper/MarketMapper.xml index dfd0ac1..27544bc 100644 --- a/src/main/resources/mapper/MarketMapper.xml +++ b/src/main/resources/mapper/MarketMapper.xml @@ -5,6 +5,12 @@ select * from market + + + + + + + +