diff --git a/automation/server/internal/module/job_workflow/controller/template.go b/automation/server/internal/module/job_workflow/controller/template.go index 9cc2c5d65ba2294858a216fc658c7b893f28a7b2..d380d4c8f8fd1f33148139052643408a8b983f60 100644 --- a/automation/server/internal/module/job_workflow/controller/template.go +++ b/automation/server/internal/module/job_workflow/controller/template.go @@ -20,6 +20,21 @@ func CreateTemplate(c *gin.Context) { response.Success(c, nil, "success") } +func DeleteTemplate(c *gin.Context) { + var ids struct { + ID []int `json:"id"` + } + if err := c.ShouldBindJSON(&ids); err != nil { + response.Fail(c, nil, err.Error()) + return + } + if err := service.DeleteTemplate(ids.ID); err != nil { + response.Fail(c, nil, err.Error()) + return + } + response.Success(c, nil, "success") +} + func UpdateTemplate(c *gin.Context) { var template model.TaskTemplateDTO if err := c.ShouldBindJSON(&template); err != nil { diff --git a/automation/server/internal/module/job_workflow/dao/template.go b/automation/server/internal/module/job_workflow/dao/template.go index 4493a5610815ccd5a846d1994f44fdbb6f2faed0..eaf6e13cc71c01151c27fe592534d3b7f48f6389 100644 --- a/automation/server/internal/module/job_workflow/dao/template.go +++ b/automation/server/internal/module/job_workflow/dao/template.go @@ -93,6 +93,37 @@ func CreateTemplate(dto *model.TaskTemplateDTO) error { }) } +func DeleteTemplate(ids []int) error { + return global.App.MySQL.Transaction(func(tx *gorm.DB) error { + // 1. 删除脚本表数据 + if err := tx.Where("template_id IN ?", ids).Unscoped().Delete(&model.TaskTemplateStepScript{}).Error; err != nil { + return err + } + + // 2. 删除步骤表数据 + if err := tx.Where("template_id IN ?", ids).Unscoped().Delete(&model.TaskTemplateStep{}).Error; err != nil { + return err + } + + // 3. 删除输出参数表数据 + if err := tx.Where("template_id IN ?", ids).Unscoped().Delete(&model.TaskTemplateOutputParams{}).Error; err != nil { + return err + } + + // 4. 删除输入参数表数据 + if err := tx.Where("template_id IN ?", ids).Unscoped().Delete(&model.TaskTemplateParams{}).Error; err != nil { + return err + } + + // 5. 最后删除模板表数据 + if err := tx.Where("id IN ?", ids).Unscoped().Delete(&model.TaskTemplate{}).Error; err != nil { + return err + } + + return nil + }) +} + func UpdateTemplate(dto *model.TaskTemplateDTO) error { return global.App.MySQL.Transaction(func(tx *gorm.DB) error { templateId := dto.Template.ID diff --git a/automation/server/internal/module/job_workflow/router.go b/automation/server/internal/module/job_workflow/router.go index d01cc13f6a8a50986c845da034096b72981b7aa4..0fd110b43849d53be7d78eca4587486d8c16da8b 100644 --- a/automation/server/internal/module/job_workflow/router.go +++ b/automation/server/internal/module/job_workflow/router.go @@ -9,6 +9,7 @@ func WorkflowHandler(router *gin.RouterGroup) { api := router.Group("/workflows") { api.POST("/create", controller.CreateTemplate) + api.DELETE("/delete", controller.DeleteTemplate) api.POST("/update", controller.UpdateTemplate) 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 6325549593d526d70ef48f944d8d273472e8b1f8..9758ab83f219d635b8d29cb48a44701ccb1ad34a 100644 --- a/automation/server/internal/module/job_workflow/service/template.go +++ b/automation/server/internal/module/job_workflow/service/template.go @@ -12,6 +12,14 @@ func CreateTemplate(data *model.TaskTemplateDTO) error { } return nil } + +func DeleteTemplate(id []int) error { + if err := dao.DeleteTemplate(id); err != nil { + return err + } + return nil +} + func UpdateTemplate(data *model.TaskTemplateDTO) error { if err := dao.UpdateTemplate(data); err != nil { return err