## MODIFIED Requirements ### Requirement: 换货迁移时更新个人客户资产绑定 系统 SHALL 在换货完成成功后,更新 `PersonalCustomerDevice` 的资产标识绑定关系: - 若旧资产存在客户绑定,绑定中的 `virtual_no` MUST 更新为新资产资产绑定键 - 更新后客户对资产访问连续,不需重新登录即可看到新资产 该规则 MUST 同时适用于: - `shipping` 流程完成换货 - `direct` 流程创建即完成 该规则 MUST NOT 仅依赖 `migrate_data=true` 才执行。 #### Scenario: 不迁移也要切换客户绑定 - **WHEN** 旧资产存在个人客户绑定且执行了 `migrate_data=false` 的换货完成 - **THEN** 系统 MUST 仍然将绑定记录的资产标识字段更新为新资产资产绑定键 #### Scenario: 迁移后客户绑定跟随新资产 - **WHEN** 旧资产存在个人客户绑定且执行了 `migrate_data=true` - **THEN** 系统 MUST 将绑定记录的资产标识字段更新为新资产资产绑定键 --- ### Requirement: 换货完成前的绑定承接校验 系统 SHALL 在换货完成前校验新资产是否可以承接现有个人客户绑定。 若旧资产存在 `PersonalCustomerDevice` 绑定,则系统 MUST 满足: - 新资产存在可写入绑定的资产绑定键 - IoT 卡资产绑定键 MUST 使用新卡 `virtual_no` - 设备资产绑定键 MUST 优先使用新设备 `virtual_no`,为空时 MAY 使用新设备 `imei`,与现有登录绑定规则保持一致 - 新资产绑定键当前不得存在 `status=1` 的 `PersonalCustomerDevice` 绑定记录 - 已禁用或软删除绑定记录不视为当前绑定冲突 若任一条件不满足,系统 MUST 拒绝完成换货并回滚整个事务。 #### Scenario: 新资产无法承接绑定时回滚 - **WHEN** 旧资产存在客户绑定,但新资产缺少可承接的资产绑定键 - **THEN** 系统 MUST 拒绝完成换货 - **AND** MUST 保持换货单未完成 #### Scenario: 新资产已有有效客户绑定时回滚 - **WHEN** 旧资产存在客户绑定,但新资产绑定键已经存在 `status=1` 的客户绑定记录 - **THEN** 系统 MUST 拒绝完成换货 - **AND** MUST 回滚整个完成事务 --- ### Requirement: 转新时清除个人客户绑定 系统 SHALL 在 H7 转新时清除该资产在 `PersonalCustomerDevice` 中的绑定关系,避免旧客户继续访问新代际资产。 #### Scenario: 转新后旧客户需重新绑定 - **WHEN** 资产转新完成 - **THEN** 系统 MUST 删除或失效对应客户绑定,使旧客户再次访问时触发重新绑定流程