This commit is contained in:
@@ -2,21 +2,27 @@
|
||||
|
||||
### Requirement: 换货新资产手机号绑定冲突提示
|
||||
|
||||
后台创建换货和确认完成 SHALL 在错误码 `1202` 时读取错误业务响应的 `data.phone`,用一次文本弹窗提示解除关联的后台入口;处理 MUST 覆盖正常 HTTP 承载的业务失败和 HTTP 错误响应,不自动解绑、预查扫码记录或扩大权限。
|
||||
后台创建换货和确认完成 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 提示「新资产已绑定手机号 {phone},请先到『手机号资产关联』解除后再提交」
|
||||
- **THEN** 页面 MUST 原样展示后端 `msg`,不得拼接手机号或替换为固定文案
|
||||
- **AND** 有原查看权限且已知新资产时 MUST 提供「前往手机号资产关联」按钮并带参跳转
|
||||
- **AND** 默认错误提示与该弹窗 MUST NOT 重复展示
|
||||
- **AND** 手机号 MUST 只作为文本渲染,不写日志或持久化
|
||||
- **AND** 手机号 MUST 只用于用户主动发起的路由参数,不额外写日志或本地存储
|
||||
- **AND** 前端 MUST NOT 自动调用单条、批量或 CSV 解绑接口
|
||||
|
||||
#### Scenario: 号码缺失或无管理权限
|
||||
|
||||
- **WHEN** 1202 响应不含有效号码,或用户没有关联管理入口权限
|
||||
- **THEN** 页面 MUST 显示不含 `undefined` 的解除指引,无号码时不自行猜测
|
||||
- **AND** 无管理权限时 MUST 提示联系有权限人员,不暴露越权操作按钮
|
||||
- **THEN** 页面 MUST 使用仅有「知道了」的提示弹窗原样展示 `msg`,不展示跳转/解绑按钮
|
||||
- **AND** MUST 不根据选中资产 `associated_phones` 推断该错误为手机号绑定冲突
|
||||
|
||||
#### Scenario: 已完成过换货的 1202
|
||||
|
||||
- **WHEN** 接口返回 `code=1202,data=null,msg=该资产已完成过换货,如需再次换货请使用换货后的新资产`
|
||||
- **THEN** 页面 MUST 显示该原始 `msg` 和「知道了」,不显示「前往手机号资产关联」
|
||||
|
||||
### Requirement: 换货冲突后保持数据并允许手动重试
|
||||
|
||||
@@ -45,7 +51,7 @@
|
||||
|
||||
### Requirement: 换货冲突跳转携带新资产与手机号
|
||||
|
||||
收到 1202 后,用户点击「前往手机号资产关联」时,后台 SHALL 通过 `asset_identifier` 和 `phone` 路由查询参数传递本次提交的新资产标识及关联手机号。创建换货 MUST 使用提交时选中的新卡 ICCID 或设备虚拟号;确认完成 MUST 使用换货单的新资产标识,不得带入旧资产。手机号 MUST 优先使用错误响应 `data.phone`,缺失时可取新资产 `associated_phones` 的首个有效值。
|
||||
收到带有效 `data.phone` 的 1202 后,用户点击「前往手机号资产关联」时,后台 SHALL 通过 `asset_identifier` 和 `phone` 路由参数传递本次提交的新资产标识与错误响应手机号。创建换货 MUST 使用提交时选中的新卡 ICCID 或设备虚拟号;确认完成 MUST 使用换货单的新资产标识,不得带入旧资产。手机号缺失时 MUST 不从 `associated_phones` 回退生成解绑入口。
|
||||
|
||||
#### Scenario: 创建换货选择新资产后被拒
|
||||
|
||||
|
||||
Reference in New Issue
Block a user