From 0620669a4528cb272ccf3c1bd46c60888da5bbe2 Mon Sep 17 00:00:00 2001 From: insistence <3055204202@qq.com> Date: Fri, 26 Jan 2024 08:58:34 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=A8=A1=E5=9D=97=E5=88=86=E9=A1=B5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_admin/controller/config_controller.py | 10 +++------- .../module_admin/dao/config_dao.py | 9 ++++++--- .../module_admin/entity/vo/config_vo.py | 4 ++-- .../module_admin/service/config_service.py | 13 +++++++------ 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/controller/config_controller.py b/ruoyi-fastapi-backend/module_admin/controller/config_controller.py index 65f1b6c..db89e20 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/config_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/config_controller.py @@ -17,11 +17,8 @@ configController = APIRouter(prefix='/system/config', dependencies=[Depends(Logi @configController.get("/list", response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:config:list'))]) async def get_system_config_list(request: Request, config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_query), query_db: Session = Depends(get_db)): try: - config_query = ConfigQueryModel(**config_page_query.model_dump(by_alias=True)) - # 获取全量数据 - config_query_result = ConfigService.get_config_list_services(query_db, config_query) - # 分页操作 - config_page_query_result = get_page_obj(config_query_result, config_page_query.page_num, config_page_query.page_size) + # 获取分页数据 + config_page_query_result = ConfigService.get_config_list_services(query_db, config_page_query, is_page=True) logger.info('获取成功') return ResponseUtil.success(model_content=config_page_query_result) except Exception as e: @@ -125,9 +122,8 @@ async def query_system_config(request: Request, config_key: str): @log_decorator(title='参数管理', business_type=5) async def export_system_config_list(request: Request, config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_form), query_db: Session = Depends(get_db)): try: - config_query = ConfigQueryModel(**config_page_query.model_dump(by_alias=True)) # 获取全量数据 - config_query_result = ConfigService.get_config_list_services(query_db, config_query) + config_query_result = ConfigService.get_config_list_services(query_db, config_page_query, is_page=False) config_export_result = ConfigService.export_config_list_services(config_query_result) logger.info('导出成功') return ResponseUtil.streaming(data=bytes2file_response(config_export_result)) diff --git a/ruoyi-fastapi-backend/module_admin/dao/config_dao.py b/ruoyi-fastapi-backend/module_admin/dao/config_dao.py index 3efea39..7a13a97 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/config_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/config_dao.py @@ -1,6 +1,7 @@ from sqlalchemy.orm import Session from module_admin.entity.do.config_do import SysConfig from module_admin.entity.vo.config_vo import * +from utils.page_util import PageUtil from datetime import datetime, time @@ -39,14 +40,15 @@ class ConfigDao: return config_info @classmethod - def get_config_list(cls, db: Session, query_object: ConfigQueryModel): + def get_config_list(cls, db: Session, query_object: ConfigPageQueryModel, is_page: bool = False): """ 根据查询参数获取参数配置列表信息 :param db: orm对象 :param query_object: 查询参数对象 + :param is_page: 是否开启分页 :return: 参数配置列表信息对象 """ - config_list = db.query(SysConfig) \ + query = db.query(SysConfig) \ .filter(SysConfig.config_name.like(f'%{query_object.config_name}%') if query_object.config_name else True, SysConfig.config_key.like(f'%{query_object.config_key}%') if query_object.config_key else True, SysConfig.config_type == query_object.config_type if query_object.config_type else True, @@ -55,7 +57,8 @@ class ConfigDao: datetime.combine(datetime.strptime(query_object.end_time, '%Y-%m-%d'), time(23, 59, 59))) if query_object.begin_time and query_object.end_time else True ) \ - .distinct().all() + .distinct() + config_list = PageUtil.paginate(query, query_object.page_num, query_object.page_size, is_page) return config_list diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py index 3d3cc39..6c7ada7 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/config_vo.py @@ -37,8 +37,8 @@ class ConfigPageQueryModel(ConfigQueryModel): """ 参数配置管理分页查询模型 """ - page_num: int - page_size: int + page_num: int = 1 + page_size: int = 10 class DeleteConfigModel(BaseModel): diff --git a/ruoyi-fastapi-backend/module_admin/service/config_service.py b/ruoyi-fastapi-backend/module_admin/service/config_service.py index 50e3d41..1ab439b 100644 --- a/ruoyi-fastapi-backend/module_admin/service/config_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/config_service.py @@ -11,16 +11,17 @@ class ConfigService: """ @classmethod - def get_config_list_services(cls, query_db: Session, query_object: ConfigQueryModel): + def get_config_list_services(cls, query_db: Session, query_object: ConfigPageQueryModel, is_page: bool = False): """ 获取参数配置列表信息service :param query_db: orm对象 :param query_object: 查询参数对象 + :param is_page: 是否开启分页 :return: 参数配置列表信息对象 """ - config_list_result = ConfigDao.get_config_list(query_db, query_object) + config_list_result = ConfigDao.get_config_list(query_db, query_object, is_page) - return CamelCaseUtil.transform_result(config_list_result) + return config_list_result @classmethod async def init_cache_sys_config_services(cls, query_db: Session, redis): @@ -35,10 +36,10 @@ class ConfigService: # 删除匹配的键 if keys: await redis.delete(*keys) - config_all = ConfigDao.get_config_list(query_db, ConfigQueryModel(**dict())) + config_all = ConfigDao.get_config_list(query_db, ConfigPageQueryModel(**dict()), is_page=False) for config_obj in config_all: - if config_obj.config_type == 'Y': - await redis.set(f"{RedisInitKeyConfig.SYS_CONFIG.get('key')}:{config_obj.config_key}", config_obj.config_value) + if config_obj.get('configType') == 'Y': + await redis.set(f"{RedisInitKeyConfig.SYS_CONFIG.get('key')}:{config_obj.get('configKey')}", config_obj.get('configValue')) @classmethod async def query_config_list_from_cache_services(cls, redis, config_key: str):