Files
junhong_cmp_fiber/openspec/changes/add-direct-exchange-flow/specs/iot-card/spec.md
Break 27fba9160c
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 56s
提案
2026-06-04 09:39:20 +08:00

2.0 KiB

ADDED Requirements

Requirement: IoT 卡换货换出行为

系统 SHALL 在 IoT 卡作为旧资产完成换货后,将其视为“已被换出、不可继续作为当前客户资产使用”的资产。

系统 MUST 满足:

  • 换货完成前旧卡必须 asset_status=2(已销售)
  • 换货完成时旧卡 asset_status -> 3
  • 旧卡 generation 在换货完成时保持不变
  • 若后续执行 renew,才允许旧卡重新进入新一代库存

Scenario: shipping 完成后旧卡标记为已换货

  • WHEN 一张 IoT 卡作为旧资产完成 shipping 换货
  • THEN 系统 MUST 将该卡 asset_status 更新为 3

Scenario: direct 完成后旧卡标记为已换货

  • WHEN 一张 IoT 卡作为旧资产完成 direct 换货
  • THEN 系统 MUST 将该卡 asset_status 更新为 3

Requirement: IoT 卡换货换入行为

系统 SHALL 在 IoT 卡作为新资产完成换货后,将其视为当前客户正在使用的资产。

系统 MUST 满足:

  • 换货完成前新卡必须 asset_status=1(在库)
  • 换货完成前新卡必须与旧卡 shop_id 一致,含二者同为平台库存 NULL
  • 换货完成前新卡不得存在有效客户绑定或被其他进行中换货单占用
  • 换货完成后新卡 asset_status -> 2
  • 新卡 generation 在换货完成时保持不变
  • 新卡来源旧卡关系 MUST 通过 ExchangeOrder 可追溯

Scenario: 新卡完成换货后切为已销售

  • WHEN 一张 IoT 卡作为新资产完成换货
  • THEN 系统 MUST 将该卡 asset_status 更新为 2

Requirement: IoT 卡转新重置规则

系统 SHALL 在 H7 转新时对 IoT 卡执行以下重置:

  • generation = generation + 1
  • asset_status = 1(在库)
  • 清空累计充值与首充触发相关状态(含 AccumulatedRecharge、系列累计/首充字段)
  • 清除个人客户绑定关系
  • 删除旧钱包并创建新空钱包

Scenario: 转新后进入新代际

  • WHEN 对旧卡执行转新
  • THEN 系统 MUST 使该卡进入新代际并以在库状态重新销售