All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 12m9s
H5 进入资产时已同步弹窗展示临期提醒,通知中心再记未读会重复提醒; 通知按剩余天数每天新增一条,保持未读会持续累积红点。 直发通知载荷新增可选 mark_read,仅临期个人通知设置,其他直发通知与店铺临期通知仍为未读。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Why
套餐临期提醒发给所有绑定过该资产的客户(reminder_publisher.go 的 loadRecipients),个人通知列表又没有资产过滤,客户在任一资产页都会看到名下全部资产的临期提醒(运营清单 26)。业务已确认改为按资产提醒:哪个资产被扫码进入就提醒哪个,同一客户、同一资产、同一天只提醒一次。依据为《第1批-8-9月迭代缺陷修复技术方案》第 4 节(M9)。
What Changes
- H5 资产信息接口
GET /api/c/v1/asset/info在当前资产处于临期窗口(剩余 0~15 天)且当天未提醒过时,返回临期提醒字段(剩余天数、到期时间、等级),并为“当前客户、当前资产”写一条package.expiring个人通知;同一客户、同一资产、同一北京时间日期只提醒一次。 - BREAKING 每日扫描不再给个人客户写临期通知;店铺通知不变。
- BREAKING 个人通知列表、未读数与“全部已读”中,临期提醒只处理当前资产的;其他类型通知不受影响,接口入参不变。
- H5 进入资产时写入的个人客户临期通知写入即已读(
is_read=true,read_at为写入时间),不计入未读数:同一时刻 H5 已经弹窗展示过,不应该再在通知中心产生红点;而且通知每天按新的剩余天数生成一条,保持未读的话会不断累积。其他个人直发通知(换货发货、自动续费)和店铺临期通知仍然是未读。
Capabilities
New Capabilities
无。
Modified Capabilities
notification-delivery:每日临期扫描只通知店铺接收人;新增 H5 进入资产时的临期提醒;个人通知中心临期提醒按当前资产过滤。
Impact
- 代码:
internal/infrastructure/packageexpiry/reminder_publisher.go(去掉个人客户批量写入)、H5 资产信息 Handler 与服务(复用packageexpiry最终到期推算、写 Outbox 个人通知)、个人通知列表与未读数查询、pkg/constants/redis.go(去重键)、资产信息响应 DTO、internal/application/notification/delivery.go(直发载荷新增可选的写入即已读标记,deliverOne按标记写入,审计after_data按实际已读状态记录)。 - 接口:
GET /api/c/v1/asset/info新增字段;个人通知列表与未读数结果范围变化;重新生成接口文档。 - 依赖:Redis(去重键);Outbox 按
event_id冲突忽略写入(internal/infrastructure/messaging/outbox/repository.go)。 - 无数据库迁移。