perf: 分页模型改为使用公共vo模块的PageModel

This commit is contained in:
insistence
2025-12-12 17:44:27 +08:00
parent b8dcbdc448
commit 1656670203
21 changed files with 86 additions and 91 deletions
@@ -4,9 +4,10 @@ from typing import Any, Union
from sqlalchemy import delete, select, update from sqlalchemy import delete, select, update
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.vo import PageModel
from module_admin.entity.do.config_do import SysConfig from module_admin.entity.do.config_do import SysConfig
from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel 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: class ConfigDao:
@@ -54,7 +55,7 @@ class ConfigDao:
@classmethod @classmethod
async def get_config_list( async def get_config_list(
cls, db: AsyncSession, query_object: ConfigPageQueryModel, is_page: bool = False 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) .order_by(SysConfig.config_id)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -5,9 +5,10 @@ from typing import Any, Union
from sqlalchemy import and_, delete, func, select, update from sqlalchemy import and_, delete, func, select, update
from sqlalchemy.ext.asyncio import AsyncSession 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.do.dict_do import SysDictData, SysDictType
from module_admin.entity.vo.dict_vo import DictDataModel, DictDataPageQueryModel, DictTypeModel, DictTypePageQueryModel 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 from utils.time_format_util import list_format_datetime
@@ -68,7 +69,7 @@ class DictTypeDao:
@classmethod @classmethod
async def get_dict_type_list( async def get_dict_type_list(
cls, db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False 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) .order_by(SysDictType.dict_id)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -185,7 +186,7 @@ class DictDataDao:
@classmethod @classmethod
async def get_dict_data_list( async def get_dict_data_list(
cls, db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False 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) .order_by(SysDictData.dict_sort)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -4,9 +4,10 @@ from typing import Any, Union
from sqlalchemy import delete, select, update from sqlalchemy import delete, select, update
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.vo import PageModel
from module_admin.entity.do.job_do import SysJob from module_admin.entity.do.job_do import SysJob
from module_admin.entity.vo.job_vo import JobModel, JobPageQueryModel 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: class JobDao:
@@ -59,7 +60,7 @@ class JobDao:
@classmethod @classmethod
async def get_job_list( async def get_job_list(
cls, db: AsyncSession, query_object: JobPageQueryModel, is_page: bool = False 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) .order_by(SysJob.job_id)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -5,9 +5,10 @@ from sqlalchemy import delete, desc, select
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from common.vo import PageModel
from module_admin.entity.do.job_do import SysJobLog from module_admin.entity.do.job_do import SysJobLog
from module_admin.entity.vo.job_vo import JobLogModel, JobLogPageQueryModel 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: class JobLogDao:
@@ -18,7 +19,7 @@ class JobLogDao:
@classmethod @classmethod
async def get_job_log_list( async def get_job_log_list(
cls, db: AsyncSession, query_object: JobLogPageQueryModel, is_page: bool = False 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)) .order_by(desc(SysJobLog.create_time))
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -4,10 +4,11 @@ from typing import Any, Union
from sqlalchemy import asc, delete, desc, select from sqlalchemy import asc, delete, desc, select
from sqlalchemy.ext.asyncio import AsyncSession 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.do.log_do import SysLogininfor, SysOperLog
from module_admin.entity.vo.log_vo import LogininforModel, LoginLogPageQueryModel, OperLogModel, OperLogPageQueryModel from module_admin.entity.vo.log_vo import LogininforModel, LoginLogPageQueryModel, OperLogModel, OperLogPageQueryModel
from utils.common_util import SnakeCaseUtil 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 from utils.time_format_util import TimeFormatUtil
@@ -19,7 +20,7 @@ class OperationLogDao:
@classmethod @classmethod
async def get_operation_log_list( async def get_operation_log_list(
cls, db: AsyncSession, query_object: OperLogPageQueryModel, is_page: bool = False 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() .distinct()
.order_by(order_by_column) .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -104,7 +105,7 @@ class LoginLogDao:
@classmethod @classmethod
async def get_login_log_list( async def get_login_log_list(
cls, db: AsyncSession, query_object: LoginLogPageQueryModel, is_page: bool = False 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() .distinct()
.order_by(order_by_column) .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -4,9 +4,10 @@ from typing import Any, Union
from sqlalchemy import delete, select, update from sqlalchemy import delete, select, update
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.vo import PageModel
from module_admin.entity.do.notice_do import SysNotice from module_admin.entity.do.notice_do import SysNotice
from module_admin.entity.vo.notice_vo import NoticeModel, NoticePageQueryModel 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: class NoticeDao:
@@ -55,7 +56,7 @@ class NoticeDao:
@classmethod @classmethod
async def get_notice_list( async def get_notice_list(
cls, db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = False 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) .order_by(SysNotice.notice_id)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -3,10 +3,11 @@ from typing import Any, Union
from sqlalchemy import delete, func, select, update from sqlalchemy import delete, func, select, update
from sqlalchemy.ext.asyncio import AsyncSession 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.post_do import SysPost
from module_admin.entity.do.user_do import SysUserPost from module_admin.entity.do.user_do import SysUserPost
from module_admin.entity.vo.post_vo import PostModel, PostPageQueryModel 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: class PostDao:
@@ -72,7 +73,7 @@ class PostDao:
@classmethod @classmethod
async def get_post_list( async def get_post_list(
cls, db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False 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) .order_by(SysPost.post_sort)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -5,12 +5,13 @@ from typing import Any, Union
from sqlalchemy import and_, delete, desc, func, or_, select, update # noqa: F401 from sqlalchemy import and_, delete, desc, func, or_, select, update # noqa: F401
from sqlalchemy.ext.asyncio import AsyncSession 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.dept_do import SysDept
from module_admin.entity.do.menu_do import SysMenu 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.role_do import SysRole, SysRoleDept, SysRoleMenu
from module_admin.entity.do.user_do import SysUser, SysUserRole from module_admin.entity.do.user_do import SysUser, SysUserRole
from module_admin.entity.vo.role_vo import RoleDeptModel, RoleMenuModel, RoleModel, RolePageQueryModel 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: class RoleDao:
@@ -131,7 +132,7 @@ class RoleDao:
@classmethod @classmethod
async def get_role_list( async def get_role_list(
cls, db: AsyncSession, query_object: RolePageQueryModel, data_scope_sql: str, is_page: bool = False 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) .order_by(SysRole.role_sort)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -5,6 +5,7 @@ from typing import Any, Union
from sqlalchemy import and_, delete, desc, func, or_, select, update from sqlalchemy import and_, delete, desc, func, or_, select, update
from sqlalchemy.ext.asyncio import AsyncSession 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.dept_do import SysDept
from module_admin.entity.do.menu_do import SysMenu from module_admin.entity.do.menu_do import SysMenu
from module_admin.entity.do.post_do import SysPost from module_admin.entity.do.post_do import SysPost
@@ -18,7 +19,7 @@ from module_admin.entity.vo.user_vo import (
UserRolePageQueryModel, UserRolePageQueryModel,
UserRoleQueryModel, UserRoleQueryModel,
) )
from utils.page_util import PageResponseModel, PageUtil from utils.page_util import PageUtil
class UserDao: class UserDao:
@@ -280,7 +281,7 @@ class UserDao:
@classmethod @classmethod
async def get_user_list( async def get_user_list(
cls, db: AsyncSession, query_object: UserPageQueryModel, data_scope_sql: str, is_page: bool = False 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) .order_by(SysUser.user_id)
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -408,7 +409,7 @@ class UserDao:
@classmethod @classmethod
async def get_user_role_allocated_list_by_role_id( async def get_user_role_allocated_list_by_role_id(
cls, db: AsyncSession, query_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False 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获取已分配的用户列表信息 根据角色id获取已分配的用户列表信息
@@ -432,7 +433,7 @@ class UserDao:
) )
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -441,7 +442,7 @@ class UserDao:
@classmethod @classmethod
async def get_user_role_unallocated_list_by_role_id( async def get_user_role_unallocated_list_by_role_id(
cls, db: AsyncSession, query_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False 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获取未分配的用户列表信息 根据角色id获取未分配的用户列表信息
@@ -473,7 +474,7 @@ class UserDao:
) )
.distinct() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -6,13 +6,13 @@ from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant from common.constant import CommonConstant
from common.enums import RedisInitKeyConfig from common.enums import RedisInitKeyConfig
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.config_dao import ConfigDao from module_admin.dao.config_dao import ConfigDao
from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel, DeleteConfigModel from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel, DeleteConfigModel
from utils.common_util import CamelCaseUtil from utils.common_util import CamelCaseUtil
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
class ConfigService: class ConfigService:
@@ -23,7 +23,7 @@ class ConfigService:
@classmethod @classmethod
async def get_config_list_services( async def get_config_list_services(
cls, query_db: AsyncSession, query_object: ConfigPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: ConfigPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取参数配置列表信息service 获取参数配置列表信息service
@@ -8,6 +8,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant from common.constant import CommonConstant
from common.enums import RedisInitKeyConfig from common.enums import RedisInitKeyConfig
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.dict_dao import DictDataDao, DictTypeDao from module_admin.dao.dict_dao import DictDataDao, DictTypeDao
from module_admin.entity.do.dict_do import SysDictData 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.common_util import CamelCaseUtil
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
class DictTypeService: class DictTypeService:
@@ -33,7 +33,7 @@ class DictTypeService:
@classmethod @classmethod
async def get_dict_type_list_services( async def get_dict_type_list_services(
cls, query_db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取字典类型列表信息service 获取字典类型列表信息service
@@ -231,7 +231,7 @@ class DictDataService:
@classmethod @classmethod
async def get_dict_data_list_services( async def get_dict_data_list_services(
cls, query_db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取字典数据列表信息service 获取字典数据列表信息service
@@ -4,12 +4,12 @@ from fastapi import Request
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from common.vo import PageModel
from module_admin.dao.job_log_dao import JobLogDao from module_admin.dao.job_log_dao import JobLogDao
from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.job_vo import DeleteJobLogModel, JobLogModel, JobLogPageQueryModel from module_admin.entity.vo.job_vo import DeleteJobLogModel, JobLogModel, JobLogPageQueryModel
from module_admin.service.dict_service import DictDataService from module_admin.service.dict_service import DictDataService
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
class JobLogService: class JobLogService:
@@ -20,7 +20,7 @@ class JobLogService:
@classmethod @classmethod
async def get_job_log_list_services( async def get_job_log_list_services(
cls, query_db: AsyncSession, query_object: JobLogPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: JobLogPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取定时任务日志列表信息service 获取定时任务日志列表信息service
@@ -4,6 +4,7 @@ from fastapi import Request
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant, JobConstant from common.constant import CommonConstant, JobConstant
from common.vo import PageModel
from config.get_scheduler import SchedulerUtil from config.get_scheduler import SchedulerUtil
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.job_dao import JobDao 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.common_util import CamelCaseUtil
from utils.cron_util import CronUtil from utils.cron_util import CronUtil
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
from utils.string_util import StringUtil from utils.string_util import StringUtil
@@ -25,7 +25,7 @@ class JobService:
@classmethod @classmethod
async def get_job_list_services( async def get_job_list_services(
cls, query_db: AsyncSession, query_object: JobPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: JobPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取定时任务列表信息service 获取定时任务列表信息service
@@ -3,6 +3,7 @@ from typing import Any, Union
from fastapi import Request from fastapi import Request
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.log_dao import LoginLogDao, OperationLogDao from module_admin.dao.log_dao import LoginLogDao, OperationLogDao
from module_admin.entity.vo.common_vo import CrudResponseModel 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 module_admin.service.dict_service import DictDataService
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
class OperationLogService: class OperationLogService:
@@ -28,7 +28,7 @@ class OperationLogService:
@classmethod @classmethod
async def get_operation_log_list_services( async def get_operation_log_list_services(
cls, query_db: AsyncSession, query_object: OperLogPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: OperLogPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取操作日志列表信息service 获取操作日志列表信息service
@@ -155,7 +155,7 @@ class LoginLogService:
@classmethod @classmethod
async def get_login_log_list_services( async def get_login_log_list_services(
cls, query_db: AsyncSession, query_object: LoginLogPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: LoginLogPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取登录日志列表信息service 获取登录日志列表信息service
@@ -3,12 +3,12 @@ from typing import Any, Union
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant from common.constant import CommonConstant
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.notice_dao import NoticeDao from module_admin.dao.notice_dao import NoticeDao
from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel
from utils.common_util import CamelCaseUtil from utils.common_util import CamelCaseUtil
from utils.page_util import PageResponseModel
class NoticeService: class NoticeService:
@@ -19,7 +19,7 @@ class NoticeService:
@classmethod @classmethod
async def get_notice_list_services( async def get_notice_list_services(
cls, query_db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = True cls, query_db: AsyncSession, query_object: NoticePageQueryModel, is_page: bool = True
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取通知公告列表信息service 获取通知公告列表信息service
@@ -3,13 +3,13 @@ from typing import Any, Union
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant from common.constant import CommonConstant
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.post_dao import PostDao from module_admin.dao.post_dao import PostDao
from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel
from utils.common_util import CamelCaseUtil from utils.common_util import CamelCaseUtil
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
class PostService: class PostService:
@@ -20,7 +20,7 @@ class PostService:
@classmethod @classmethod
async def get_post_list_services( async def get_post_list_services(
cls, query_db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: PostPageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取岗位列表信息service 获取岗位列表信息service
@@ -3,6 +3,7 @@ from typing import Any, Union
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant from common.constant import CommonConstant
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.role_dao import RoleDao from module_admin.dao.role_dao import RoleDao
from module_admin.dao.user_dao import UserDao 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 module_admin.entity.vo.user_vo import UserInfoModel, UserRolePageQueryModel
from utils.common_util import CamelCaseUtil from utils.common_util import CamelCaseUtil
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
class RoleService: class RoleService:
@@ -58,7 +58,7 @@ class RoleService:
@classmethod @classmethod
async def get_role_list_services( async def get_role_list_services(
cls, query_db: AsyncSession, query_object: RolePageQueryModel, data_scope_sql: str, is_page: bool = False 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 获取角色列表信息service
@@ -306,7 +306,7 @@ class RoleService:
@classmethod @classmethod
async def get_role_user_allocated_list_services( async def get_role_user_allocated_list_services(
cls, query_db: AsyncSession, page_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False cls, query_db: AsyncSession, page_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False
) -> PageResponseModel: ) -> PageModel:
""" """
根据角色id获取已分配用户列表 根据角色id获取已分配用户列表
@@ -319,7 +319,7 @@ class RoleService:
query_user_list = await UserDao.get_user_role_allocated_list_by_role_id( query_user_list = await UserDao.get_user_role_allocated_list_by_role_id(
query_db, page_object, data_scope_sql, is_page query_db, page_object, data_scope_sql, is_page
) )
allocated_list = PageResponseModel( allocated_list = PageModel(
**{ **{
**query_user_list.model_dump(by_alias=True), **query_user_list.model_dump(by_alias=True),
'rows': [UserInfoModel(**row) for row in query_user_list.rows], 'rows': [UserInfoModel(**row) for row in query_user_list.rows],
@@ -331,7 +331,7 @@ class RoleService:
@classmethod @classmethod
async def get_role_user_unallocated_list_services( async def get_role_user_unallocated_list_services(
cls, query_db: AsyncSession, page_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False cls, query_db: AsyncSession, page_object: UserRolePageQueryModel, data_scope_sql: str, is_page: bool = False
) -> PageResponseModel: ) -> PageModel:
""" """
根据角色id获取未分配用户列表 根据角色id获取未分配用户列表
@@ -344,7 +344,7 @@ class RoleService:
query_user_list = await UserDao.get_user_role_unallocated_list_by_role_id( query_user_list = await UserDao.get_user_role_unallocated_list_by_role_id(
query_db, page_object, data_scope_sql, is_page query_db, page_object, data_scope_sql, is_page
) )
unallocated_list = PageResponseModel( unallocated_list = PageModel(
**{ **{
**query_user_list.model_dump(by_alias=True), **query_user_list.model_dump(by_alias=True),
'rows': [UserInfoModel(**row) for row in query_user_list.rows], 'rows': [UserInfoModel(**row) for row in query_user_list.rows],
@@ -7,6 +7,7 @@ from fastapi import Request, UploadFile
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.constant import CommonConstant from common.constant import CommonConstant
from common.vo import PageModel
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.dao.user_dao import UserDao from module_admin.dao.user_dao import UserDao
from module_admin.entity.do.user_do import SysUserRole 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 module_admin.service.role_service import RoleService
from utils.common_util import CamelCaseUtil from utils.common_util import CamelCaseUtil
from utils.excel_util import ExcelUtil from utils.excel_util import ExcelUtil
from utils.page_util import PageResponseModel
from utils.pwd_util import PwdUtil from utils.pwd_util import PwdUtil
@@ -48,7 +48,7 @@ class UserService:
@classmethod @classmethod
async def get_user_list_services( async def get_user_list_services(
cls, query_db: AsyncSession, query_object: UserPageQueryModel, data_scope_sql: str, is_page: bool = False 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 获取用户列表信息service
@@ -60,7 +60,7 @@ class UserService:
""" """
query_result = await UserDao.get_user_list(query_db, query_object, data_scope_sql, is_page) query_result = await UserDao.get_user_list(query_db, query_object, data_scope_sql, is_page)
if is_page: if is_page:
user_list_result = PageResponseModel( user_list_result = PageModel(
**{ **{
**query_result.model_dump(by_alias=True), **query_result.model_dump(by_alias=True),
'rows': [{**row[0], 'dept': row[1]} for row in query_result.rows], 'rows': [{**row[0], 'dept': row[1]} for row in query_result.rows],
@@ -7,6 +7,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import selectinload from sqlalchemy.orm import selectinload
from sqlglot.expressions import Expression from sqlglot.expressions import Expression
from common.vo import PageModel
from config.env import DataBaseConfig from config.env import DataBaseConfig
from module_generator.entity.do.gen_do import GenTable, GenTableColumn from module_generator.entity.do.gen_do import GenTable, GenTableColumn
from module_generator.entity.vo.gen_vo import ( from module_generator.entity.vo.gen_vo import (
@@ -16,7 +17,7 @@ from module_generator.entity.vo.gen_vo import (
GenTableModel, GenTableModel,
GenTablePageQueryModel, GenTablePageQueryModel,
) )
from utils.page_util import PageResponseModel, PageUtil from utils.page_util import PageUtil
class GenTableDao: class GenTableDao:
@@ -94,7 +95,7 @@ class GenTableDao:
@classmethod @classmethod
async def get_gen_table_list( async def get_gen_table_list(
cls, db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False 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() .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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -131,7 +132,7 @@ class GenTableDao:
@classmethod @classmethod
async def get_gen_db_table_list( async def get_gen_db_table_list(
cls, db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False 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( query = select(
text(query_sql).bindparams(**query_object.model_dump(exclude_none=True, exclude={'page_num', 'page_size'})) 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 db, query, query_object.page_num, query_object.page_size, is_page
) )
@@ -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 sqlglot.expressions import Add, Alter, Create, Delete, Drop, Expression, Insert, Table, TruncateTable, Update
from common.constant import GenConstant from common.constant import GenConstant
from common.vo import PageModel
from config.env import DataBaseConfig, GenConfig from config.env import DataBaseConfig, GenConfig
from exceptions.exception import ServiceException from exceptions.exception import ServiceException
from module_admin.entity.vo.common_vo import CrudResponseModel 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.common_util import CamelCaseUtil
from utils.gen_util import GenUtils from utils.gen_util import GenUtils
from utils.page_util import PageResponseModel
from utils.template_util import TemplateInitializer, TemplateUtils from utils.template_util import TemplateInitializer, TemplateUtils
@@ -37,7 +37,7 @@ class GenTableService:
@classmethod @classmethod
async def get_gen_table_list_services( async def get_gen_table_list_services(
cls, query_db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取代码生成业务表列表信息service 获取代码生成业务表列表信息service
@@ -53,7 +53,7 @@ class GenTableService:
@classmethod @classmethod
async def get_gen_db_table_list_services( async def get_gen_db_table_list_services(
cls, query_db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False cls, query_db: AsyncSession, query_object: GenTablePageQueryModel, is_page: bool = False
) -> Union[PageResponseModel, list[dict[str, Any]]]: ) -> Union[PageModel, list[dict[str, Any]]]:
""" """
获取数据库列表信息service 获取数据库列表信息service
+8 -23
View File
@@ -1,35 +1,20 @@
import math 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 import Row, Select, func, select
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from common.vo import PageModel
from utils.common_util import CamelCaseUtil 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: class PageUtil:
""" """
分页工具类 分页工具类
""" """
@classmethod @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和分页信息返回分页数据列表结果 输入数据列表data_list和分页信息返回分页数据列表结果
@@ -46,7 +31,7 @@ class PageUtil:
paginated_data = data_list[start:end] paginated_data = data_list[start:end]
has_next = math.ceil(len(data_list) / page_size) > page_num 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 rows=paginated_data, pageNum=page_num, pageSize=page_size, total=len(data_list), hasNext=has_next
) )
@@ -55,7 +40,7 @@ class PageUtil:
@classmethod @classmethod
async def paginate( async def paginate(
cls, db: AsyncSession, query: Select, page_num: int, page_size: int, is_page: bool = False 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: else:
paginated_data.append(row) paginated_data.append(row)
has_next = math.ceil(total / page_size) > page_num has_next = math.ceil(total / page_size) > page_num
result = PageResponseModel( result = PageModel[Any](
rows=CamelCaseUtil.transform_result(paginated_data), rows=CamelCaseUtil.transform_result(paginated_data),
pageNum=page_num, pageNum=page_num,
pageSize=page_size, pageSize=page_size,
@@ -96,7 +81,7 @@ class PageUtil:
return result 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和分页信息返回分页数据列表结果 输入数据列表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] paginated_data = data_list[start:end]
has_next = math.ceil(len(data_list) / page_size) > page_num 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 rows=paginated_data, pageNum=page_num, pageSize=page_size, total=len(data_list), hasNext=has_next
) )