From 50038cee3fae3eecab68d2f51eb2f3cfb3ffda2d Mon Sep 17 00:00:00 2001 From: duorameng <2997944583@qq.com> Date: Mon, 8 Jun 2026 19:46:10 +0800 Subject: [PATCH] Fix: populate relations in GetTaskByID and agent GetTasks --- internal/services/agent_service.go | 15 +++++++++++++++ internal/services/tasks/task_service.go | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/internal/services/agent_service.go b/internal/services/agent_service.go index bb6ad80..8068703 100644 --- a/internal/services/agent_service.go +++ b/internal/services/agent_service.go @@ -15,6 +15,7 @@ import ( "github.com/engigu/baihu-panel/internal/executor" "github.com/engigu/baihu-panel/internal/logger" "github.com/engigu/baihu-panel/internal/models" + "github.com/engigu/baihu-panel/internal/services/relation" "github.com/engigu/baihu-panel/internal/services/tasks" "github.com/engigu/baihu-panel/internal/utils" @@ -318,6 +319,20 @@ func (s *AgentService) GetTasks(agentID string) []models.AgentTask { var tasksList []models.Task database.DB.Where("agent_id = ? AND enabled = ?", agentID, true).Find(&tasksList) + // 装载关联的变量信息 + if len(tasksList) > 0 { + taskIDs := make([]string, len(tasksList)) + for i, t := range tasksList { + taskIDs[i] = t.ID + } + envsMap := relation.DataRelation.LoadRelations(taskIDs, constant.RelationTypeTaskEnv) + for i, t := range tasksList { + if envs, ok := envsMap[t.ID]; ok { + tasksList[i].Envs = models.BigText(strings.Join(envs, ",")) + } + } + } + result := make([]models.AgentTask, len(tasksList)) envService := NewEnvService() diff --git a/internal/services/tasks/task_service.go b/internal/services/tasks/task_service.go index ca67124..2d9113b 100644 --- a/internal/services/tasks/task_service.go +++ b/internal/services/tasks/task_service.go @@ -167,9 +167,10 @@ func (ts *TaskService) GetTaskByID(id string) *models.Task { if res.Error != nil || res.RowsAffected == 0 { return nil } - ts.loadTagsAndEnvs([]models.Task{task}) + tasks := []models.Task{task} + ts.loadTagsAndEnvs(tasks) - return &task + return &tasks[0] } func (ts *TaskService) UpdateTask(id string, p *TaskParam) *models.Task {