From 165667020382f7f3947224c6558012d2e72dd5cc Mon Sep 17 00:00:00 2001 From: insistence <3055204202@qq.com> Date: Fri, 12 Dec 2025 17:44:27 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=88=86=E9=A1=B5=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8=E5=85=AC=E5=85=B1vo?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E7=9A=84PageModel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_admin/dao/config_dao.py | 7 +++-- .../module_admin/dao/dict_dao.py | 11 ++++--- .../module_admin/dao/job_dao.py | 7 +++-- .../module_admin/dao/job_log_dao.py | 7 +++-- .../module_admin/dao/log_dao.py | 11 ++++--- .../module_admin/dao/notice_dao.py | 7 +++-- .../module_admin/dao/post_dao.py | 7 +++-- .../module_admin/dao/role_dao.py | 7 +++-- .../module_admin/dao/user_dao.py | 15 ++++----- .../module_admin/service/config_service.py | 4 +-- .../module_admin/service/dict_service.py | 6 ++-- .../module_admin/service/job_log_service.py | 4 +-- .../module_admin/service/job_service.py | 4 +-- .../module_admin/service/log_service.py | 6 ++-- .../module_admin/service/notice_service.py | 4 +-- .../module_admin/service/post_service.py | 4 +-- .../module_admin/service/role_service.py | 12 +++---- .../module_admin/service/user_service.py | 6 ++-- .../module_generator/dao/gen_dao.py | 11 ++++--- .../module_generator/service/gen_service.py | 6 ++-- ruoyi-fastapi-backend/utils/page_util.py | 31 +++++-------------- 21 files changed, 86 insertions(+), 91 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/dao/config_dao.py b/ruoyi-fastapi-backend/module_admin/dao/config_dao.py index 0e63ed3..a12781c 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/config_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/config_dao.py @@ -4,9 +4,10 @@ from typing import Any, Union from sqlalchemy import delete, select, update from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.config_do import SysConfig from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class ConfigDao: @@ -54,7 +55,7 @@ class ConfigDao: @classmethod async def get_config_list( cls, db: AsyncSession, query_object: ConfigPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取参数配置列表信息 @@ -79,7 +80,7 @@ class ConfigDao: .order_by(SysConfig.config_id) .distinct() ) - config_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + config_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/dict_dao.py b/ruoyi-fastapi-backend/module_admin/dao/dict_dao.py index eee5236..60841d1 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/dict_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/dict_dao.py @@ -5,9 +5,10 @@ from typing import Any, Union from sqlalchemy import and_, delete, func, select, update from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.dict_do import SysDictData, SysDictType from module_admin.entity.vo.dict_vo import DictDataModel, DictDataPageQueryModel, DictTypeModel, DictTypePageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil from utils.time_format_util import list_format_datetime @@ -68,7 +69,7 @@ class DictTypeDao: @classmethod async def get_dict_type_list( cls, db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取字典类型列表信息 @@ -93,7 +94,7 @@ class DictTypeDao: .order_by(SysDictType.dict_id) .distinct() ) - dict_type_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + dict_type_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) @@ -185,7 +186,7 @@ class DictDataDao: @classmethod async def get_dict_data_list( cls, db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取字典数据列表信息 @@ -204,7 +205,7 @@ class DictDataDao: .order_by(SysDictData.dict_sort) .distinct() ) - dict_data_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + dict_data_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/job_dao.py b/ruoyi-fastapi-backend/module_admin/dao/job_dao.py index 2b73d74..a628b7b 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/job_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/job_dao.py @@ -4,9 +4,10 @@ from typing import Any, Union from sqlalchemy import delete, select, update from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.job_do import SysJob from module_admin.entity.vo.job_vo import JobModel, JobPageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class JobDao: @@ -59,7 +60,7 @@ class JobDao: @classmethod async def get_job_list( cls, db: AsyncSession, query_object: JobPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取定时任务列表信息 @@ -78,7 +79,7 @@ class JobDao: .order_by(SysJob.job_id) .distinct() ) - job_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + job_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/job_log_dao.py b/ruoyi-fastapi-backend/module_admin/dao/job_log_dao.py index 604a7fe..5aa1e7e 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/job_log_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/job_log_dao.py @@ -5,9 +5,10 @@ from sqlalchemy import delete, desc, select from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import Session +from common.vo import PageModel from module_admin.entity.do.job_do import SysJobLog from module_admin.entity.vo.job_vo import JobLogModel, JobLogPageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class JobLogDao: @@ -18,7 +19,7 @@ class JobLogDao: @classmethod async def get_job_log_list( cls, db: AsyncSession, query_object: JobLogPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取定时任务日志列表信息 @@ -43,7 +44,7 @@ class JobLogDao: .order_by(desc(SysJobLog.create_time)) .distinct() ) - job_log_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + job_log_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/log_dao.py b/ruoyi-fastapi-backend/module_admin/dao/log_dao.py index 385b155..48d4cec 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/log_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/log_dao.py @@ -4,10 +4,11 @@ from typing import Any, Union from sqlalchemy import asc, delete, desc, select from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.log_do import SysLogininfor, SysOperLog from module_admin.entity.vo.log_vo import LogininforModel, LoginLogPageQueryModel, OperLogModel, OperLogPageQueryModel from utils.common_util import SnakeCaseUtil -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil from utils.time_format_util import TimeFormatUtil @@ -19,7 +20,7 @@ class OperationLogDao: @classmethod async def get_operation_log_list( cls, db: AsyncSession, query_object: OperLogPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取操作日志列表信息 @@ -53,7 +54,7 @@ class OperationLogDao: .distinct() .order_by(order_by_column) ) - operation_log_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + operation_log_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) @@ -104,7 +105,7 @@ class LoginLogDao: @classmethod async def get_login_log_list( cls, db: AsyncSession, query_object: LoginLogPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取登录日志列表信息 @@ -139,7 +140,7 @@ class LoginLogDao: .distinct() .order_by(order_by_column) ) - login_log_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + login_log_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py b/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py index b078555..2dcce96 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py @@ -4,9 +4,10 @@ from typing import Any, Union from sqlalchemy import delete, select, update from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.notice_do import SysNotice from module_admin.entity.vo.notice_vo import NoticeModel, NoticePageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class NoticeDao: @@ -55,7 +56,7 @@ class NoticeDao: @classmethod async def get_notice_list( cls, db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取通知公告列表信息 @@ -80,7 +81,7 @@ class NoticeDao: .order_by(SysNotice.notice_id) .distinct() ) - notice_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + notice_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/post_dao.py b/ruoyi-fastapi-backend/module_admin/dao/post_dao.py index 3ea0b22..39ec9aa 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/post_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/post_dao.py @@ -3,10 +3,11 @@ from typing import Any, Union from sqlalchemy import delete, func, select, update from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.post_do import SysPost from module_admin.entity.do.user_do import SysUserPost from module_admin.entity.vo.post_vo import PostModel, PostPageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class PostDao: @@ -72,7 +73,7 @@ class PostDao: @classmethod async def get_post_list( cls, db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取岗位列表信息 @@ -91,7 +92,7 @@ class PostDao: .order_by(SysPost.post_sort) .distinct() ) - post_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + post_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/role_dao.py b/ruoyi-fastapi-backend/module_admin/dao/role_dao.py index cc9366c..0f5d560 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/role_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/role_dao.py @@ -5,12 +5,13 @@ from typing import Any, Union from sqlalchemy import and_, delete, desc, func, or_, select, update # noqa: F401 from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.dept_do import SysDept from module_admin.entity.do.menu_do import SysMenu from module_admin.entity.do.role_do import SysRole, SysRoleDept, SysRoleMenu from module_admin.entity.do.user_do import SysUser, SysUserRole from module_admin.entity.vo.role_vo import RoleDeptModel, RoleMenuModel, RoleModel, RolePageQueryModel -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class RoleDao: @@ -131,7 +132,7 @@ class RoleDao: @classmethod async def get_role_list( cls, db: AsyncSession, query_object: RolePageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取角色列表信息 @@ -163,7 +164,7 @@ class RoleDao: .order_by(SysRole.role_sort) .distinct() ) - role_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + role_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/dao/user_dao.py b/ruoyi-fastapi-backend/module_admin/dao/user_dao.py index 0442426..f052c7f 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/user_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/user_dao.py @@ -5,6 +5,7 @@ from typing import Any, Union from sqlalchemy import and_, delete, desc, func, or_, select, update from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from module_admin.entity.do.dept_do import SysDept from module_admin.entity.do.menu_do import SysMenu from module_admin.entity.do.post_do import SysPost @@ -18,7 +19,7 @@ from module_admin.entity.vo.user_vo import ( UserRolePageQueryModel, UserRoleQueryModel, ) -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class UserDao: @@ -280,7 +281,7 @@ class UserDao: @classmethod async def get_user_list( cls, db: AsyncSession, query_object: UserPageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> Union[PageResponseModel, list[list[dict[str, Any]]]]: + ) -> Union[PageModel, list[list[dict[str, Any]]]]: """ 根据查询参数获取用户列表信息 @@ -325,7 +326,7 @@ class UserDao: .order_by(SysUser.user_id) .distinct() ) - user_list: Union[PageResponseModel, list[list[dict[str, Any]]]] = await PageUtil.paginate( + user_list: Union[PageModel, list[list[dict[str, Any]]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) @@ -408,7 +409,7 @@ class UserDao: @classmethod async def get_user_role_allocated_list_by_role_id( cls, db: AsyncSession, query_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据角色id获取已分配的用户列表信息 @@ -432,7 +433,7 @@ class UserDao: ) .distinct() ) - allocated_user_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + allocated_user_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) @@ -441,7 +442,7 @@ class UserDao: @classmethod async def get_user_role_unallocated_list_by_role_id( cls, db: AsyncSession, query_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据角色id获取未分配的用户列表信息 @@ -473,7 +474,7 @@ class UserDao: ) .distinct() ) - unallocated_user_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + unallocated_user_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_admin/service/config_service.py b/ruoyi-fastapi-backend/module_admin/service/config_service.py index 3c45a5f..eee4e9b 100644 --- a/ruoyi-fastapi-backend/module_admin/service/config_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/config_service.py @@ -6,13 +6,13 @@ from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant from common.enums import RedisInitKeyConfig +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.config_dao import ConfigDao from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel, DeleteConfigModel from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel class ConfigService: @@ -23,7 +23,7 @@ class ConfigService: @classmethod async def get_config_list_services( cls, query_db: AsyncSession, query_object: ConfigPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取参数配置列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/dict_service.py b/ruoyi-fastapi-backend/module_admin/service/dict_service.py index d92fcbe..c2a95a6 100644 --- a/ruoyi-fastapi-backend/module_admin/service/dict_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/dict_service.py @@ -8,6 +8,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant from common.enums import RedisInitKeyConfig +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.dict_dao import DictDataDao, DictTypeDao from module_admin.entity.do.dict_do import SysDictData @@ -22,7 +23,6 @@ from module_admin.entity.vo.dict_vo import ( ) from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel class DictTypeService: @@ -33,7 +33,7 @@ class DictTypeService: @classmethod async def get_dict_type_list_services( cls, query_db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取字典类型列表信息service @@ -231,7 +231,7 @@ class DictDataService: @classmethod async def get_dict_data_list_services( cls, query_db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取字典数据列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/job_log_service.py b/ruoyi-fastapi-backend/module_admin/service/job_log_service.py index be67b3b..311d4f3 100644 --- a/ruoyi-fastapi-backend/module_admin/service/job_log_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/job_log_service.py @@ -4,12 +4,12 @@ from fastapi import Request from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import Session +from common.vo import PageModel from module_admin.dao.job_log_dao import JobLogDao from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.job_vo import DeleteJobLogModel, JobLogModel, JobLogPageQueryModel from module_admin.service.dict_service import DictDataService from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel class JobLogService: @@ -20,7 +20,7 @@ class JobLogService: @classmethod async def get_job_log_list_services( cls, query_db: AsyncSession, query_object: JobLogPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取定时任务日志列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/job_service.py b/ruoyi-fastapi-backend/module_admin/service/job_service.py index 83a9282..c4a01bc 100644 --- a/ruoyi-fastapi-backend/module_admin/service/job_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/job_service.py @@ -4,6 +4,7 @@ from fastapi import Request from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant, JobConstant +from common.vo import PageModel from config.get_scheduler import SchedulerUtil from exceptions.exception import ServiceException from module_admin.dao.job_dao import JobDao @@ -13,7 +14,6 @@ from module_admin.service.dict_service import DictDataService from utils.common_util import CamelCaseUtil from utils.cron_util import CronUtil from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel from utils.string_util import StringUtil @@ -25,7 +25,7 @@ class JobService: @classmethod async def get_job_list_services( cls, query_db: AsyncSession, query_object: JobPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取定时任务列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/log_service.py b/ruoyi-fastapi-backend/module_admin/service/log_service.py index b577834..a857da1 100644 --- a/ruoyi-fastapi-backend/module_admin/service/log_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/log_service.py @@ -3,6 +3,7 @@ from typing import Any, Union from fastapi import Request from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.log_dao import LoginLogDao, OperationLogDao from module_admin.entity.vo.common_vo import CrudResponseModel @@ -17,7 +18,6 @@ from module_admin.entity.vo.log_vo import ( ) from module_admin.service.dict_service import DictDataService from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel class OperationLogService: @@ -28,7 +28,7 @@ class OperationLogService: @classmethod async def get_operation_log_list_services( cls, query_db: AsyncSession, query_object: OperLogPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取操作日志列表信息service @@ -155,7 +155,7 @@ class LoginLogService: @classmethod async def get_login_log_list_services( cls, query_db: AsyncSession, query_object: LoginLogPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取登录日志列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/notice_service.py b/ruoyi-fastapi-backend/module_admin/service/notice_service.py index 5949887..14106f6 100644 --- a/ruoyi-fastapi-backend/module_admin/service/notice_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/notice_service.py @@ -3,12 +3,12 @@ from typing import Any, Union from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.notice_dao import NoticeDao from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel from utils.common_util import CamelCaseUtil -from utils.page_util import PageResponseModel class NoticeService: @@ -19,7 +19,7 @@ class NoticeService: @classmethod async def get_notice_list_services( cls, query_db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = True - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取通知公告列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/post_service.py b/ruoyi-fastapi-backend/module_admin/service/post_service.py index cdf93ef..45f0342 100644 --- a/ruoyi-fastapi-backend/module_admin/service/post_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/post_service.py @@ -3,13 +3,13 @@ from typing import Any, Union from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.post_dao import PostDao from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel class PostService: @@ -20,7 +20,7 @@ class PostService: @classmethod async def get_post_list_services( cls, query_db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取岗位列表信息service diff --git a/ruoyi-fastapi-backend/module_admin/service/role_service.py b/ruoyi-fastapi-backend/module_admin/service/role_service.py index 4662e0d..d5fec77 100644 --- a/ruoyi-fastapi-backend/module_admin/service/role_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/role_service.py @@ -3,6 +3,7 @@ from typing import Any, Union from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.role_dao import RoleDao from module_admin.dao.user_dao import UserDao @@ -19,7 +20,6 @@ from module_admin.entity.vo.role_vo import ( from module_admin.entity.vo.user_vo import UserInfoModel, UserRolePageQueryModel from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel class RoleService: @@ -58,7 +58,7 @@ class RoleService: @classmethod async def get_role_list_services( cls, query_db: AsyncSession, query_object: RolePageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取角色列表信息service @@ -306,7 +306,7 @@ class RoleService: @classmethod async def get_role_user_allocated_list_services( cls, query_db: AsyncSession, page_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> PageResponseModel: + ) -> PageModel: """ 根据角色id获取已分配用户列表 @@ -319,7 +319,7 @@ class RoleService: query_user_list = await UserDao.get_user_role_allocated_list_by_role_id( query_db, page_object, data_scope_sql, is_page ) - allocated_list = PageResponseModel( + allocated_list = PageModel( **{ **query_user_list.model_dump(by_alias=True), 'rows': [UserInfoModel(**row) for row in query_user_list.rows], @@ -331,7 +331,7 @@ class RoleService: @classmethod async def get_role_user_unallocated_list_services( cls, query_db: AsyncSession, page_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> PageResponseModel: + ) -> PageModel: """ 根据角色id获取未分配用户列表 @@ -344,7 +344,7 @@ class RoleService: query_user_list = await UserDao.get_user_role_unallocated_list_by_role_id( query_db, page_object, data_scope_sql, is_page ) - unallocated_list = PageResponseModel( + unallocated_list = PageModel( **{ **query_user_list.model_dump(by_alias=True), 'rows': [UserInfoModel(**row) for row in query_user_list.rows], diff --git a/ruoyi-fastapi-backend/module_admin/service/user_service.py b/ruoyi-fastapi-backend/module_admin/service/user_service.py index aaefc00..71270ee 100644 --- a/ruoyi-fastapi-backend/module_admin/service/user_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/user_service.py @@ -7,6 +7,7 @@ from fastapi import Request, UploadFile from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant +from common.vo import PageModel from exceptions.exception import ServiceException from module_admin.dao.user_dao import UserDao from module_admin.entity.do.user_do import SysUserRole @@ -36,7 +37,6 @@ from module_admin.service.post_service import PostService from module_admin.service.role_service import RoleService from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil -from utils.page_util import PageResponseModel from utils.pwd_util import PwdUtil @@ -48,7 +48,7 @@ class UserService: @classmethod async def get_user_list_services( cls, query_db: AsyncSession, query_object: UserPageQueryModel, data_scope_sql: str, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取用户列表信息service @@ -60,7 +60,7 @@ class UserService: """ query_result = await UserDao.get_user_list(query_db, query_object, data_scope_sql, is_page) if is_page: - user_list_result = PageResponseModel( + user_list_result = PageModel( **{ **query_result.model_dump(by_alias=True), 'rows': [{**row[0], 'dept': row[1]} for row in query_result.rows], diff --git a/ruoyi-fastapi-backend/module_generator/dao/gen_dao.py b/ruoyi-fastapi-backend/module_generator/dao/gen_dao.py index ae4fc9b..d490ca2 100644 --- a/ruoyi-fastapi-backend/module_generator/dao/gen_dao.py +++ b/ruoyi-fastapi-backend/module_generator/dao/gen_dao.py @@ -7,6 +7,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import selectinload from sqlglot.expressions import Expression +from common.vo import PageModel from config.env import DataBaseConfig from module_generator.entity.do.gen_do import GenTable, GenTableColumn from module_generator.entity.vo.gen_vo import ( @@ -16,7 +17,7 @@ from module_generator.entity.vo.gen_vo import ( GenTableModel, GenTablePageQueryModel, ) -from utils.page_util import PageResponseModel, PageUtil +from utils.page_util import PageUtil class GenTableDao: @@ -94,7 +95,7 @@ class GenTableDao: @classmethod async def get_gen_table_list( cls, db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取代码生成业务表列表信息 @@ -122,7 +123,7 @@ class GenTableDao: ) .distinct() ) - gen_table_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + gen_table_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) @@ -131,7 +132,7 @@ class GenTableDao: @classmethod async def get_gen_db_table_list( cls, db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 根据查询参数获取数据库列表信息 @@ -185,7 +186,7 @@ class GenTableDao: query = select( text(query_sql).bindparams(**query_object.model_dump(exclude_none=True, exclude={'page_num', 'page_size'})) ) - gen_db_table_list: Union[PageResponseModel, list[dict[str, Any]]] = await PageUtil.paginate( + gen_db_table_list: Union[PageModel, list[dict[str, Any]]] = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page ) diff --git a/ruoyi-fastapi-backend/module_generator/service/gen_service.py b/ruoyi-fastapi-backend/module_generator/service/gen_service.py index a46bc7b..14b31f8 100644 --- a/ruoyi-fastapi-backend/module_generator/service/gen_service.py +++ b/ruoyi-fastapi-backend/module_generator/service/gen_service.py @@ -11,6 +11,7 @@ from sqlglot import parse as sqlglot_parse from sqlglot.expressions import Add, Alter, Create, Delete, Drop, Expression, Insert, Table, TruncateTable, Update from common.constant import GenConstant +from common.vo import PageModel from config.env import DataBaseConfig, GenConfig from exceptions.exception import ServiceException from module_admin.entity.vo.common_vo import CrudResponseModel @@ -25,7 +26,6 @@ from module_generator.entity.vo.gen_vo import ( ) from utils.common_util import CamelCaseUtil from utils.gen_util import GenUtils -from utils.page_util import PageResponseModel from utils.template_util import TemplateInitializer, TemplateUtils @@ -37,7 +37,7 @@ class GenTableService: @classmethod async def get_gen_table_list_services( cls, query_db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取代码生成业务表列表信息service @@ -53,7 +53,7 @@ class GenTableService: @classmethod async def get_gen_db_table_list_services( cls, query_db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False - ) -> Union[PageResponseModel, list[dict[str, Any]]]: + ) -> Union[PageModel, list[dict[str, Any]]]: """ 获取数据库列表信息service diff --git a/ruoyi-fastapi-backend/utils/page_util.py b/ruoyi-fastapi-backend/utils/page_util.py index 29b7f38..ba75f70 100644 --- a/ruoyi-fastapi-backend/utils/page_util.py +++ b/ruoyi-fastapi-backend/utils/page_util.py @@ -1,35 +1,20 @@ import math -from typing import Any, Optional, Union +from typing import Any, Union -from pydantic import BaseModel, ConfigDict -from pydantic.alias_generators import to_camel from sqlalchemy import Row, Select, func, select from sqlalchemy.ext.asyncio import AsyncSession +from common.vo import PageModel from utils.common_util import CamelCaseUtil -class PageResponseModel(BaseModel): - """ - 列表分页查询返回模型 - """ - - model_config = ConfigDict(alias_generator=to_camel) - - rows: list = [] - page_num: Optional[int] = None - page_size: Optional[int] = None - total: int - has_next: Optional[bool] = None - - class PageUtil: """ 分页工具类 """ @classmethod - def get_page_obj(cls, data_list: list, page_num: int, page_size: int) -> PageResponseModel: + def get_page_obj(cls, data_list: list, page_num: int, page_size: int) -> PageModel: """ 输入数据列表data_list和分页信息,返回分页数据列表结果 @@ -46,7 +31,7 @@ class PageUtil: paginated_data = data_list[start:end] has_next = math.ceil(len(data_list) / page_size) > page_num - result = PageResponseModel( + result = PageModel[Any]( rows=paginated_data, pageNum=page_num, pageSize=page_size, total=len(data_list), hasNext=has_next ) @@ -55,7 +40,7 @@ class PageUtil: @classmethod async def paginate( cls, db: AsyncSession, query: Select, page_num: int, page_size: int, is_page: bool = False - ) -> Union[PageResponseModel, list[Union[dict[str, Any], list[dict[Any, Any]]]]]: + ) -> Union[PageModel, list[Union[dict[str, Any], list[dict[Any, Any]]]]]: """ 输入查询语句和分页信息,返回分页数据列表结果 @@ -76,7 +61,7 @@ class PageUtil: else: paginated_data.append(row) has_next = math.ceil(total / page_size) > page_num - result = PageResponseModel( + result = PageModel[Any]( rows=CamelCaseUtil.transform_result(paginated_data), pageNum=page_num, pageSize=page_size, @@ -96,7 +81,7 @@ class PageUtil: return result -def get_page_obj(data_list: list, page_num: int, page_size: int) -> PageResponseModel: +def get_page_obj(data_list: list, page_num: int, page_size: int) -> PageModel: """ 输入数据列表data_list和分页信息,返回分页数据列表结果 @@ -113,7 +98,7 @@ def get_page_obj(data_list: list, page_num: int, page_size: int) -> PageResponse paginated_data = data_list[start:end] has_next = math.ceil(len(data_list) / page_size) > page_num - result = PageResponseModel( + result = PageModel[Any]( rows=paginated_data, pageNum=page_num, pageSize=page_size, total=len(data_list), hasNext=has_next )