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()