修改了权限校验

This commit is contained in:
2025-07-14 15:53:51 +08:00
parent 538147ffda
commit acddaf8dbc
5 changed files with 46 additions and 18 deletions

View File

@ -60,16 +60,19 @@ public class PermissionCheck {
DecodedJWT decodedJWT = jwtUtils.verify(token); DecodedJWT decodedJWT = jwtUtils.verify(token);
String userAccount = decodedJWT.getClaim("userAccount").asString(); String userAccount = decodedJWT.getClaim("userAccount").asString();
String userPassword = decodedJWT.getClaim("userPassword").asString(); String userPassword = decodedJWT.getClaim("userPassword").asString();
String userRole = decodedJWT.getClaim("userRole").asString();
// 查询用户信息 // 查询用户信息
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount).eq(UserInfo::getUserPassword, userPassword); lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount).eq(UserInfo::getUserPassword, userPassword);
// 如果是小程序用户, 就加上权限条件
lambdaQueryWrapper.eq(StringUtils.isNotBlank(userRole), UserInfo::getUserRole, userRole);
UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper); UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper);
ThrowUtils.throwIf(userInfo == null, ErrorCode.OPERATION_ERROR, "用户不存在"); ThrowUtils.throwIf(userInfo == null, ErrorCode.OPERATION_ERROR, "用户不存在");
// 将用户id存入request用于记录日志 // 将用户id存入request用于记录日志
request.setAttribute("userId", userInfo.getId()); request.setAttribute("userId", userInfo.getId());
// 获取用户权限的枚举类 // 获取用户权限的枚举类
String userRole = userInfo.getUserRole(); if (userRole == null) userRole = userInfo.getUserRole();
UserRoleEnum userRoleEnum = UserRoleEnum.getEnumByValue(userRole); UserRoleEnum userRoleEnum = UserRoleEnum.getEnumByValue(userRole);
// 接口权限只能是 USERADMINBOSS用户权限是 ADMINBOSSUSERBANMANAGERSUPERVISORSTAFF // 接口权限只能是 USERADMINBOSS用户权限是 ADMINBOSSUSERBANMANAGERSUPERVISORSTAFF

View File

@ -140,8 +140,8 @@ public class CourseOrderController {
// 更新主管和员工的绩效记录 // 更新主管和员工的绩效记录
Long userId = courseOrder.getUserId(); Long userId = courseOrder.getUserId();
List<Long> pathToRoot = userInfoService.findPathToRoot(userId); List<Long> pathToRoot = userInfoService.findPathToRoot(userId);
List<Long> superUserIdList = pathToRoot.subList(1, 3); List<Long> subPathToRoot = pathToRoot.subList(1, 3);
List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(superUserIdList, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId); List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(subPathToRoot, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId);
BigDecimal rate; BigDecimal rate;
Map<String, BigDecimal> rateMap = userPerformanceSummaryService.queryRakeRewardsRate(); Map<String, BigDecimal> rateMap = userPerformanceSummaryService.queryRakeRewardsRate();
for (int i = 0; i < userPerformanceSummaryList.size(); i ++ ) { for (int i = 0; i < userPerformanceSummaryList.size(); i ++ ) {
@ -161,8 +161,8 @@ public class CourseOrderController {
// 添加课程推广待提成记录 // 添加课程推广待提成记录
Long firstUserId = pathToRoot.get(0); Long firstUserId = subPathToRoot.get(0);
Long secondUserId = pathToRoot.get(1); Long secondUserId = subPathToRoot.get(1);
CoursePromotionCommissionPending coursePromotionCommissionPending = CoursePromotionCommissionPending.builder() CoursePromotionCommissionPending coursePromotionCommissionPending = CoursePromotionCommissionPending.builder()
.firstUserId(firstUserId) .firstUserId(firstUserId)
.secondUserId(secondUserId) .secondUserId(secondUserId)

View File

@ -665,12 +665,21 @@ public class UserPerformanceSummaryController {
public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListSupervisorPerformanceSummaryRankingsByPage(@Valid @RequestBody UserPerformanceSummaryRankQueryRequest userPerformanceSummaryRankQueryRequest) { public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListSupervisorPerformanceSummaryRankingsByPage(@Valid @RequestBody UserPerformanceSummaryRankQueryRequest userPerformanceSummaryRankQueryRequest) {
String startTimeStr = userPerformanceSummaryRankQueryRequest.getStartDate(); String startTimeStr = userPerformanceSummaryRankQueryRequest.getStartDate();
String endTimeStr = userPerformanceSummaryRankQueryRequest.getEndDate(); String endTimeStr = userPerformanceSummaryRankQueryRequest.getEndDate();
DateTime startDate = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss"); DateTime startDate = null;
DateTime endDate = DateUtil.parse(endTimeStr, "yyyy-MM-dd HH:mm:ss"); DateTime endDate = null;
boolean isAddDate = true;
try {
startDate = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss");
endDate = DateUtil.parse(endTimeStr, "yyyy-MM-dd HH:mm:ss");
} catch (Exception e) {
isAddDate = false;
}
QueryWrapper<EmployeePromotionRecords> empQueryWrapper = new QueryWrapper<>(); QueryWrapper<EmployeePromotionRecords> empQueryWrapper = new QueryWrapper<>();
empQueryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate); if (isAddDate) {
empQueryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate); empQueryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate);
empQueryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate);
}
List<EmployeePromotionRecords> employeePromotionRecordsList = employeePromotionRecordsService.list(empQueryWrapper); List<EmployeePromotionRecords> employeePromotionRecordsList = employeePromotionRecordsService.list(empQueryWrapper);
// 封装Map集合主管id, 值:推广数量) // 封装Map集合主管id, 值:推广数量)
Map<Long, Integer> supervisorCntMap = new HashMap<>(); Map<Long, Integer> supervisorCntMap = new HashMap<>();
@ -744,12 +753,21 @@ public class UserPerformanceSummaryController {
public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListStaffUserPerformanceSummaryRankingsByPage(@Valid @RequestBody UserPerformanceSummaryRankQueryRequest userPerformanceSummaryRankQueryRequest) { public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListStaffUserPerformanceSummaryRankingsByPage(@Valid @RequestBody UserPerformanceSummaryRankQueryRequest userPerformanceSummaryRankQueryRequest) {
String startTimeStr = userPerformanceSummaryRankQueryRequest.getStartDate(); String startTimeStr = userPerformanceSummaryRankQueryRequest.getStartDate();
String endTimeStr = userPerformanceSummaryRankQueryRequest.getEndDate(); String endTimeStr = userPerformanceSummaryRankQueryRequest.getEndDate();
DateTime startDate = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss"); DateTime startDate = null;
DateTime endDate = DateUtil.parse(endTimeStr, "yyyy-MM-dd HH:mm:ss"); DateTime endDate = null;
boolean isAddDate = true;
try {
startDate = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss");
endDate = DateUtil.parse(endTimeStr, "yyyy-MM-dd HH:mm:ss");
} catch (Exception e) {
isAddDate = false;
}
QueryWrapper<EmployeePromotionRecords> empQueryWrapper = new QueryWrapper<>(); QueryWrapper<EmployeePromotionRecords> empQueryWrapper = new QueryWrapper<>();
empQueryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate); if (isAddDate) {
empQueryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate); empQueryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate);
empQueryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate);
}
List<EmployeePromotionRecords> employeePromotionRecordsList = employeePromotionRecordsService.list(empQueryWrapper); List<EmployeePromotionRecords> employeePromotionRecordsList = employeePromotionRecordsService.list(empQueryWrapper);
// 封装Map集合员工id, 值:推广数量) // 封装Map集合员工id, 值:推广数量)
Map<Long, Integer> staffCntMap = new HashMap<>(); Map<Long, Integer> staffCntMap = new HashMap<>();

View File

@ -44,6 +44,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/** /**
* @author 35880 * @author 35880
@ -217,6 +219,7 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
Map<String, String> payload = new HashMap<>(); Map<String, String> payload = new HashMap<>();
payload.put("userAccount", phoneNumber); payload.put("userAccount", phoneNumber);
payload.put("userPassword", userPassword); payload.put("userPassword", userPassword);
payload.put("userRole", userInfo.getUserRole());
return jwtUtils.generateToken(payload); return jwtUtils.generateToken(payload);
} }
@ -241,6 +244,7 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
Map<String, String> payload = new HashMap<>(); Map<String, String> payload = new HashMap<>();
payload.put("userAccount", phoneNumber); payload.put("userAccount", phoneNumber);
payload.put("userPassword", userPassword); payload.put("userPassword", userPassword);
payload.put("userRole", userInfo.getUserRole());
return jwtUtils.generateToken(payload); return jwtUtils.generateToken(payload);
} }
@ -406,9 +410,12 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
* 更新上级用户的数量 * 更新上级用户的数量
*/ */
private void updateParentUserInfoEmpCount(Long userId, UserRoleEnum userRoleEnum) { private void updateParentUserInfoEmpCount(Long userId, UserRoleEnum userRoleEnum) {
if (UserRoleEnum.SUPERVISOR.equals(userRoleEnum)) return ;
List<Long> pathToRoot = findPathToRoot(userId); List<Long> pathToRoot = findPathToRoot(userId);
pathToRoot.remove(pathToRoot.size() - 1); List<Long> subPathToRoot;
List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(pathToRoot, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId); if (UserRoleEnum.USER.equals(userRoleEnum)) subPathToRoot = pathToRoot.subList(1, 3);
else subPathToRoot = pathToRoot.subList(1, 2);
List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(subPathToRoot, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId);
for (UserPerformanceSummary userPerformanceSummary : userPerformanceSummaryList) { for (UserPerformanceSummary userPerformanceSummary : userPerformanceSummaryList) {
if (userRoleEnum.equals(UserRoleEnum.USER)) { if (userRoleEnum.equals(UserRoleEnum.USER)) {
userPerformanceSummary.setPromoCount(userPerformanceSummary.getPromoCount() + 1); userPerformanceSummary.setPromoCount(userPerformanceSummary.getPromoCount() + 1);
@ -421,8 +428,8 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
// 如果是普通用户,就添加一条员工推广记录 // 如果是普通用户,就添加一条员工推广记录
if (userRoleEnum.equals(UserRoleEnum.USER)) { if (userRoleEnum.equals(UserRoleEnum.USER)) {
EmployeePromotionRecords employeePromotionRecords = EmployeePromotionRecords.builder() EmployeePromotionRecords employeePromotionRecords = EmployeePromotionRecords.builder()
.firstUserId(pathToRoot.get(0)) .firstUserId(subPathToRoot.get(0))
.secondUserId(pathToRoot.get(1)) .secondUserId(subPathToRoot.get(1))
.userId(userId) .userId(userId)
.build(); .build();
employeePromotionRecordsService.save(employeePromotionRecords); employeePromotionRecordsService.save(employeePromotionRecords);

View File

@ -33,7 +33,7 @@ public class JWTUtils {
Calendar instance = Calendar.getInstance(); Calendar instance = Calendar.getInstance();
// 默认7天过期 // 默认7天过期
instance.add(Calendar.DATE, 7); instance.add(Calendar.DATE, 30);
//创建jwt builder //创建jwt builder
JWTCreator.Builder builder = JWT.create(); JWTCreator.Builder builder = JWT.create();