diff --git a/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py b/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py index 6c98361..4caaa7a 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/notice_controller.py @@ -16,11 +16,8 @@ noticeController = APIRouter(prefix='/system/notice', dependencies=[Depends(Logi @noticeController.get("/list", response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:notice:list'))]) async def get_system_notice_list(request: Request, notice_page_query: NoticePageQueryModel = Depends(NoticePageQueryModel.as_query), query_db: Session = Depends(get_db)): try: - notice_query = NoticeQueryModel(**notice_page_query.model_dump(by_alias=True)) - # 获取全量数据 - notice_query_result = NoticeService.get_notice_list_services(query_db, notice_query) - # 分页操作 - notice_page_query_result = get_page_obj(notice_query_result, notice_page_query.page_num, notice_page_query.page_size) + # 获取分页数据 + notice_page_query_result = NoticeService.get_notice_list_services(query_db, notice_page_query, is_page=True) logger.info('获取成功') return ResponseUtil.success(model_content=notice_page_query_result) except Exception as e: diff --git a/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py b/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py index ff4b347..2d3646f 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/notice_dao.py @@ -1,6 +1,7 @@ from sqlalchemy.orm import Session from module_admin.entity.do.notice_do import SysNotice from module_admin.entity.vo.notice_vo import * +from utils.page_util import PageUtil from datetime import datetime, time @@ -40,14 +41,15 @@ class NoticeDao: return notice_info @classmethod - def get_notice_list(cls, db: Session, query_object: NoticeQueryModel): + def get_notice_list(cls, db: Session, query_object: NoticePageQueryModel, is_page: bool = False): """ 根据查询参数获取通知公告列表信息 :param db: orm对象 :param query_object: 查询参数对象 + :param is_page: 是否开启分页 :return: 通知公告列表信息对象 """ - notice_list = db.query(SysNotice) \ + query = db.query(SysNotice) \ .filter(SysNotice.notice_title.like(f'%{query_object.notice_title}%') if query_object.notice_title else True, SysNotice.update_by.like(f'%{query_object.update_by}%') if query_object.update_by else True, SysNotice.notice_type == query_object.notice_type if query_object.notice_type else True, @@ -56,7 +58,8 @@ class NoticeDao: 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() + notice_list = PageUtil.paginate(query, query_object.page_num, query_object.page_size, is_page) return notice_list diff --git a/ruoyi-fastapi-backend/module_admin/service/notice_service.py b/ruoyi-fastapi-backend/module_admin/service/notice_service.py index 3b393be..1ca63a8 100644 --- a/ruoyi-fastapi-backend/module_admin/service/notice_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/notice_service.py @@ -9,16 +9,17 @@ class NoticeService: """ @classmethod - def get_notice_list_services(cls, query_db: Session, query_object: NoticeQueryModel): + def get_notice_list_services(cls, query_db: Session, query_object: NoticePageQueryModel, is_page: bool = True): """ 获取通知公告列表信息service :param query_db: orm对象 :param query_object: 查询参数对象 + :param is_page: 是否开启分页 :return: 通知公告列表信息对象 """ - notice_list_result = NoticeDao.get_notice_list(query_db, query_object) + notice_list_result = NoticeDao.get_notice_list(query_db, query_object, is_page) - return CamelCaseUtil.transform_result(notice_list_result) + return notice_list_result @classmethod def add_notice_services(cls, query_db: Session, page_object: NoticeModel):