diff --git a/automation/server/internal/module/job_workflow/controller/template.go b/automation/server/internal/module/job_workflow/controller/template.go index eb89a8db289bfb01591404fbd928f58fed3b0505..b1285f53c9e2ae7c518913f4473979349f955776 100644 --- a/automation/server/internal/module/job_workflow/controller/template.go +++ b/automation/server/internal/module/job_workflow/controller/template.go @@ -34,3 +34,13 @@ func QueryTemplate(c *gin.Context) { } response.DataPaged(c, templates, total, query) } + +func GetTemplateById(c *gin.Context) { + templateId := c.Query("id") + info, err := service.GetTemplateById(templateId) + if err != nil { + response.Fail(c, nil, err.Error()) + return + } + response.Success(c, info, "success") +} diff --git a/automation/server/internal/module/job_workflow/dao/template.go b/automation/server/internal/module/job_workflow/dao/template.go index ecb0e01d804b4e75c66f8ea163cc873dfc26ffe0..73064e16ce136b539d7782f7b81ff497a8e4fc8c 100644 --- a/automation/server/internal/module/job_workflow/dao/template.go +++ b/automation/server/internal/module/job_workflow/dao/template.go @@ -96,3 +96,29 @@ func QueryTemplates(query *response.PagedQuery) ([]model.TaskTemplate, int, erro } return templates, int(total), nil } + +func GetTemplateById(id string) (interface{}, error) { + var template model.TaskTemplate + // 1. 查询模板基本信息 + if err := global.App.MySQL.Model(&model.TaskTemplate{}).Where("id = ?", id).First(&template).Error; err != nil { + return nil, err + } + // 2. 查询变量 + var variables []model.TaskTemplateVariable + if err := global.App.MySQL.Model(&model.TaskTemplateVariable{}).Where("template_id = ?", id).Find(&variables).Error; err != nil { + return nil, err + } + // 3. 查询步骤 + var steps []model.TaskTemplateStep + if err := global.App.MySQL.Model(&model.TaskTemplateStep{}).Where("template_id = ?", id).Find(&steps).Error; err != nil { + return nil, err + } + var data = map[string]interface{}{} + data["id"] = template.ID + data["name"] = template.Name + data["description"] = template.Description + data["tags"] = template.Tags + data["variableList"] = variables + data["stepList"] = steps + return data, nil +} diff --git a/automation/server/internal/module/job_workflow/router.go b/automation/server/internal/module/job_workflow/router.go index 84dcbf56d80b6af9bea7be589f76239273622abf..03e1724b9eba7aeff656db235526518307659056 100644 --- a/automation/server/internal/module/job_workflow/router.go +++ b/automation/server/internal/module/job_workflow/router.go @@ -10,5 +10,6 @@ func WorkflowHandler(router *gin.RouterGroup) { { api.POST("/create", controller.CreateTemplate) api.GET("/query", controller.QueryTemplate) + api.GET("/get", controller.GetTemplateById) } } diff --git a/automation/server/internal/module/job_workflow/service/template.go b/automation/server/internal/module/job_workflow/service/template.go index 4b0f6c6e1220fc796ebfcda8a0f3ee4ac966606d..77b299ce4a915bdc28c0b153f02c6dfa844fdeda 100644 --- a/automation/server/internal/module/job_workflow/service/template.go +++ b/automation/server/internal/module/job_workflow/service/template.go @@ -20,3 +20,11 @@ func QueryTemplate(query *response.PagedQuery) ([]model.TaskTemplate, int, error } return templates, total, nil } + +func GetTemplateById(id string) (interface{}, error) { + info, err := dao.GetTemplateById(id) + if err != nil { + return nil, err + } + return info, nil +}