2.8 KiB
2.8 KiB
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 保持“未读”,用户仍可再次操作