All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m8s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2.3 KiB
2.3 KiB
ADDED Requirements
Requirement: 购买套餐支付成功后自动复机
系统 SHALL 在支付回调成功激活套餐(PackageUsage.status 变为 1)后,对因流量耗尽而停机的卡自动触发复机操作。
Scenario: C 端购买套餐支付成功后停机卡自动复机
- GIVEN 卡 C1 因流量耗尽停机(
network_status=0,stop_reason=traffic_exhausted),已完成实名认证(real_name_status=1) - WHEN C 端用户为 C1 购买新套餐并完成微信/支付宝支付,
HandlePaymentCallback事务提交成功 - THEN 系统异步调用
ResumeCardIfStopped(ctx, "iot_card", cardID) - AND 系统调用
gateway.StartCard,更新network_status=1,清空stop_reason
Scenario: 后台购买套餐(钱包支付)后停机卡自动复机
- GIVEN 卡 C2 因流量耗尽停机,已实名
- WHEN 后台管理员通过钱包支付为 C2 购买套餐,
HandlePaymentCallback事务提交成功,套餐状态为status=1 - THEN 系统调用复机逻辑,C2 自动复机
Scenario: 购买排队套餐(新套餐为 Pending 状态)时不触发复机
- GIVEN 卡 C3 已有生效中套餐,用户购买第二个套餐(新套餐创建为
status=0Pending) - WHEN 支付成功,
HandlePaymentCallback完成 - THEN 系统 SHALL NOT 触发复机调用(仅在套餐变为
status=1时才复机)
Scenario: 未实名卡购买套餐不触发复机
- GIVEN 卡 C4 停机(
stop_reason=traffic_exhausted),但real_name_status=0(未实名) - WHEN 为 C4 购买新套餐且套餐激活为
status=1 - THEN
ResumeCardIfStopped内部检测到未实名,静默跳过,C4 保持停机状态
Scenario: 停机原因非流量耗尽时不触发复机
- GIVEN 卡 C5 因手动停机(
stop_reason=manual) - WHEN 为 C5 购买新套餐并激活
- THEN
ResumeCardIfStopped检测到stop_reason不为traffic_exhausted,静默跳过
Scenario: 设备类型载体购买套餐后自动复机
- GIVEN 设备 D1 绑定了 3 张卡,其中 2 张已实名且因流量耗尽停机,1 张未实名
- WHEN 为 D1 购买设备级套餐并激活
- THEN 已实名的 2 张卡自动复机,未实名的 1 张卡保持停机状态