# Spec Delta: IoT卡轮询系统扩展 ## MODIFIED Requirements ### Requirement: 流量检查任务支持新的扣减优先级 系统 SHALL 在轮询系统的流量检查任务(HandleCarddataCheck)中,实现新的流量扣减优先级机制。 #### Scenario: 优先扣减加油包流量 - **WHEN** 轮询系统检测到卡流量增加,卡有主套餐和加油包 - **THEN** 系统优先更新加油包的 data_usage_mb,再更新主套餐 #### Scenario: 按 Priority 顺序扣减多个加油包 - **WHEN** 卡有多个加油包,流量增加 - **THEN** 系统按 priority 从小到大顺序扣减流量 ### Requirement: 停机条件检查调整 系统 SHALL 在轮询系统中,仅当主套餐和所有加油包流量都用完时触发停机。 #### Scenario: 主套餐用完但加油包有剩余不停机 - **WHEN** 主套餐 data_usage_mb >= data_limit_mb,但加油包有剩余流量 - **THEN** 系统不触发停机操作 #### Scenario: 所有套餐流量用完触发停机 - **WHEN** 主套餐和所有加油包 data_usage_mb >= data_limit_mb - **THEN** 系统触发停机操作 ## ADDED Requirements ### Requirement: 套餐激活检查任务 系统 SHALL 新增套餐激活检查任务(HandlePackageActivation),定期检查待激活的主套餐。 #### Scenario: 定期检查待激活主套餐 - **WHEN** 轮询系统每分钟执行一次套餐激活检查 - **THEN** 系统查询所有已过期主套餐,激活 priority 最小的待生效主套餐 #### Scenario: 激活延迟小于1分钟 - **WHEN** 主套餐在 00:00:00 过期 - **THEN** 系统在 00:01:00 之前完成下一个主套餐的激活 ### Requirement: 流量重置调度任务 系统 SHALL 新增流量重置调度任务(HandleDataReset),根据套餐的 data_reset_cycle 定期重置流量。 #### Scenario: 每日0点触发日重置任务 - **WHEN** 系统时间到达 00:00:00 - **THEN** 系统重置所有 data_reset_cycle=daily 的套餐 data_usage_mb=0 #### Scenario: 每月1号触发月重置任务 - **WHEN** 系统时间到达每月1号 00:00:00 - **THEN** 系统重置所有 data_reset_cycle=monthly 的套餐 data_usage_mb=0