Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize the return of relationship interfaces #545

Merged
merged 2 commits into from
Mar 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions backend/app/admin/api/v1/sys/data_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.database.db import CurrentSession
from backend.utils.serializers import select_as_dict, select_list_serialize

router = APIRouter()

Expand All @@ -31,15 +30,13 @@ async def get_data_rule_model_columns(model: Annotated[str, Path()]) -> Response

@router.get('/all', summary='获取所有数据规则', dependencies=[DependsJwtAuth])
async def get_all_data_rule() -> ResponseSchemaModel[list[GetDataRuleDetail]]:
data_rules = await data_rule_service.get_all()
data = select_list_serialize(data_rules)
data = await data_rule_service.get_all()
return response_base.success(data=data)


@router.get('/{pk}', summary='获取数据权限规则详情', dependencies=[DependsJwtAuth])
async def get_data_rule(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetDataRuleDetail]:
data_rule = await data_rule_service.get(pk=pk)
data = GetDataRuleDetail(**select_as_dict(data_rule))
data = await data_rule_service.get(pk=pk)
return response_base.success(data=data)


Expand Down
4 changes: 1 addition & 3 deletions backend/app/admin/api/v1/sys/dept.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,13 @@
from backend.common.security.jwt import DependsJwtAuth
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.utils.serializers import select_as_dict

router = APIRouter()


@router.get('/{pk}', summary='获取部门详情', dependencies=[DependsJwtAuth])
async def get_dept(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetDeptDetail]:
dept = await dept_service.get(pk=pk)
data = GetDeptDetail(**select_as_dict(dept))
data = await dept_service.get(pk=pk)
return response_base.success(data=data)


Expand Down
4 changes: 1 addition & 3 deletions backend/app/admin/api/v1/sys/dict_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,13 @@
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.database.db import CurrentSession
from backend.utils.serializers import select_as_dict

router = APIRouter()


@router.get('/{pk}', summary='获取字典详情', dependencies=[DependsJwtAuth])
async def get_dict_data(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetDictDataDetail]:
dict_data = await dict_data_service.get(pk=pk)
data = GetDictDataDetail(**select_as_dict(dict_data))
data = await dict_data_service.get(pk=pk)
return response_base.success(data=data)


Expand Down
4 changes: 1 addition & 3 deletions backend/app/admin/api/v1/sys/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from backend.common.security.jwt import DependsJwtAuth
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.utils.serializers import select_as_dict

router = APIRouter()

Expand All @@ -23,8 +22,7 @@ async def get_user_sidebar_tree(request: Request) -> ResponseSchemaModel[list[di

@router.get('/{pk}', summary='获取菜单详情', dependencies=[DependsJwtAuth])
async def get_menu(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetMenuDetail]:
menu = await menu_service.get(pk=pk)
data = GetMenuDetail(**select_as_dict(menu))
data = await menu_service.get(pk=pk)
return response_base.success(data=data)


Expand Down
10 changes: 3 additions & 7 deletions backend/app/admin/api/v1/sys/role.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,19 @@
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.database.db import CurrentSession
from backend.utils.serializers import select_as_dict, select_list_serialize

router = APIRouter()


@router.get('/all', summary='获取所有角色', dependencies=[DependsJwtAuth])
async def get_all_roles() -> ResponseSchemaModel[list[GetRoleDetail]]:
roles = await role_service.get_all()
data = select_list_serialize(roles)
data = await role_service.get_all()
return response_base.success(data=data)


@router.get('/{pk}/all', summary='获取用户所有角色', dependencies=[DependsJwtAuth])
async def get_user_all_roles(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[list[GetRoleDetail]]:
roles = await role_service.get_by_user(pk=pk)
data = select_list_serialize(roles)
data = await role_service.get_by_user(pk=pk)
return response_base.success(data=data)


Expand All @@ -53,8 +50,7 @@ async def get_role_all_rules(pk: Annotated[int, Path(...)]) -> ResponseSchemaMod

@router.get('/{pk}', summary='获取角色详情', dependencies=[DependsJwtAuth])
async def get_role(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetRoleDetail]:
role = await role_service.get(pk=pk)
data = GetRoleDetail(**select_as_dict(role))
data = await role_service.get(pk=pk)
return response_base.success(data=data)


Expand Down
7 changes: 2 additions & 5 deletions backend/app/admin/api/v1/sys/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.database.db import CurrentSession
from backend.utils.serializers import select_as_dict

router = APIRouter()

Expand All @@ -35,8 +34,7 @@ async def register_user(obj: RegisterUserParam) -> ResponseModel:
@router.post('/add', summary='添加用户', dependencies=[DependsRBAC])
async def add_user(request: Request, obj: AddUserParam) -> ResponseSchemaModel[GetUserInfoDetail]:
await user_service.add(request=request, obj=obj)
current_user = await user_service.get_userinfo(username=obj.username)
data = GetUserInfoDetail(**select_as_dict(current_user))
data = await user_service.get_userinfo(username=obj.username)
return response_base.success(data=data)


Expand All @@ -56,8 +54,7 @@ async def get_current_user(request: Request) -> ResponseSchemaModel[GetCurrentUs

@router.get('/{username}', summary='查看用户信息', dependencies=[DependsJwtAuth])
async def get_user(username: Annotated[str, Path(...)]) -> ResponseSchemaModel[GetUserInfoDetail]:
current_user = await user_service.get_userinfo(username=username)
data = GetUserInfoDetail(**select_as_dict(current_user))
data = await user_service.get_userinfo(username=username)
return response_base.success(data=data)


Expand Down
10 changes: 3 additions & 7 deletions backend/app/generator/api/v1/gen_business.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,29 +16,25 @@
from backend.common.security.jwt import DependsJwtAuth
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.utils.serializers import select_as_dict, select_list_serialize

router = APIRouter()


@router.get('/all', summary='获取所有代码生成业务', dependencies=[DependsJwtAuth])
async def get_all_businesses() -> ResponseSchemaModel[list[GetGenBusinessDetail]]:
businesses = await gen_business_service.get_all()
data = select_list_serialize(businesses)
data = await gen_business_service.get_all()
return response_base.success(data=data)


@router.get('/{pk}', summary='获取代码生成业务详情', dependencies=[DependsJwtAuth])
async def get_business(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetGenBusinessDetail]:
business = await gen_business_service.get(pk=pk)
data = GetGenBusinessDetail(**select_as_dict(business))
data = await gen_business_service.get(pk=pk)
return response_base.success(data=data)


@router.get('/{pk}/models', summary='获取代码生成业务所有模型', dependencies=[DependsJwtAuth])
async def get_business_all_models(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[list[GetGenModelDetail]]:
models = await gen_model_service.get_by_business(business_id=pk)
data = select_list_serialize(models)
data = await gen_model_service.get_by_business(business_id=pk)
return response_base.success(data=data)


Expand Down
4 changes: 1 addition & 3 deletions backend/app/generator/api/v1/gen_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from backend.common.security.jwt import DependsJwtAuth
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.utils.serializers import select_as_dict

router = APIRouter()

Expand All @@ -23,8 +22,7 @@ async def get_model_types() -> ResponseSchemaModel[list[str]]:

@router.get('/{pk}', summary='获取代码生成模型详情', dependencies=[DependsJwtAuth])
async def get_model(pk: Annotated[int, Path(...)]) -> ResponseSchemaModel[GetGenModelDetail]:
model = await gen_model_service.get(pk=pk)
data = GetGenModelDetail(**select_as_dict(model))
data = await gen_model_service.get(pk=pk)
return response_base.success(data=data)


Expand Down
2 changes: 0 additions & 2 deletions backend/app/generator/schema/gen_business.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from pydantic import ConfigDict, Field, model_validator
from typing_extensions import Self

from backend.app.generator.schema.gen_model import GetGenModelDetail
from backend.common.schema import SchemaBase


Expand Down Expand Up @@ -42,4 +41,3 @@ class GetGenBusinessDetail(GenBusinessSchemaBase):
id: int
created_time: datetime
updated_time: datetime | None = None
gen_model: list[GetGenModelDetail] | None = None