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

@@ -556,6 +556,12 @@ const (
AuditActionPackageTrafficAlertRuleDisabled = "package_traffic_alert_rule.disable"
// AuditActionPackageTrafficAlertTriggered 表示扫描命中阈值时创建套餐真流量达量预警事实。
AuditActionPackageTrafficAlertTriggered = "package_traffic_alert.trigger"
// AuditActionAssetAutoRenewalConfigUpdated 表示保存受控的资产钱包自动续费配置。
AuditActionAssetAutoRenewalConfigUpdated = "asset_auto_renewal.config.updated"
// AuditActionAssetAutoRenewalRenewed 表示自动续费在同一事务内完成续购并置尝试成功。
AuditActionAssetAutoRenewalRenewed = "asset_auto_renewal.renewed"
// AuditActionAssetAutoRenewalFailed 表示自动续费以失败或跳过终态结束。
AuditActionAssetAutoRenewalFailed = "asset_auto_renewal.failed"
// AuditActionNotificationDelivered 表示 Outbox 消费后实际生成站内通知。
AuditActionNotificationDelivered = "notification.deliver"
// AuditActionNotificationRead 表示单条通知首次标记已读。
@@ -634,6 +640,8 @@ const (
AuditActionPermissionDeleted = "permission.delete"
// AuditOperationSystemConfigUpdate 表示系统配置旧接缝传入的操作类型。
AuditOperationSystemConfigUpdate = "system_config_update"
// AuditOperationAssetAutoRenewalConfigUpdate 表示资产钱包自动续费配置旧接缝传入的操作类型。
AuditOperationAssetAutoRenewalConfigUpdate = "asset_auto_renewal_config_update"
// AuditOperationPaymentConfigCreate 表示创建支付连接配置。
AuditOperationPaymentConfigCreate = "payment_config_create"
// AuditOperationPaymentConfigUpdate 表示更新支付连接配置。
@@ -731,6 +739,10 @@ const (
AuditResourcePackageTrafficAlertRule = "package_traffic_alert_rule"
// AuditResourcePackageTrafficAlert 表示套餐真流量达量预警事实资源。
AuditResourcePackageTrafficAlert = "package_traffic_alert"
// AuditResourceAssetAutoRenewalConfig 表示资产钱包自动续费全局配置资源。
AuditResourceAssetAutoRenewalConfig = "asset_auto_renewal_config"
// AuditResourceAssetAutoRenewalAttempt 表示资产钱包自动续费尝试记录资源。
AuditResourceAssetAutoRenewalAttempt = "asset_auto_renewal_attempt"
// AuditResourceNotification 表示站内通知资源。
AuditResourceNotification = "notification"
// AuditResourceNotificationReadBatch 表示通知批量已读资源。
@@ -879,6 +891,16 @@ const (
AuditResourceRolePackageTrafficAlertRuleTarget = "package_traffic_alert_rule_target"
// AuditResourceRolePackageTrafficAlertTarget 表示套餐真流量达量预警事实资源。
AuditResourceRolePackageTrafficAlertTarget = "package_traffic_alert_target"
// AuditResourceRoleAssetAutoRenewalConfigTarget 表示资产钱包自动续费配置主资源。
AuditResourceRoleAssetAutoRenewalConfigTarget = "asset_auto_renewal_config_target"
// AuditResourceRoleAssetAutoRenewalAttemptTarget 表示本次自动续费尝试记录主资源。
AuditResourceRoleAssetAutoRenewalAttemptTarget = "asset_auto_renewal_attempt_target"
// AuditResourceRoleAssetAutoRenewalWallet 表示本次自动续费实际扣款的资产钱包。
AuditResourceRoleAssetAutoRenewalWallet = "asset_auto_renewal_wallet"
// AuditResourceRoleAssetAutoRenewalWalletTransaction 表示本次自动续费产生的资产钱包流水。
AuditResourceRoleAssetAutoRenewalWalletTransaction = "asset_auto_renewal_wallet_transaction"
// AuditResourceRoleAssetAutoRenewalOrder 表示本次自动续费产生的续费订单。
AuditResourceRoleAssetAutoRenewalOrder = "asset_auto_renewal_order"
// AuditResourceRoleRetentionMonth 表示留存清理目标自然月。
AuditResourceRoleRetentionMonth = "retention_month"
// AuditResourceRoleNotificationTarget 表示本次写操作的通知资源。