Files
2026-10-14 09:56:09 +08:00

2.8 KiB
Raw Blame History

ADDED Requirements

Requirement: Notification queries SHALL preserve backend current-asset expiry scope

H5 SHALL 保持 GET /api/c/v1/notifications 与 GET /api/c/v1/notifications/unread-count 的现有入参,使用后端返回的当前资产临期通知及未读计数。H5 SHALL NOT 扩大范围查询所有资产、为这些接口新增未声明参数,或将普通通知一并误过滤为仅当前资产。

Scenario: Customer views asset A

  • WHEN 客户在资产 A 的认证上下文读取列表和未读数
  • THEN H5 SHALL 展示后端结果,其中临期提醒按 A 过滤
  • AND SHALL NOT 混入资产 B 的旧列表或计数

Scenario: Current asset changes

  • WHEN 当前认证资产由 A 切换为 B
  • THEN H5 SHALL 刷新列表和未读数,防止 A 的延迟响应覆盖 B

Requirement: Mark-all-read SHALL use PUT and preserve other assets' expiry notifications

H5 SHALL 在用户主动点击通知中心“全部已读”时调用 PUT /api/c/v1/notifications/read-all,SHALL NOT 发送 POST 或用不同方法重试。其他资产的临期通知 SHALL 由后端保留未读;客户端成功后 SHALL 按服务端刷新结果更新当前视图,失败 SHALL 保留未读状态。单条已读 SHALL 继续使用 PUT /api/c/v1/notifications/{id}/read。

Scenario: User marks all notifications read on asset A

  • WHEN 客户在 A 上主动执行全部已读
  • THEN H5 SHALL 发送 PUT 并对齐当前视图
  • AND 资产 B 的临期通知 SHALL 保持未读

Scenario: Mark-all-read fails

  • WHEN PUT 全部已读请求失败
  • THEN H5 SHALL 不提前清空未读计数或把本地项全部标成已读,也不改用 POST 重试

Scenario: User reads one notification

  • WHEN 用户执行单条已读操作
  • THEN H5 SHALL 继续发送对应通知的 PUT 请求

Scenario: Reminder or popup is displayed

  • WHEN 临期、运营候选或风险换货弹窗展示或关闭
  • THEN H5 SHALL 不自动调用 read-all 来结束展示链路

Requirement: Notification cards SHALL show a right-aligned read-status button

H5 SHALL 在通知标题右侧显示小型“未读/已读”按钮,SHALL NOT 用左侧强调边框或小圆点表示未读。点击卡片或按钮 SHALL 对未读项调用现有单条已读 PUT,成功后切换为“已读”并刷新计数;失败 SHALL 保留未读状态,已读项不重复请求。

Scenario: User taps an unread card

  • WHEN 用户点击未读通知卡片或标题右侧“未读”按钮,标记接口成功
  • THEN 小按钮 SHALL 切换为“已读”,卡片不新增左侧边框

Scenario: Mark-read fails

  • WHEN 点击未读通知后标记接口失败
  • THEN 小按钮 SHALL 保持“未读”,用户仍可再次操作