From 127772bd8824d4be3b042e92b0ca9e052dc8ad11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=A6=82=E5=A8=81?= Date: Mon, 22 Sep 2025 18:05:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/main.py | 8 ++++++-- backend/app/models/db/work.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/app/main.py b/backend/app/main.py index 00175f0..f13945d 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -283,10 +283,14 @@ def create_app(): return BaseResponse() @app.get("/api/flows", tags=["Flow"], description="任务列表", response_model=TableResponse) - async def flows_list(): + async def flows_list(user: DB.User = Depends(get_current_user)): global_tasks = app.state.tasks global_status = app.state.task_nodes - work_list = await DB.Work.filter(is_deleted=0).order_by("-id") + db_filter = { "id_deleted": 0 } + if user.level != 0: + work_ids = await DB.WorkUserRelation.filter(user_id=user.id).values_list("work_id", flat=True) + db_filter["id__in": work_ids if work_ids else [0]] + work_list = await DB.Work.filter(**db_filter).order_by("-id") work_ids = [x.id for x in work_list] work_content_list = await DB.WorkContent.filter(work_id__in=work_ids).all() sub_logs = await DB.WorkLogs.filter(work_id__in=work_ids).annotate(max_id=Max("id")).values_list("max_id", flat=True) diff --git a/backend/app/models/db/work.py b/backend/app/models/db/work.py index 0128aaa..659b52c 100644 --- a/backend/app/models/db/work.py +++ b/backend/app/models/db/work.py @@ -50,7 +50,7 @@ class WorkContent(BaseModel): table = "tb_work_content" -class TaskUserRelation(BaseModel): +class WorkUserRelation(BaseModel): work_id = fields.IntField() user_id = fields.IntField()