Fix: populate relations in GetTaskByID and agent GetTasks

This commit is contained in:
duorameng
2026-06-08 19:46:10 +08:00
parent ddbb0e9f39
commit 50038cee3f
2 changed files with 18 additions and 2 deletions
+15
View File
@@ -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()
+3 -2
View File
@@ -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 {