集成家长短信通知
This commit is contained in:
@@ -12,6 +12,7 @@ from banban.service.device_setting import device_setting_service
|
||||
from banban.service.im import im_service
|
||||
from banban.service.location import location_service
|
||||
from banban.service.pending_voice_message import pending_voice_message_service
|
||||
from banban.service.sms_notification import sms_notification_service
|
||||
from config import settings
|
||||
from services.card_service import card_service
|
||||
from services.device_target_cache import device_target_cache
|
||||
@@ -367,11 +368,11 @@ class TalkingQMQTTService:
|
||||
|
||||
async def _handle_alarm_report(self, device_id: str, payload: dict):
|
||||
logger.info(device_id, "", f"[告警] 设备 {device_id} 发送紧急报警")
|
||||
await self._schedule_persistence(
|
||||
device_id,
|
||||
"alarm_event",
|
||||
device_alarm_service.record_alarm_event(device_id=device_id, source_msg_id="010"),
|
||||
)
|
||||
async def _record_alarm_and_notify():
|
||||
alarm_id = await device_alarm_service.record_alarm_event(device_id=device_id, source_msg_id="010")
|
||||
sms_notification_service.schedule_alarm_notification(device_id=device_id, alarm_id=alarm_id)
|
||||
|
||||
await self._schedule_persistence(device_id, "alarm_event", _record_alarm_and_notify())
|
||||
await self._publish(f"device/{device_id}/event_resp", {"msg_id": "010", "status": "success"})
|
||||
|
||||
async def _handle_short_press_message(self, device_id: str, payload: dict):
|
||||
@@ -394,7 +395,7 @@ class TalkingQMQTTService:
|
||||
media_file_key = str(params.get("media_file_key") or params.get("audio_url") or "").strip()
|
||||
if media_file_key:
|
||||
try:
|
||||
await im_service.create_device_parent_leave_message(
|
||||
device_identity, _ = await im_service.create_device_parent_leave_message(
|
||||
device_id=device_id,
|
||||
media_file_key=media_file_key,
|
||||
media_duration_ms=params.get("media_duration_ms"),
|
||||
@@ -404,6 +405,10 @@ class TalkingQMQTTService:
|
||||
client_msg_id=params.get("client_msg_id"),
|
||||
ext_json=params.get("ext_json") if isinstance(params.get("ext_json"), dict) else None,
|
||||
)
|
||||
sms_notification_service.schedule_leave_message_notification(
|
||||
device_id=device_id,
|
||||
child_name=device_identity.child_name,
|
||||
)
|
||||
logger.info(device_id, "", f"[短按留言] 设备 {device_id} 留言已写入家长会话")
|
||||
await self._publish(
|
||||
f"device/{device_id}/event_resp",
|
||||
|
||||
@@ -22,6 +22,7 @@ from handlers.prompt_sound_handler import handle_prompt_sound_request
|
||||
from handlers.session_cleanup_handler import handle_old_session_cleanup
|
||||
from config import settings
|
||||
from banban.service.im import im_service as im_conversation_service
|
||||
from banban.service.sms_notification import sms_notification_service
|
||||
from utils.audio_format import detect_audio_format, wrap_pcm_as_wav
|
||||
from fastapi import HTTPException
|
||||
|
||||
@@ -287,7 +288,7 @@ async def process_parent_leave_message(device_id: str, audio_cache_key: str):
|
||||
content_type=media_mime_type,
|
||||
extension=extension,
|
||||
)
|
||||
await im_conversation_service.create_device_parent_leave_message(
|
||||
device_identity, _ = await im_conversation_service.create_device_parent_leave_message(
|
||||
device_id=device_id,
|
||||
media_file_key=stored_audio.file_key,
|
||||
media_mime_type=media_mime_type,
|
||||
@@ -300,6 +301,10 @@ async def process_parent_leave_message(device_id: str, audio_cache_key: str):
|
||||
},
|
||||
audio_content=archive_audio,
|
||||
)
|
||||
sms_notification_service.schedule_leave_message_notification(
|
||||
device_id=device_id,
|
||||
child_name=device_identity.child_name,
|
||||
)
|
||||
session_logger.info(
|
||||
device_id,
|
||||
"parent",
|
||||
|
||||
Reference in New Issue
Block a user