Files
junhong_cmp_fiber/openspec/changes/add-asset-wallet-auto-renewal/specs/asset-auto-renewal/spec.md
break 370fd3e67f
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 10m49s
update
2026-09-03 09:28:28 +08:00

2.1 KiB

Purpose

在套餐最终到期前的受控窗口内,仅以同一资产钱包余额自动续购当前有效主套餐,并使扣款、套餐生效和复机失败具有明确且可恢复的边界。

ADDED Requirements

Requirement: 自动续费配置、权限与频率

仅超级管理员和平台用户 SHALL 查看或修改全局自动续费开关、适用全部或指定主套餐及统一到期前 N 天;每次新增、修改、启用、停用必须记录操作者、修改前后值和时间。系统 SHALL 对已保存的有效配置执行续费:仅对当前有效主套餐、尚未到期、进入最终到期前窗口的资产处理;不得按流量阈值触发。每项资产每天最多尝试一次,成功后停止,套餐到期后不再自动尝试。

续费 MUST 仅扣该资产钱包可用余额,续购同一套餐商品,价格取执行时当前渠道可售续费价。余额不足或套餐不可续费时,不创建订单、不扣款,并向当前个人客户和资产所属店铺当时有效业务员各创建每日至多一条通知。

Scenario: 无权限修改配置

  • WHEN 代理、企业或个人客户请求修改自动续费配置
  • THEN 系统拒绝请求且不改变配置或产生执行任务

Scenario: 窗口内余额不足

  • WHEN 合格资产进入自动续费窗口但资产钱包余额不足
  • THEN 系统记录当日尝试失败且不扣款,并向当前客户和有效业务员各投递一次通知

Requirement: 并发、成功与复机

手动续购 SHALL 优先于自动续费。自动任务必须锁定并重读资产、套餐和钱包;发现人工已成功续购时跳过,避免重复扣款。成功续费后,仅当资产为可恢复停机且运营商状态不是风险停机或已销户时,系统调用既有复机;复机失败不得回滚已成功的订单、套餐或钱包扣款,必须保存失败结果并通知客户和业务员。

Scenario: 手动续购并发成功

  • WHEN 自动任务锁定后发现同一资产已由人工成功续购
  • THEN 自动任务不创建第二笔订单、不扣款,并结束本次尝试