From a89719eca09252f4fbfdc65edfb76e294aa7861c Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Sat, 31 May 2025 23:06:15 +0800 Subject: [PATCH] Add get all data scope rules interface --- backend/app/admin/api/v1/sys/data_scope.py | 6 ++++++ backend/app/admin/crud/crud_data_scope.py | 11 +++++++++++ backend/app/admin/service/data_scope_service.py | 9 +++++++++ 3 files changed, 26 insertions(+) diff --git a/backend/app/admin/api/v1/sys/data_scope.py b/backend/app/admin/api/v1/sys/data_scope.py index a97f32c22..4a639dd91 100644 --- a/backend/app/admin/api/v1/sys/data_scope.py +++ b/backend/app/admin/api/v1/sys/data_scope.py @@ -22,6 +22,12 @@ router = APIRouter() +@router.get('/all', summary='获取所有数据范围', dependencies=[DependsJwtAuth]) +async def get_all_data_scope() -> ResponseSchemaModel[list[GetDataScopeDetail]]: + data = await data_scope_service.get_all() + return response_base.success(data=data) + + @router.get('/{pk}', summary='获取数据范围详情', dependencies=[DependsJwtAuth]) async def get_data_scope( pk: Annotated[int, Path(description='数据范围 ID')], diff --git a/backend/app/admin/crud/crud_data_scope.py b/backend/app/admin/crud/crud_data_scope.py index 116bd56e6..ad5b8be1e 100644 --- a/backend/app/admin/crud/crud_data_scope.py +++ b/backend/app/admin/crud/crud_data_scope.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +from typing import Sequence + from sqlalchemy import Select, and_, desc, select from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import noload, selectinload @@ -44,6 +46,15 @@ async def get_with_relation(self, db: AsyncSession, pk: int) -> DataScope: data_scope = await db.execute(stmt) return data_scope.scalars().first() + async def get_all(self, db: AsyncSession) -> Sequence[DataScope]: + """ + 获取所有数据范围 + + :param db: 数据库会话 + :return: + """ + return await self.select_models(db) + async def get_list(self, name: str | None, status: int | None) -> Select: """ 获取数据范围列表 diff --git a/backend/app/admin/service/data_scope_service.py b/backend/app/admin/service/data_scope_service.py index 86464de91..66187d3b3 100644 --- a/backend/app/admin/service/data_scope_service.py +++ b/backend/app/admin/service/data_scope_service.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +from typing import Sequence + from sqlalchemy import Select from backend.app.admin.crud.crud_data_scope import data_scope_dao @@ -28,6 +30,13 @@ async def get(*, pk: int) -> DataScope: raise errors.NotFoundError(msg='数据范围不存在') return data_scope + @staticmethod + async def get_all() -> Sequence[DataScope]: + """获取所有数据范围""" + async with async_db_session() as db: + data_scopes = await data_scope_dao.get_all(db) + return data_scopes + @staticmethod async def get_rules(*, pk: int) -> DataScope: """