1
0
forked from erp-dev/erp

feat: message-api for mission via wecomm agent

This commit is contained in:
2026-05-14 09:30:38 +08:00
parent 9359013b4c
commit f409f2e6ee
38 changed files with 2085 additions and 49 deletions

View File

@@ -7,6 +7,7 @@ from django.db.models import Exists, F, OuterRef
from django.utils import timezone
from mission import models as mission_models
from mission.payload_processors import apply_mission_payload_processor
from mission import services as mission_services
from notifier.models import NotificationEventKeyEnum
from notifier.services import dispatch_notification_event
@@ -20,7 +21,7 @@ def _build_unreplied_mission_payload(*, mission: mission_models.Mission, notifie
)
content_type = getattr(mission.content_type, "model", None)
next_count = mission.unreplied_notify_sent_count + 1
return {
payload = {
"mission_id": mission.id,
"merchant_id": mission.merchant_id,
"description": mission.description,
@@ -35,11 +36,17 @@ def _build_unreplied_mission_payload(*, mission: mission_models.Mission, notifie
"participant_names_display": "".join(participant_names) if participant_names else "",
"content_type": content_type or "",
"content_id": mission.content_id or "",
"payload_processor": getattr(mission.category, "payload_processor", "") or "",
"unreplied_notify_interval_minutes": mission.unreplied_notify_interval_minutes,
"unreplied_notify_max_count": mission.unreplied_notify_max_count,
"unreplied_notify_sent_count": next_count,
"unreplied_last_notified_at": notified_at.isoformat() if notified_at else "",
}
return apply_mission_payload_processor(
mission=mission,
event_key=NotificationEventKeyEnum.MISSION_UNREPLIED,
payload=payload,
)
def _get_due_unreplied_mission_ids(*, limit: int) -> list[int]: