消息

阶段:P1。
统一出站消息:先落站内消息记录,再按标准载荷经多平台投递。不自建聊天 IM。采单与 OCR 见 11-AI应用.md

统一消息(站内记录)

表:messages

全局出站消息标准:业务/分析/审批只写这一份;站内必留记录,再扇出到各平台。

字段 说明 来源
id 系统主键 系统
user_id 接收人 系统
category 类型:盈亏摘要、库存报表、补货、预警、审批待办、系统通知等 系统
title 标题 系统
body 正文 / 摘要 系统
link_url 明细链接(可空) 系统
payload 扩展载荷(JSON,可空) 系统
level info / warning / critical(可空) 系统
read_at 站内已读时间(空=未读) 系统
created_at 创建时间 系统

站内列表、未读数均读本表;不因某平台发送失败而丢失站内记录。

多平台投递

表:message_deliveries

一条 messages 可对应多条投递(站内已写入则 inbox 可记一条成功,或仅表示外发通道)。

字段 说明 来源
id 系统主键 系统
message_id 统一消息 系统
channel inbox 站内 / wecom 企微 / wechat 微信服务消息 / 其他扩展 系统
status pending / sent / failed / skipped 系统
external_id 平台侧消息 id(可空) 平台
error 失败原因(可空) 系统
sent_at 发送时间(可空) 系统
created_at / updated_at 时间戳 系统

投递流程:写入 messages → 按用户订阅生成各 channelmessage_deliveries → 异步发送 → 回写状态。

订阅开关

表:message_subscriptions

字段 说明 来源
id 系统主键 系统
user_id 用户 系统
category 消息类型 系统
channel 投递通道 系统
enabled 是否接收 系统
updated_at 更新时间 系统

category + channel 关闭则对应投递为 skipped。站内 inbox 默认可开(重要通知建议不可关,实现时按类别约定)。

维护方式

  1. 出站:业务只构造统一消息标准 → 落 messages(站内)→ 多平台 message_deliveries 发送。
  2. 采单入口与识别复核不在本模块,见 AI 应用。

验收标准

  • [ ] 出站消息先有站内 messages 记录,可查已读/未读。
  • [ ] 同一消息可投递企微等通道;失败可重试且不影响站内记录。

V1 / 延后

P1 P2
站内 + 企微投递 细粒度按 category×channel 订阅、微信等多通道