消息通知、站内信与推送专题
本文整理 DGJ2.0 站内信、系统消息、APP 推送、活动通知、对账通知和任务消息。通知链路通常不改变主业务状态,但影响用户感知和后续操作。
业务目标
- 业务状态变化后通知服务站或客户。
- 支持站内信、APP 推送、微信/IM/机器人消息。
- 支持活动开始结束、对账单发送、销售/出库/退货通知。
- 支持消息任务和定时发送。
入口文件
- 消息任务:
application/controllers/tasks/Message.php - APP 推送日志相关任务:
application/controllers/tasks/* - MQ 生产:
application/Services/Mq/MqSer.php - 对账发送:
application/Services/Statement/SendService.php - IM 通知:
application/controllers/tasks/ImCenterNotify.php - 活动通知:
application/controllers/tasks/ClientActivity.php
核心表
| 表 | 用途 | | --- | --- | | t_sys_message | 消息主表 | | t_sys_message_text | 消息内容 | | t_sys_message_cron | 定时消息 | | t_app_push_log | APP 推送日志 | | t_bs_statement_send_record_v2 | 对账单发送记录 |
常见事件
- 销售出库通知 APP:
APP_SA_ORDER_OUT。 - 销售配送状态变更:
APP_SA_ORDER_STATUS。 - 关闭销售单:
APP_SA_ORDER_CLOSE。 - 销售结单:
APP_SA_ORDER_CUT_OFF。 - 退货入库:
APP_APPLY_RETURN_FINISH。 - 退货审核通过:
APP_APPLY_RETURN_CHECKED。 - 优惠券发放:
APP_COUPON_SEND。 - 活动开始/结束:
ACTIVITY_START、ACTIVITY_END。
主流程
flowchart TD
A["业务状态变化"] --> B["构造消息内容"]
B --> C["写消息/推送日志或发送 MQ"]
C --> D["APP/IM/微信/机器人消费"]
D --> E["用户收到通知"]
异常流程
- 业务成功但没通知:查是否调用
MqSer或消息任务。 - 推送失败:查
t_app_push_log、设备 token、下游返回。 - 重复通知:查业务幂等和消息发送记录。
- 对账消息失败:查发送记录、客户微信绑定、发送任务。
常用 rg 命令
rg -n "MESSAGE|MESSAGE_TEXT|MESSAGE_CRON|APP_PUSH_LOG" application/config/tables.php application
rg -n "APP_SA_ORDER_OUT|APP_APPLY_RETURN_FINISH|APP_COUPON_SEND|ACTIVITY_START|ACTIVITY_END" application/KzData/Enums application/Services
rg -n "send.*Msg|push|Message|SendService|sendMsg|sendMsgBatch" application/controllers application/Services
改动风险和回归清单
- 销售、出库、退货、活动、优惠券、对账通知。
- APP 推送、站内信、IM、微信发送。
- 重复发送、失败重试、发送记录。
- 用户设备、客户绑定关系和权限范围。