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>
38 lines
2.0 KiB
Markdown
38 lines
2.0 KiB
Markdown
## ADDED Requirements
|
||
|
||
### Requirement: 流量周期重置后自动复机
|
||
|
||
系统 SHALL 在成功重置套餐流量(`data_usage_mb` 归零,`status` 恢复为 `Active`)后,对因流量耗尽而停机的卡自动触发复机操作。
|
||
|
||
#### Scenario: 3 个月套餐第 2 个月耗尽停机,第 3 个月重置后自动复机
|
||
- **GIVEN** 卡 C1 有一个 3 个月套餐(`data_reset_cycle=monthly`),第 2 个月流量耗尽(`status=2 Depleted`),卡已停机(`network_status=0`,`stop_reason=traffic_exhausted`),已实名
|
||
- **WHEN** 月度重置任务运行,套餐 `data_usage_mb` 归零,`status` 恢复为 `1 Active`
|
||
- **THEN** `ResetService` 调用 `ResumeCardIfStopped(ctx, "iot_card", cardID)`
|
||
- **AND** 卡自动复机(`network_status=1`)
|
||
|
||
#### Scenario: 日流量套餐重置后停机卡自动复机
|
||
- **GIVEN** 卡 C2 有日流量套餐(`data_reset_cycle=daily`),当天流量耗尽停机,已实名
|
||
- **WHEN** 次日零点日流量重置任务运行
|
||
- **THEN** 卡自动复机
|
||
|
||
#### Scenario: 年流量套餐重置后停机卡自动复机
|
||
- **GIVEN** 卡 C3 有年流量套餐(`data_reset_cycle=yearly`),年内流量耗尽停机,已实名
|
||
- **WHEN** 年度重置任务运行
|
||
- **THEN** 卡自动复机
|
||
|
||
#### Scenario: 重置后卡已处于开机状态不重复复机
|
||
- **GIVEN** 卡 C4 套餐被重置,但 `network_status=1`(已开机,可能已被人工复机)
|
||
- **WHEN** `ResumeCardIfStopped` 被调用
|
||
- **THEN** 检测到卡已开机,幂等跳过,不调用 Gateway
|
||
|
||
#### Scenario: 重置后未实名卡不复机
|
||
- **GIVEN** 卡 C5 套餐被重置,`real_name_status=0`(未实名),停机中
|
||
- **WHEN** `ResumeCardIfStopped` 被调用
|
||
- **THEN** 检测到未实名,静默跳过,卡保持停机
|
||
|
||
#### Scenario: 批量重置中部分套餐的卡已停机
|
||
- **GIVEN** 月度重置扫描到 100 个套餐,其中 10 个对应的卡处于停机状态且已实名
|
||
- **WHEN** 月度重置完成
|
||
- **THEN** 10 张停机卡异步触发复机,其余 90 张正常跳过
|
||
- **AND** 单个复机失败不影响其他卡的处理
|