diff --git a/ruoyi-fastapi-backend/module_admin/controller/message_controller.py b/ruoyi-fastapi-backend/module_admin/controller/message_controller.py index b7c0118..134df64 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/message_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/message_controller.py @@ -18,6 +18,14 @@ from utils.response_util import ResponseUtil messageController = APIRouter(prefix='/system/message', dependencies=[Depends(LoginService.get_current_user)]) +# 查询告警数量信息 +@messageController.get( + '/count_message', +) +async def count_message(request: Request, query_db: AsyncSession = Depends(get_db)): + """""" + count_message_result = await MessageService.count_message(query_db) + return ResponseUtil.success(data = count_message_result) @messageController.get( '/list', response_model=PageResponseModel diff --git a/ruoyi-fastapi-backend/module_admin/dao/message_dao.py b/ruoyi-fastapi-backend/module_admin/dao/message_dao.py index 94363ce..ff2eddc 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/message_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/message_dao.py @@ -1,4 +1,4 @@ -from sqlalchemy import delete, select, update +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.message_vo import MessageModel, MessagePageQueryModel @@ -35,6 +35,28 @@ class MessageDao: return message_info + @classmethod + async def count_message(cls, db: AsyncSession): + query_unhandled_message_count = ( + select(func.count(Message.message_id)) + .where(Message.status=='0', Message.type=='0') + ) + + unhandled_message_count = ( + await db.execute(query_unhandled_message_count) + ).scalar() + + query_handled_message_count = ( + select(func.count(Message.message_id)) + .where(Message.status=='1', Message.type=='0') + ) + + handled_message_count = ( + await db.execute(query_handled_message_count) + ).scalar() + + return unhandled_message_count+ handled_message_count, unhandled_message_count, handled_message_count + @classmethod async def get_message_detail_by_info(cls, db: AsyncSession, message: MessageModel): """ diff --git a/ruoyi-fastapi-backend/module_admin/service/message_service.py b/ruoyi-fastapi-backend/module_admin/service/message_service.py index 3531537..add0a44 100644 --- a/ruoyi-fastapi-backend/module_admin/service/message_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/message_service.py @@ -30,6 +30,19 @@ class MessageService: return message_list_result + @classmethod + async def count_message(cls, query_db: AsyncSession,): + """ + 获取系统消息数量service + + :param query_db: orm对象 + :return: + total 总消息数 + unhandled 未处理消息数 + handled 已处理消息数 + """ + total, unhandled, handled = await MessageDao.count_message(query_db) + return {'total': total, 'unhandled': unhandled, 'handled': handled} @classmethod async def add_message_services(cls, query_db: AsyncSession, page_object: MessageModel):