feat: 迁移日汇总任务并修复商务菜单图标
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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)
|
||||
}})
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"kra/internal/biz/business"
|
||||
"kra/internal/biz/system"
|
||||
taskbiz "kra/internal/biz/task"
|
||||
|
||||
@@ -18,16 +19,18 @@ type TaskMethods struct {
|
||||
maintenance *system.MaintenanceUsecase
|
||||
media *system.MediaUsecase
|
||||
runtime *config.Store
|
||||
reports *business.ReportBuildUsecase
|
||||
}
|
||||
|
||||
func NewTaskMethods(tasks *taskbiz.TaskUsecase, maintenance *system.MaintenanceUsecase, media *system.MediaUsecase, runtime *config.Store) *TaskMethods {
|
||||
return &TaskMethods{tasks: tasks, maintenance: maintenance, media: media, runtime: runtime}
|
||||
func NewTaskMethods(tasks *taskbiz.TaskUsecase, maintenance *system.MaintenanceUsecase, media *system.MediaUsecase, runtime *config.Store, reports *business.ReportBuildUsecase) *TaskMethods {
|
||||
return &TaskMethods{tasks: tasks, maintenance: maintenance, media: media, runtime: runtime, reports: reports}
|
||||
}
|
||||
|
||||
func (methods *TaskMethods) RegisterTasks(registry *platformtask.Registry) {
|
||||
if methods == nil || registry == nil {
|
||||
return
|
||||
}
|
||||
methods.registerBusinessReports(registry)
|
||||
descriptions := map[string]string{}
|
||||
for _, task := range taskmodule.TimedTasks() {
|
||||
descriptions[task.MethodName] = task.Description
|
||||
|
||||
Reference in New Issue
Block a user