1.9 KiB
1.9 KiB
03 — 向个人客户投递并提供简化通知中心
What to build: 业务事件携带稳定个人客户 ID 后,可以为该客户幂等生成与其订单、套餐或资产有关的站内通知;当前登录个人客户可以查询自己的未读数和分页列表,并执行单条或全部已读。个人客户永远看不到同步、系统等平台运维消息,也不能通过请求参数读取或修改其他客户通知。
Blocked by: 01 — 向明确后台账号可靠投递首条站内通知
Status: ready-for-agent
架构通道: 主通道为 Query,辅助通道为简单写 Application 与 Infrastructure。
完整业务边界: 本票收口个人客户通知的投递、读取和已读闭环,复用既有通知表、注册表和 Worker。明确不实现 C 端分类汇总、后台动态接收人、平台运维消息展示、C 端受控目标接口或前端组件。
- Worker 能以
personal_customer接收人类型和稳定客户 ID 幂等生成通知,同一事件的后台账号与个人客户通知相互独立。 - 个人客户通知类型注册明确允许的业务类别和资源引用;
sync、system及未对 C 端开放的类型不会出现在个人客户查询中。 - C 端未读数遵循 0、1~99、100 以上的显示规则,列表固定倒序、默认每页 20、最大 50,并排除过期通知。
- 单条已读、全部已读只作用于当前认证客户;不存在、已删除、属于别人或已读的通知使用相同幂等安全语义。
- 请求 DTO 不接受接收人 ID,额外或恶意接收人参数不能改变查询与更新范围。
- 真实个人客户认证、Handler、Query、GORM 集成测试覆盖重复投递、运维类别隔离、跨客户越权、分页、过期排除、重复已读和批量已读。
- 新增 C 端 Handler 后同步个人客户路由、RouteSpec 与两个 OpenAPI 文档生成器,接口统一挂载在约定认证上下文中。