package lifecycle import ( "git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/consts" "github.com/gogf/gf/v2/errors/gerror" ) type Operation int const ( OperationSuspend Operation = iota + 1 OperationResume OperationRestart ) type OperationConfig struct { Operation Operation Code string Name string BatchType int BatchPrefix string OperType string TargetStatus int TaskName string ExportScene int ImportDir string ResultDir string } func (operation Operation) Config() (OperationConfig, error) { switch operation { case OperationSuspend: return OperationConfig{ Operation: operation, Code: "stop", Name: "自主停机", BatchType: consts.BatchTypeStop, BatchPrefix: consts.BatchNoPrefixStop, OperType: consts.SimCardStatusOperTypeStop, TargetStatus: consts.V3ApiSimBossCardStatusStopped, TaskName: consts.ResourceBatchDownloadTaskSimCardStop, ExportScene: consts.ResourceExportSceneStop, ImportDir: consts.SimCardStopSubDirImportExcel, ResultDir: consts.SimCardStopSubDirResultExcel, }, nil case OperationResume: return OperationConfig{ Operation: operation, Code: "start", Name: "自主复机", BatchType: consts.BatchTypeStart, BatchPrefix: consts.BatchNoPrefixStart, OperType: consts.SimCardStatusOperTypeStart, TargetStatus: consts.V3ApiSimBossCardStatusActivated, TaskName: consts.ResourceBatchDownloadTaskSimCardStart, ExportScene: consts.ResourceExportSceneStart, ImportDir: consts.SimCardStartSubDirImportExcel, ResultDir: consts.SimCardStartSubDirResultExcel, }, nil case OperationRestart: return OperationConfig{ Operation: operation, Code: "restart", Name: "自主重启", BatchType: consts.BatchTypeRestart, BatchPrefix: consts.BatchNoPrefixRestart, TaskName: consts.ResourceBatchDownloadTaskSimCardRestart, ExportScene: consts.ResourceExportSceneRestart, ImportDir: consts.SimCardRestartSubDirImportExcel, ResultDir: consts.SimCardRestartSubDirResultExcel, }, nil default: return OperationConfig{}, gerror.New("不支持的SIM卡状态操作") } } func OperationByBatchType(batchType int) (Operation, error) { switch batchType { case consts.BatchTypeStop: return OperationSuspend, nil case consts.BatchTypeStart: return OperationResume, nil default: return 0, gerror.Newf("批次类型%d不是停复机执行批次", batchType) } }