44 lines
1.7 KiB
Go
44 lines
1.7 KiB
Go
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)
|
|
}})
|
|
}
|
|
}
|