feat(资产钱包自动续费): 新增全局配置、每日扫描续购与可靠复机
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 10m15s

- 新增单行配置表 tb_asset_auto_renewal_config 与尝试记录表 tb_asset_auto_renewal_attempt(迁移 000229/000230)
- 每日按上海自然日扫描,窗口内以同一资产钱包可用余额续购当前主套餐,资金/订单/套餐/审计同一事务闭合
- 唯一键保证每资产每日至多一次尝试,占位中断由后续扫描收敛,当日不重试
- 四类失败原因向客户与店铺各投递每日至多一条站内通知,并注册通知类型与个人客户白名单
- 续费成功后按条件经 Outbox 可靠投递复机,新增恢复扫描只查询回填,不使用即发即弃调用
- 配置读写仅超级管理员与平台账号,保存记录操作者、前后值快照并登记统一审计
- tasks 7.1–7.15 全部验证通过(本机隔离 PostgreSQL/Redis,零外部渠道调用)
This commit is contained in:
2026-09-17 16:39:26 +08:00
parent 70e6b186df
commit d52be16802
54 changed files with 5164 additions and 97 deletions

View File

@@ -157,12 +157,14 @@ const (
CardObservationSceneBusinessResume = "business_resume" // 业务复机成功
// CardObservationSceneCarrierThresholdRecovery 是通道阈值恢复扫描的只读状态查询场景。
CardObservationSceneCarrierThresholdRecovery = "carrier_threshold_recovery"
CardObservationScenePackageChanged = "package_changed" // 购包或套餐激活成功
CardObservationSceneDeviceSwitchCard = "device_switch_card" // 设备切卡成功
CardObservationSceneDeviceSwitchMode = "device_switch_mode" // 设备切卡模式成功
CardObservationSceneDeviceReboot = "device_reboot" // 设备重启成功
CardObservationSceneDeviceReset = "device_reset" // 设备恢复出厂成功
CardObservationSceneDeviceSetWiFi = "device_set_wifi" // 设备 WiFi 设置成功
// CardObservationSceneAssetAutoRenewalResumeRecovery 是资产钱包自动续费复机结果恢复扫描的只读状态查询场景。
CardObservationSceneAssetAutoRenewalResumeRecovery = "asset_auto_renewal_resume_recovery"
CardObservationScenePackageChanged = "package_changed" // 购包或套餐激活成功
CardObservationSceneDeviceSwitchCard = "device_switch_card" // 设备切卡成功
CardObservationSceneDeviceSwitchMode = "device_switch_mode" // 设备切卡模式成功
CardObservationSceneDeviceReboot = "device_reboot" // 设备重启成功
CardObservationSceneDeviceReset = "device_reset" // 设备恢复出厂成功
CardObservationSceneDeviceSetWiFi = "device_set_wifi" // 设备 WiFi 设置成功
)
// 卡实名状态变更 Outbox 事件