refactor: 基于fastapi0.115.0版本新特性,直接使用pydantic模型接收查询参数和表单数据,移除as_query和as_form使用方式

This commit is contained in:
insistence
2024-09-29 09:43:38 +08:00
parent 8a964bf3f5
commit 5a04889f84
22 changed files with 40 additions and 81 deletions

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Form, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
@@ -24,7 +24,7 @@ configController = APIRouter(prefix='/system/config', dependencies=[Depends(Logi
)
async def get_system_config_list(
request: Request,
config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_query),
config_page_query: ConfigPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -112,7 +112,7 @@ async def query_system_config(request: Request, config_key: str):
@Log(title='参数管理', business_type=BusinessType.EXPORT)
async def export_system_config_list(
request: Request,
config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_form),
config_page_query: ConfigPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from typing import List
@@ -42,7 +42,7 @@ async def get_system_dept_tree_for_edit_option(
)
async def get_system_dept_list(
request: Request,
dept_query: DeptQueryModel = Depends(DeptQueryModel.as_query),
dept_query: DeptQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysDept')),
):

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Form, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from typing import List
@@ -32,7 +32,7 @@ dictController = APIRouter(prefix='/system/dict', dependencies=[Depends(LoginSer
)
async def get_system_dict_type_list(
request: Request,
dict_type_page_query: DictTypePageQueryModel = Depends(DictTypePageQueryModel.as_query),
dict_type_page_query: DictTypePageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -123,7 +123,7 @@ async def query_detail_system_dict_type(request: Request, dict_id: int, query_db
@Log(title='字典类型', business_type=BusinessType.EXPORT)
async def export_system_dict_type_list(
request: Request,
dict_type_page_query: DictTypePageQueryModel = Depends(DictTypePageQueryModel.as_form),
dict_type_page_query: DictTypePageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据
@@ -152,7 +152,7 @@ async def query_system_dict_type_data(request: Request, dict_type: str, query_db
)
async def get_system_dict_data_list(
request: Request,
dict_data_page_query: DictDataPageQueryModel = Depends(DictDataPageQueryModel.as_query),
dict_data_page_query: DictDataPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -226,7 +226,7 @@ async def query_detail_system_dict_data(request: Request, dict_code: int, query_
@Log(title='字典数据', business_type=BusinessType.EXPORT)
async def export_system_dict_data_list(
request: Request,
dict_data_page_query: DictDataPageQueryModel = Depends(DictDataPageQueryModel.as_form),
dict_data_page_query: DictDataPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Form, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
@@ -32,7 +32,7 @@ jobController = APIRouter(prefix='/monitor', dependencies=[Depends(LoginService.
)
async def get_system_job_list(
request: Request,
job_page_query: JobPageQueryModel = Depends(JobPageQueryModel.as_query),
job_page_query: JobPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -132,7 +132,7 @@ async def query_detail_system_job(request: Request, job_id: int, query_db: Async
@Log(title='定时任务', business_type=BusinessType.EXPORT)
async def export_system_job_list(
request: Request,
job_page_query: JobPageQueryModel = Depends(JobPageQueryModel.as_form),
job_page_query: JobPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据
@@ -148,7 +148,7 @@ async def export_system_job_list(
)
async def get_system_job_log_list(
request: Request,
job_log_page_query: JobLogPageQueryModel = Depends(JobLogPageQueryModel.as_query),
job_log_page_query: JobLogPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -183,7 +183,7 @@ async def delete_system_job_log(request: Request, job_log_ids: str, query_db: As
@Log(title='定时任务调度日志', business_type=BusinessType.EXPORT)
async def export_system_job_log_list(
request: Request,
job_log_page_query: JobLogPageQueryModel = Depends(JobLogPageQueryModel.as_form),
job_log_page_query: JobLogPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据

View File

@@ -1,4 +1,4 @@
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Form, Query, Request
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
from config.get_db import get_db
@@ -29,7 +29,7 @@ logController = APIRouter(prefix='/monitor', dependencies=[Depends(LoginService.
)
async def get_system_operation_log_list(
request: Request,
operation_log_page_query: OperLogPageQueryModel = Depends(OperLogPageQueryModel.as_query),
operation_log_page_query: OperLogPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -66,7 +66,7 @@ async def delete_system_operation_log(request: Request, oper_ids: str, query_db:
@Log(title='操作日志', business_type=BusinessType.EXPORT)
async def export_system_operation_log_list(
request: Request,
operation_log_page_query: OperLogPageQueryModel = Depends(OperLogPageQueryModel.as_form),
operation_log_page_query: OperLogPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据
@@ -88,7 +88,7 @@ async def export_system_operation_log_list(
)
async def get_system_login_log_list(
request: Request,
login_log_page_query: LoginLogPageQueryModel = Depends(LoginLogPageQueryModel.as_query),
login_log_page_query: LoginLogPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -137,7 +137,7 @@ async def unlock_system_user(request: Request, user_name: str, query_db: AsyncSe
@Log(title='登录日志', business_type=BusinessType.EXPORT)
async def export_system_login_log_list(
request: Request,
login_log_page_query: LoginLogPageQueryModel = Depends(LoginLogPageQueryModel.as_form),
login_log_page_query: LoginLogPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from typing import List
@@ -48,7 +48,7 @@ async def get_system_role_menu_tree(
)
async def get_system_menu_list(
request: Request,
menu_query: MenuQueryModel = Depends(MenuQueryModel.as_query),
menu_query: MenuQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
@@ -23,7 +23,7 @@ noticeController = APIRouter(prefix='/system/notice', dependencies=[Depends(Logi
)
async def get_system_notice_list(
request: Request,
notice_page_query: NoticePageQueryModel = Depends(NoticePageQueryModel.as_query),
notice_page_query: NoticePageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据

View File

@@ -1,4 +1,4 @@
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Query, Request
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
from config.get_db import get_db
@@ -18,9 +18,7 @@ onlineController = APIRouter(prefix='/monitor/online', dependencies=[Depends(Log
@onlineController.get(
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('monitor:online:list'))]
)
async def get_monitor_online_list(
request: Request, online_page_query: OnlineQueryModel = Depends(OnlineQueryModel.as_query)
):
async def get_monitor_online_list(request: Request, online_page_query: OnlineQueryModel = Query()):
# 获取全量数据
online_query_result = await OnlineService.get_online_list_services(request, online_page_query)
logger.info('获取成功')

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Form, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
@@ -24,7 +24,7 @@ postController = APIRouter(prefix='/system/post', dependencies=[Depends(LoginSer
)
async def get_system_post_list(
request: Request,
post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_query),
post_page_query: PostPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
# 获取分页数据
@@ -94,7 +94,7 @@ async def query_detail_system_post(request: Request, post_id: int, query_db: Asy
@Log(title='岗位管理', business_type=BusinessType.EXPORT)
async def export_system_post_list(
request: Request,
post_page_query: PostPageQueryModel = Depends(PostPageQueryModel.as_form),
post_page_query: PostPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
):
# 获取全量数据

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter, Depends, Form, Query, Request
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
@@ -43,7 +43,7 @@ async def get_system_role_dept_tree(
)
async def get_system_role_list(
request: Request,
role_page_query: RolePageQueryModel = Depends(RolePageQueryModel.as_query),
role_page_query: RolePageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysDept')),
):
@@ -165,7 +165,7 @@ async def query_detail_system_role(
@Log(title='角色管理', business_type=BusinessType.EXPORT)
async def export_system_role_list(
request: Request,
role_page_query: RolePageQueryModel = Depends(RolePageQueryModel.as_form),
role_page_query: RolePageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysDept')),
):
@@ -211,7 +211,7 @@ async def reset_system_role_status(
)
async def get_system_allocated_user_list(
request: Request,
user_role: UserRolePageQueryModel = Depends(UserRolePageQueryModel.as_query),
user_role: UserRolePageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysUser')),
):
@@ -230,7 +230,7 @@ async def get_system_allocated_user_list(
)
async def get_system_unallocated_user_list(
request: Request,
user_role: UserRolePageQueryModel = Depends(UserRolePageQueryModel.as_query),
user_role: UserRolePageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysUser')),
):
@@ -246,7 +246,7 @@ async def get_system_unallocated_user_list(
@Log(title='角色管理', business_type=BusinessType.GRANT)
async def add_system_role_user(
request: Request,
add_role_user: CrudUserRoleModel = Depends(CrudUserRoleModel.as_query),
add_role_user: CrudUserRoleModel = Query(),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
data_scope_sql: str = Depends(GetDataScope('SysDept')),
@@ -274,7 +274,7 @@ async def cancel_system_role_user(
@Log(title='角色管理', business_type=BusinessType.GRANT)
async def batch_cancel_system_role_user(
request: Request,
batch_cancel_user_role: CrudUserRoleModel = Depends(CrudUserRoleModel.as_query),
batch_cancel_user_role: CrudUserRoleModel = Query(),
query_db: AsyncSession = Depends(get_db),
):
batch_cancel_user_role_result = await UserService.delete_user_role_services(query_db, batch_cancel_user_role)

View File

@@ -1,6 +1,6 @@
import os
from datetime import datetime
from fastapi import APIRouter, Depends, File, Query, Request, UploadFile
from fastapi import APIRouter, Depends, File, Form, Query, Request, UploadFile
from sqlalchemy.ext.asyncio import AsyncSession
from typing import Optional, Union
from pydantic_validation_decorator import ValidateFields
@@ -57,7 +57,7 @@ async def get_system_dept_tree(
)
async def get_system_user_list(
request: Request,
user_page_query: UserPageQueryModel = Depends(UserPageQueryModel.as_query),
user_page_query: UserPageQueryModel = Query(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysUser')),
):
@@ -296,7 +296,7 @@ async def change_system_user_profile_info(
@Log(title='个人信息', business_type=BusinessType.UPDATE)
async def reset_system_user_password(
request: Request,
reset_password: ResetPasswordModel = Depends(ResetPasswordModel.as_query),
reset_password: ResetPasswordModel = Query(),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
@@ -344,7 +344,7 @@ async def export_system_user_template(request: Request, query_db: AsyncSession =
@Log(title='用户管理', business_type=BusinessType.EXPORT)
async def export_system_user_list(
request: Request,
user_page_query: UserPageQueryModel = Depends(UserPageQueryModel.as_form),
user_page_query: UserPageQueryModel = Form(),
query_db: AsyncSession = Depends(get_db),
data_scope_sql: str = Depends(GetDataScope('SysUser')),
):