diff --git a/ruoyi-fastapi-backend/module_admin/controller/message_controller.py b/ruoyi-fastapi-backend/module_admin/controller/message_controller.py index 134df64..88ffb8e 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/message_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/message_controller.py @@ -6,6 +6,7 @@ from config.enums import BusinessType from config.get_db import get_db from module_admin.annotation.log_annotation import Log from module_admin.aspect.interface_auth import CheckUserInterfaceAuth +from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.user_vo import CurrentUserModel from module_admin.service.login_service import LoginService from module_admin.service.message_service import MessageService @@ -18,6 +19,23 @@ from utils.response_util import ResponseUtil messageController = APIRouter(prefix='/system/message', dependencies=[Depends(LoginService.get_current_user)]) + + +# 一键处理未处理的告警消息 +@messageController.get( + '/handle_all' +) +async def handle_all_message( + query_db: AsyncSession = Depends(get_db), +): + try: + await MessageService.handle_all_message_services(query_db) + await query_db.commit() + return CrudResponseModel(is_success=True, message='处理成功') + except Exception as e: + await query_db.rollback() + raise e + # 查询告警数量信息 @messageController.get( '/count_message', diff --git a/ruoyi-fastapi-backend/module_admin/dao/message_dao.py b/ruoyi-fastapi-backend/module_admin/dao/message_dao.py index ff2eddc..db13636 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/message_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/message_dao.py @@ -1,6 +1,7 @@ from sqlalchemy import delete, select, update, func from sqlalchemy.ext.asyncio import AsyncSession from module_admin.entity.do.message_do import Message +from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.entity.vo.message_vo import MessageModel, MessagePageQueryModel from utils.page_util import PageUtil from datetime import datetime, time @@ -11,6 +12,19 @@ class MessageDao: 系统消息模块数据库操作层 """ + @classmethod + async def handle_all_message(cls, db: AsyncSession): + query = ( + update(Message) + .where(Message.status == '0', Message.type == '0') + .values(status='1') + ) + + + await db.execute(query) + + + @classmethod async def get_message_detail_by_id(cls, db: AsyncSession, message_id: int): """ diff --git a/ruoyi-fastapi-backend/module_admin/service/message_service.py b/ruoyi-fastapi-backend/module_admin/service/message_service.py index add0a44..0a0fc35 100644 --- a/ruoyi-fastapi-backend/module_admin/service/message_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/message_service.py @@ -14,6 +14,10 @@ class MessageService: 系统消息模块服务层 """ + @classmethod + async def handle_all_message_services(cls,db: AsyncSession): + return await MessageDao.handle_all_message(db) + @classmethod async def get_message_list_services( cls, query_db: AsyncSession, query_object: MessagePageQueryModel, is_page: bool = False