Spaces:
Paused
Paused
| from datetime import datetime | |
| from typing import Annotated | |
| from fastapi import Path, Query, Request, Response | |
| from pydantic_validation_decorator import ValidateFields | |
| from sqlalchemy.ext.asyncio import AsyncSession | |
| from common.annotation.log_annotation import Log | |
| from common.aspect.db_seesion import DBSessionDependency | |
| from common.aspect.interface_auth import UserInterfaceAuthDependency | |
| from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency | |
| from common.enums import BusinessType | |
| from common.router import APIRouterPro | |
| from common.vo import DataResponseModel, PageResponseModel, ResponseBaseModel | |
| from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel | |
| from module_admin.entity.vo.user_vo import CurrentUserModel | |
| from module_admin.service.notice_service import NoticeService | |
| from utils.log_util import logger | |
| from utils.response_util import ResponseUtil | |
| notice_controller = APIRouterPro( | |
| prefix='/system/notice', order_num=10, tags=['系统管理-通知公告管理'], dependencies=[PreAuthDependency()] | |
| ) | |
| async def get_system_notice_list( | |
| request: Request, | |
| notice_page_query: Annotated[NoticePageQueryModel, Query()], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| ) -> Response: | |
| # 获取分页数据 | |
| notice_page_query_result = await NoticeService.get_notice_list_services(query_db, notice_page_query, is_page=True) | |
| logger.info('获取成功') | |
| return ResponseUtil.success(model_content=notice_page_query_result) | |
| async def add_system_notice( | |
| request: Request, | |
| add_notice: NoticeModel, | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| add_notice.create_by = current_user.user.user_name | |
| add_notice.create_time = datetime.now() | |
| add_notice.update_by = current_user.user.user_name | |
| add_notice.update_time = datetime.now() | |
| add_notice_result = await NoticeService.add_notice_services(query_db, add_notice) | |
| logger.info(add_notice_result.message) | |
| return ResponseUtil.success(msg=add_notice_result.message) | |
| async def edit_system_notice( | |
| request: Request, | |
| edit_notice: NoticeModel, | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| edit_notice.update_by = current_user.user.user_name | |
| edit_notice.update_time = datetime.now() | |
| edit_notice_result = await NoticeService.edit_notice_services(query_db, edit_notice) | |
| logger.info(edit_notice_result.message) | |
| return ResponseUtil.success(msg=edit_notice_result.message) | |
| async def delete_system_notice( | |
| request: Request, | |
| notice_ids: Annotated[str, Path(description='需要删除的公告ID')], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| ) -> Response: | |
| delete_notice = DeleteNoticeModel(noticeIds=notice_ids) | |
| delete_notice_result = await NoticeService.delete_notice_services(query_db, delete_notice) | |
| logger.info(delete_notice_result.message) | |
| return ResponseUtil.success(msg=delete_notice_result.message) | |
| async def query_detail_system_post( | |
| request: Request, | |
| notice_id: Annotated[int, Path(description='公告ID')], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| ) -> Response: | |
| notice_detail_result = await NoticeService.notice_detail_services(query_db, notice_id) | |
| logger.info(f'获取notice_id为{notice_id}的信息成功') | |
| return ResponseUtil.success(data=notice_detail_result) | |