// Package assetautorenewal 提供资产钱包自动续费的停复机执行适配与异步任务入口。 package assetautorenewal import ( "context" assetAutoRenewalApp "github.com/break/junhong_cmp_fiber/internal/application/assetautorenewal" iotCardSvc "github.com/break/junhong_cmp_fiber/internal/service/iot_card" "github.com/break/junhong_cmp_fiber/pkg/errors" ) // CardCommander 把自动续费复机端口转发到既有停复机单一事实源。 // // 它只做类型与结果分类的转换:判定规则、重试、Integration Log、统一审计与观测序列全部由 // internal/service/iot_card 提供,本适配器不复制任何规则,也不直接调用运营商接口。 type CardCommander struct { service *iotCardSvc.StopResumeService } // NewCardCommander 创建自动续费复机执行适配器。 func NewCardCommander(service *iotCardSvc.StopResumeService) *CardCommander { return &CardCommander{service: service} } // AutoRenewalResumeReady 判断该资产是否满足自动复机条件。 func (c *CardCommander) AutoRenewalResumeReady(ctx context.Context, assetType string, assetID uint) (bool, string, error) { if c == nil || c.service == nil { return false, "", errCommanderUnavailable() } return c.service.AutoRenewalResumeReady(ctx, assetType, assetID) } // ResumeAssetForAutoRenewal 执行复机并把结果转换为本用例的结果摘要。 func (c *CardCommander) ResumeAssetForAutoRenewal(ctx context.Context, assetType string, assetID uint) (assetAutoRenewalApp.ResumeOutcome, error) { if c == nil || c.service == nil { return assetAutoRenewalApp.ResumeOutcome{}, errCommanderUnavailable() } outcome, err := c.service.ResumeAssetForAutoRenewal(ctx, assetType, assetID) return assetAutoRenewalApp.ResumeOutcome{ Applied: outcome.Applied, IntegrationID: outcome.IntegrationID, Result: outcome.Result, SafeReason: outcome.SafeReason, }, err } // QueryAutoRenewalResumeState 只查询运营商卡状态,供恢复扫描回填复机结果。 func (c *CardCommander) QueryAutoRenewalResumeState(ctx context.Context, assetType string, assetID uint) (bool, bool, string, error) { if c == nil || c.service == nil { return false, false, "", errCommanderUnavailable() } return c.service.QueryAutoRenewalResumeState(ctx, assetType, assetID) } // errCommanderUnavailable 返回复机执行端口未配置的稳定错误。 func errCommanderUnavailable() error { return errors.New(errors.CodeServiceUnavailable, "自动续费复机执行能力未配置") }