perf: 已归档/已删除任务列表支持按状态检索

This commit is contained in:
kuaifan
2025-03-18 12:02:17 +08:00
parent ff2461d89d
commit 7217bd7d1a
3 changed files with 177 additions and 22 deletions

View File

@@ -943,6 +943,7 @@ class ProjectController extends AbstractController
* @apiParam {Object} [keys] 搜索条件
* - keys.name: ID、任务名称、任务描述
* - keys.tag: 标签名称
* - keys.status: 任务状态 (completed: 已完成、uncompleted: 未完成、flow-xx: 流程状态ID)
*
* @apiParam {Number} [project_id] 项目ID
* @apiParam {Number} [parent_id] 主任务IDproject_id && parent_id ≤ 0 时 仅查询自己参与的任务)
@@ -1006,6 +1007,20 @@ class ProjectController extends AbstractController
$query->where('project_task_tags.name', $keys['tag']);
});
}
if ($keys['status']) {
if ($keys['status'] == 'completed') {
$builder->whereNotNull('project_tasks.complete_at');
} elseif ($keys['status'] == 'uncompleted') {
$builder->whereNull('project_tasks.complete_at');
} elseif (str_starts_with($keys['status'], 'flow-')) {
$flow = str_replace('flow-', '', $keys['status']);
if (Base::isNumber($flow)) {
$builder->where('project_tasks.flow_item_id', intval($flow));
} elseif ($flow) {
$builder->where('project_tasks.flow_item_name', 'like', "%{$flow}%");
}
}
}
//
$scopeAll = false;
if ($parent_id > 0) {