Files
luo 16effb69f3
All checks were successful
构建并部署前端到测试环境 / deploy (push) Successful in 55s
fix: some
2026-10-13 17:43:38 +08:00

4.0 KiB
Raw Permalink Blame History

ADDED Requirements

Requirement: 换货新资产手机号绑定冲突提示

后台创建换货和确认完成 SHALL 在错误码 1202 时用一次文本弹窗原样展示后端 msg。1202 同时用于已换货等业务拒绝,只有错误响应带有效字符串 data.phone 且用户有原查看权限时 MUST 提供解除关联跳转;处理 MUST 覆盖业务失败与 HTTP 错误,不自动解绑或扩大权限。

Scenario: 1202 返回手机号

  • WHEN POST /api/admin/exchanges 或 POST /api/admin/exchanges/{id}/complete 返回 code=1202 且含 data.phone
  • THEN 页面 MUST 原样展示后端 msg,不得拼接手机号或替换为固定文案
  • AND 有原查看权限且已知新资产时 MUST 提供「前往手机号资产关联」按钮并带参跳转
  • AND 默认错误提示与该弹窗 MUST NOT 重复展示
  • AND 手机号 MUST 只用于用户主动发起的路由参数,不额外写日志或本地存储
  • AND 前端 MUST NOT 自动调用单条、批量或 CSV 解绑接口

Scenario: 号码缺失或无管理权限

  • WHEN 1202 响应不含有效号码,或用户没有关联管理入口权限
  • THEN 页面 MUST 使用仅有「知道了」的提示弹窗原样展示 msg,不展示跳转/解绑按钮
  • AND MUST 不根据选中资产 associated_phones 推断该错误为手机号绑定冲突

Scenario: 已完成过换货的 1202

  • WHEN 接口返回 code=1202,data=null,msg=该资产已完成过换货,如需再次换货请使用换货后的新资产
  • THEN 页面 MUST 显示该原始 msg 和「知道了」,不显示「前往手机号资产关联」

Requirement: 换货冲突后保持数据并允许手动重试

1202 失败后后台 SHALL 保留当前创建表单或后端原完成状态,解除关联后允许用户手动再次提交。非 1202 错误 MUST 保留原统一反馈及业务判断。

Scenario: 创建失败保留表单

  • WHEN 创建换货因 1202 被拒绝
  • THEN 当前新旧资产、原因、换货类型和其他表单值 MUST 保留
  • AND loading MUST 结束,取消提示 MUST NOT 被当作成功
  • AND 用户解除关联后 MUST 可手动再次提交原接口

Scenario: 确认完成被拒绝

  • WHEN 确认完成接口因 1202 被拒绝
  • THEN 页面 MUST 刷新原换货单,并保持后端「已发货待确认」状态
  • AND MUST NOT 乐观标记换货完成或清空当前单据
  • AND 用户解除关联后 MUST 可手动重新确认

Scenario: 其他错误及原流程不变

  • WHEN 换货接口返回非 1202 错误,包括退款拦截、权限失败、迁移失败或网络错误
  • THEN 页面 MUST 继续按原业务文案及统一错误分类反馈,不重复弹错
  • AND MUST NOT 新增依据扫码历史或退款状态的前置拒绝逻辑
  • AND 当前换货迁移字段、角色限制和接口成功行为 MUST 保持不变

Requirement: 换货冲突跳转携带新资产与手机号

收到带有效 data.phone 的 1202 后,用户点击「前往手机号资产关联」时,后台 SHALL 通过 asset_identifier 和 phone 路由参数传递本次提交的新资产标识与错误响应手机号。创建换货 MUST 使用提交时选中的新卡 ICCID 或设备虚拟号;确认完成 MUST 使用换货单的新资产标识,不得带入旧资产。手机号缺失时 MUST 不从 associated_phones 回退生成解绑入口。

Scenario: 创建换货选择新资产后被拒

  • WHEN 创建请求因新资产已有手机号关联返回 1202,用户选择跳转
  • THEN 路由 MUST 携带选中新资产的 asset_identifier 与对应 phone
  • AND 新旧资产同时存在手机号关联时 MUST NOT 使用旧资产标识或旧手机号
  • AND 长 ICCID MUST 保持字符串,不转为数值

Scenario: 确认完成失败后跳转

  • WHEN 确认完成返回 1202,用户选择跳转
  • THEN 路由 MUST 携带该换货单的 new_asset_identifier 和错误响应手机号
  • AND 参数不完整时 MUST 不猜测缺失值或自动执行解绑