fix: 待审核任务列表按用户权限过滤,只显示分配给当前用户的任务
This commit is contained in:
parent
a88d077dda
commit
dc4c5558ae
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user