forked from erp-dev/erp
feat: message-api for mission via wecomm agent
This commit is contained in:
@@ -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]:
|
||||
|
||||
Reference in New Issue
Block a user