diff --git a/automation/server/internal/module/job_workflow/controller/template.go b/automation/server/internal/module/job_workflow/controller/template.go index 0108f55bea35ca28804942b03e6725135e3e07e0..eb89a8db289bfb01591404fbd928f58fed3b0505 100644 --- a/automation/server/internal/module/job_workflow/controller/template.go +++ b/automation/server/internal/module/job_workflow/controller/template.go @@ -19,3 +19,18 @@ func CreateTemplate(c *gin.Context) { } response.Success(c, nil, "success") } + +func QueryTemplate(c *gin.Context) { + query := &response.PagedQuery{} + if err := c.ShouldBindQuery(query); err != nil { + response.Fail(c, nil, err.Error()) + return + } + + templates, total, err := service.QueryTemplate(query) + if err != nil { + response.Fail(c, nil, err.Error()) + return + } + response.DataPaged(c, templates, total, query) +} diff --git a/automation/server/internal/module/job_workflow/dao/template.go b/automation/server/internal/module/job_workflow/dao/template.go index 215aae05941c47a333e1e49b6be28654c8ef67dd..ecb0e01d804b4e75c66f8ea163cc873dfc26ffe0 100644 --- a/automation/server/internal/module/job_workflow/dao/template.go +++ b/automation/server/internal/module/job_workflow/dao/template.go @@ -7,6 +7,7 @@ import ( "gorm.io/gorm" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/global" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/job_workflow/model" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) func CreateTemplate(dto *model.TaskTemplateDTO) error { @@ -56,14 +57,14 @@ func CreateTemplate(dto *model.TaskTemplateDTO) error { } // 3.2 设置模板的首尾步骤 - template.FirstStepId = dto.Steps[0].StepNum - template.LastStepId = dto.Steps[len(dto.Steps)-1].StepNum + template.FirstStepNum = dto.Steps[0].StepNum + template.LastStepNum = dto.Steps[len(dto.Steps)-1].StepNum // 3.4 回写模板首尾步骤 if err := tx.Model(&model.TaskTemplate{}). Where("id = ?", templateId). Updates(map[string]interface{}{ - "first_step_id": template.FirstStepId, - "last_step_id": template.LastStepId, + "first_step_num": template.FirstStepNum, + "last_step_num": template.LastStepNum, }).Error; err != nil { return err } @@ -81,3 +82,17 @@ func CreateTemplate(dto *model.TaskTemplateDTO) error { return nil }) } + +func QueryTemplates(query *response.PagedQuery) ([]model.TaskTemplate, int, error) { + var templates []model.TaskTemplate + q := global.App.MySQL.Model(&model.TaskTemplate{}).Limit(query.PageSize).Offset((query.CurrentPage - 1) * query.PageSize) + if err := q.Find(&templates).Error; err != nil { + return nil, 0, err + } + + var total int64 + if err := global.App.MySQL.Model(&model.TaskTemplate{}).Count(&total).Error; err != nil { + return nil, 0, err + } + return templates, int(total), nil +} diff --git a/automation/server/internal/module/job_workflow/model/template.go b/automation/server/internal/module/job_workflow/model/template.go index 1b7f7213ccf1311012bf5efbad86ff7d70f42b81..7eb1d0c818264bc83593315a766c6d244fab2378 100644 --- a/automation/server/internal/module/job_workflow/model/template.go +++ b/automation/server/internal/module/job_workflow/model/template.go @@ -3,14 +3,14 @@ package model import "encoding/json" type TaskTemplate struct { - ID int `json:"id" gorm:"primaryKey;autoIncrement;comment:作业编排Id"` - Name string `json:"name" gorm:"type:varchar(255);comment:作业编排名称"` - Description string `json:"description" gorm:"type:varchar(255);comment:作业描述"` - Tags string `json:"tags" gorm:"comment:场景标签"` - FirstStepId int `json:"first_step_num"` - LastStepId int `json:"last_step_num"` - ModifyUser string `json:"modify_user" gorm:"type:varchar(100);not null;comment:'最后修改者'"` - ModifyTime string `json:"modify_time" gorm:"comment:'最后修改时间'"` + ID int `json:"id" gorm:"primaryKey;autoIncrement;comment:作业编排Id"` + Name string `json:"name" gorm:"type:varchar(255);comment:作业编排名称"` + Description string `json:"description" gorm:"type:varchar(255);comment:作业描述"` + Tags string `json:"tags" gorm:"comment:场景标签"` + FirstStepNum int `json:"first_step_num"` + LastStepNum int `json:"last_step_num"` + ModifyUser string `json:"modify_user" gorm:"type:varchar(100);not null;comment:'最后修改者'"` + ModifyTime string `json:"modify_time" gorm:"comment:'最后修改时间'"` } type TaskTemplateVariable struct { diff --git a/automation/server/internal/module/job_workflow/router.go b/automation/server/internal/module/job_workflow/router.go index 8bad919dc21aa5c445ac23e73e9fab48aefe36a4..84dcbf56d80b6af9bea7be589f76239273622abf 100644 --- a/automation/server/internal/module/job_workflow/router.go +++ b/automation/server/internal/module/job_workflow/router.go @@ -9,5 +9,6 @@ func WorkflowHandler(router *gin.RouterGroup) { api := router.Group("/workflows") { api.POST("/create", controller.CreateTemplate) + api.GET("/query", controller.QueryTemplate) } } diff --git a/automation/server/internal/module/job_workflow/service/template.go b/automation/server/internal/module/job_workflow/service/template.go index 0ad8f0f5161a5f55860fc716266739e5e4cefa57..4b0f6c6e1220fc796ebfcda8a0f3ee4ac966606d 100644 --- a/automation/server/internal/module/job_workflow/service/template.go +++ b/automation/server/internal/module/job_workflow/service/template.go @@ -3,6 +3,7 @@ package service import ( "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/job_workflow/dao" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/job_workflow/model" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) func CreateTemplate(data *model.TaskTemplateDTO) error { @@ -11,3 +12,11 @@ func CreateTemplate(data *model.TaskTemplateDTO) error { } return nil } + +func QueryTemplate(query *response.PagedQuery) ([]model.TaskTemplate, int, error) { + templates, total, err := dao.QueryTemplates(query) + if err != nil { + return nil, 0, err + } + return templates, total, nil +}