package worker import ( "context" "encoding/json" "fmt" "kra/internal/biz/business" platformtask "kra/pkg/task" ) // 只注册旧执行器对应方法,不创建或启用计划;迁移库保留原参数与禁用状态。 func (methods *TaskMethods) registerBusinessReports(registry *platformtask.Registry) { for _, job := range []struct { name, description, period string kind business.ReportBuildKind }{ {"swReportDayTodayTask", "重建当日商务日汇总", "today", business.DailyReport}, {"swReportDayYesterdayTask", "重建昨日商务日汇总", "yesterday", business.DailyReport}, {"swReportDayBackfillTask", "按日期区间重建商务日汇总", "backfill", business.DailyReport}, {"swReportServerDayTodayTask", "重建当日区服日汇总", "today", business.ServerReport}, {"swReportServerDayYesterdayTask", "重建昨日区服日汇总", "yesterday", business.ServerReport}, {"swReportServerDayBackfillTask", "按日期区间重建区服日汇总", "backfill", business.ServerReport}, } { registry.Register(platformtask.Method{Name: job.name, Description: job.description, Run: func(ctx context.Context, params json.RawMessage) error { if methods.reports == nil { return fmt.Errorf("商务汇总任务依赖未就绪") } if ctx == nil { ctx = context.Background() } var args struct { StartDate string `json:"startDate"` EndDate string `json:"endDate"` } if job.period == "backfill" && len(params) > 0 { if err := json.Unmarshal(params, &args); err != nil { return fmt.Errorf("日期回跑参数必须是 JSON 对象: %w", err) } } return methods.reports.Run(ctx, job.kind, job.period, args.StartDate, args.EndDate) }}) } }