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):