fix: 待审核任务列表按用户权限过滤,只显示分配给当前用户的任务

This commit is contained in:
Your Name 2026-01-12 15:18:46 +08:00
parent a88d077dda
commit dc4c5558ae
2 changed files with 19 additions and 5 deletions

View File

@ -74,12 +74,16 @@ public class TaskController {
public Result<IPage<Task>> getAllPendingApprovalTasks(
@Parameter(description = "任务类型ID") @RequestParam(required = false) Long taskTypeId,
@Parameter(description = "页码") @RequestParam(defaultValue = "1") Integer page,
@Parameter(description = "每页数量") @RequestParam(defaultValue = "20") Integer pageSize) {
@Parameter(description = "每页数量") @RequestParam(defaultValue = "20") Integer pageSize,
@RequestHeader("Authorization") String authHeader) {
log.info("查询所有待审核任务: taskTypeId={}, page={}, pageSize={}",
taskTypeId, page, pageSize);
String token = jwtUtil.extractTokenFromHeader(authHeader);
Long userId = jwtUtil.getUserIdFromToken(token);
IPage<Task> taskPage = taskService.getAllPendingApprovalTasks(page, pageSize, taskTypeId);
log.info("查询所有待审核任务: userId={}, taskTypeId={}, page={}, pageSize={}",
userId, taskTypeId, page, pageSize);
IPage<Task> taskPage = taskService.getAllPendingApprovalTasks(userId, page, pageSize, taskTypeId);
return Result.success(taskPage);
}

View File

@ -606,14 +606,24 @@ public class TaskService {
/**
* 获取所有待审核任务(处于审批流程中的任务)
* 包括:pending_demand_approval 和 pending_receiving_approval 状态的任务
* 非管理员只能看到分配给自己的待审核任务
*/
public IPage<Task> getAllPendingApprovalTasks(Integer page, Integer pageSize, Long taskTypeId) {
public IPage<Task> getAllPendingApprovalTasks(Long userId, Integer page, Integer pageSize, Long taskTypeId) {
Page<Task> pageParam = new Page<>(page, pageSize);
LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<>();
// 查询处于审批流程中的任务
wrapper.in(Task::getApprovalStatus, "pending_demand_approval", "pending_receiving_approval");
// 检查用户是否是管理员
User user = userService.getUserById(userId);
boolean isAdmin = user != null && Integer.valueOf(1).equals(user.getIsAdmin());
// 非管理员只能看到分配给自己的待审核任务
if (!isAdmin) {
wrapper.eq(Task::getCurrentApproverId, userId);
}
// 根据任务类型筛选
if (taskTypeId != null) {
wrapper.eq(Task::getTaskTypeId, taskTypeId);