add 告警和联调问题修改

This commit is contained in:
HycJack
2026-05-08 17:33:03 +08:00
parent 6eb548ab41
commit 46cc5272f3
8 changed files with 516 additions and 100 deletions

View File

@@ -0,0 +1,47 @@
from collections.abc import Mapping
from typing import Any
from banban.dao.device_alarm import DeviceAlarmDAO
from services.database_service_base import DatabaseServiceBase
class DeviceAlarmService(DatabaseServiceBase):
def __init__(self):
super().__init__(service_name="device_alarm_service")
async def record_alarm_event(self, *, device_id: str, source_msg_id: str = "010") -> int | None:
db_session = await self.get_session()
try:
dao = DeviceAlarmDAO(db_session)
binding = await dao.get_active_binding_context(device_id=device_id)
if not binding:
return None
return await dao.create(
device_id=device_id,
owner_user_id=int(binding["owner_user_id"]) if binding.get("owner_user_id") is not None else None,
child_id=int(binding["child_id"]) if binding.get("child_id") is not None else None,
source_msg_id=source_msg_id,
)
finally:
await db_session.close()
async def list_device_alarms(
self,
*,
device_id: str,
owner_user_id: int,
limit: int,
) -> list[Mapping[str, Any]]:
db_session = await self.get_session()
try:
dao = DeviceAlarmDAO(db_session)
return await dao.list_by_device(
device_id=device_id,
owner_user_id=owner_user_id,
limit=limit,
)
finally:
await db_session.close()
device_alarm_service = DeviceAlarmService()