diff --git a/automation/server/internal/module/script_library/dao/script_version.go b/automation/server/internal/module/script_library/dao/script_version.go index 695a7fc3d1e4ad51046862ad122155381b3a86a6..b7c9d8b1a141a89406e1b20c37e05cbdf68ab947 100644 --- a/automation/server/internal/module/script_library/dao/script_version.go +++ b/automation/server/internal/module/script_library/dao/script_version.go @@ -23,6 +23,7 @@ SELECT 'id', sv.id, 'script_id', sv.script_id, 'content', sv.content, + 'params', sv.params, 'version', sv.version, 'version_desc', sv.version_desc, 'status', sv.status = 1, diff --git a/automation/server/internal/module/script_library/model/script.go b/automation/server/internal/module/script_library/model/script.go index 871eec7a8a2c06b6d361966cc5144e63c08a600d..491d18ee6a15308c9f4a5f2f0121f86d53d7fa1c 100644 --- a/automation/server/internal/module/script_library/model/script.go +++ b/automation/server/internal/module/script_library/model/script.go @@ -1,29 +1,32 @@ package model +import "encoding/json" + type Script struct { - ID string `json:"id" gorm:"primaryKey;type:varchar(36);not null;comment:'脚本ID'"` - Name string `json:"name" gorm:"type:varchar(255);not null;uniqueIndex:uniq_script_name;comment:'脚本名称'"` - ScriptType string `json:"script_type" gorm:"type:varchar(100);not null;comment:'脚本类型'"` - Description string `json:"description" gorm:"type:varchar(500);comment:'脚本描述'"` - Tags string `json:"tags" gorm:"comment:'场景标签'"` - IsPublic bool `json:"is_public" gorm:"type:boolean;not null;comment:'是否公开'"` - Creator string `json:"creator" gorm:"type:varchar(100);not null;comment:'创建者'"` - CreatedAt string `json:"created_at" gorm:"comment:'创建时间'"` - LastModifyUser string `json:"last_modify_user" gorm:"type:varchar(100);not null;comment:'最后修改者'"` - LastModifyUpdatedAt string `json:"last_modify_updated_at" gorm:"comment:'最后修改时间'"` + ID string `json:"id" gorm:"primaryKey;type:varchar(36);not null;comment:脚本ID"` + Name string `json:"name" gorm:"type:varchar(255);not null;uniqueIndex:uniq_script_name;comment:脚本名称"` + ScriptType string `json:"script_type" gorm:"type:varchar(100);not null;comment:脚本类型"` + Description string `json:"description" gorm:"type:varchar(500);comment:脚本描述"` + Tags string `json:"tags" gorm:"comment:场景标签"` + IsPublic bool `json:"is_public" gorm:"type:boolean;not null;comment:是否公开"` + Creator string `json:"creator" gorm:"type:varchar(100);not null;comment:创建者"` + CreatedAt string `json:"created_at" gorm:"comment:创建时间"` + LastModifyUser string `json:"last_modify_user" gorm:"type:varchar(100);not null;comment:最后修改者"` + LastModifyUpdatedAt string `json:"last_modify_updated_at" gorm:"comment:最后修改时间"` } type ScriptWithVersion struct { - Name string `json:"name"` - ScriptType string `json:"script_type"` - Description string `json:"description"` - Tags string `json:"tags"` - Content string `json:"content"` - Version string `json:"version"` - VersionDesc string `json:"version_desc"` - IsPublic bool `json:"is_public"` - LastModifyUser string `json:"last_modify_user"` - Creator string `json:"creator"` + Name string `json:"name"` + ScriptType string `json:"script_type"` + Description string `json:"description"` + Tags string `json:"tags"` + Content string `json:"content"` + Params json.RawMessage `json:"params" gorm:"type:json"` // 存 ScriptParam 数组 + Version string `json:"version"` + VersionDesc string `json:"version_desc"` + IsPublic bool `json:"is_public"` + LastModifyUser string `json:"last_modify_user"` + Creator string `json:"creator"` } type ScriptResponse struct { diff --git a/automation/server/internal/module/script_library/model/script_version.go b/automation/server/internal/module/script_library/model/script_version.go index 96f627eecea67eb91376e73340973fd6fcf9a0b8..7a7903f4e8c70c7f70882c06ca9c3014ff52b734 100644 --- a/automation/server/internal/module/script_library/model/script_version.go +++ b/automation/server/internal/module/script_library/model/script_version.go @@ -1,16 +1,29 @@ package model +import ( + "encoding/json" +) + +type ScriptParam struct { //脚本执行参数 + Name string `json:"name"` + Type string `json:"type"` // string/int/bool 等 + Required bool `json:"required"` + Default interface{} `json:"default"` + Description string `json:"description"` +} + type ScriptVersion struct { - ID int `json:"id" gorm:"primaryKey;type:int;not null;comment:'脚本版本ID'"` - ScriptID string `json:"script_id" gorm:"type:varchar(36);not null;uniqueIndex:uniq_script_version;comment:'脚本ID'"` - Content string `json:"content" gorm:"type:text;not null;comment:'脚本内容'"` - Version string `json:"version" gorm:"type:varchar(50);not null;uniqueIndex:uniq_script_version;comment:'脚本版本号'"` - VersionDesc string `json:"version_desc" gorm:"type:varchar(500);uniqueIndex:uniq_script_version;comment:'脚本版本描述'"` - Status bool `json:"status" gorm:"type:boolean;not null;default:false;comment:'脚本版本状态,true表示上线,false表示禁用'"` - Creator string `json:"creator" gorm:"type:varchar(100);not null;comment:'创建者'"` - CreatedAt string `json:"created_at" gorm:"comment:'创建时间'"` - LastModifyUser string `json:"last_modify_user" gorm:"type:varchar(100);not null;comment:'最后修改者'"` - LastModifyUpdatedAt string `json:"last_modify_updated_at" gorm:"comment:'最后修改时间'"` + ID int `json:"id" gorm:"primaryKey;type:int;not null;comment:脚本版本ID"` + ScriptID string `json:"script_id" gorm:"type:varchar(36);not null;uniqueIndex:uniq_script_version;comment:脚本ID"` + Params json.RawMessage `json:"params" gorm:"type:json;comment:脚本执行参数"` // 存 ScriptParam 数组 + Content string `json:"content" gorm:"type:text;not null;comment:脚本内容"` + Version string `json:"version" gorm:"type:varchar(50);not null;uniqueIndex:uniq_script_version;comment:脚本版本号"` + VersionDesc string `json:"version_desc" gorm:"type:varchar(500);uniqueIndex:uniq_script_version;comment:脚本版本描述"` + Status bool `json:"status" gorm:"type:boolean;not null;default:false;comment:脚本版本状态,true表示上线,false表示禁用"` + Creator string `json:"creator" gorm:"type:varchar(100);not null;comment:创建者"` + CreatedAt string `json:"created_at" gorm:"comment:创建时间"` + LastModifyUser string `json:"last_modify_user" gorm:"type:varchar(100);not null;comment:最后修改者"` + LastModifyUpdatedAt string `json:"last_modify_updated_at" gorm:"comment:最后修改时间"` } type ScriptVersionResponse struct { diff --git a/automation/server/internal/module/script_library/service/script.go b/automation/server/internal/module/script_library/service/script.go index fcbb4b4e4596a8eefc9764091b6196b0193361de..6527dbeb0dd000146afeb0c99cf12d38572595ce 100644 --- a/automation/server/internal/module/script_library/service/script.go +++ b/automation/server/internal/module/script_library/service/script.go @@ -38,6 +38,7 @@ func AddScript(s *model.ScriptWithVersion) error { ScriptID: scriptId, // Content: decodedContent, Content: s.Content, + Params: s.Params, Version: s.Version, VersionDesc: s.VersionDesc, Creator: s.Creator, diff --git a/automation/server/internal/module/script_library/service/script_version.go b/automation/server/internal/module/script_library/service/script_version.go index d4370c883e6ddf38ebc3450ebe4eda32ecb5bd21..17658b7b76ae9bd9b757e54ad6434aa9ab787ccf 100644 --- a/automation/server/internal/module/script_library/service/script_version.go +++ b/automation/server/internal/module/script_library/service/script_version.go @@ -15,6 +15,7 @@ func AddScriptVersion(scriptId string, sv *model.ScriptVersion) error { scriptVersion := &model.ScriptVersion{ ScriptID: scriptId, Content: sv.Content, + Params: sv.Params, Version: sv.Version, VersionDesc: sv.VersionDesc, Creator: sv.Creator, @@ -28,6 +29,7 @@ func AddScriptVersion(scriptId string, sv *model.ScriptVersion) error { func UpdateScriptVersion(scriptId string, sv *model.ScriptVersion) error { scriptVersion := &model.ScriptVersion{ Content: sv.Content, + Params: sv.Params, Version: sv.Version, VersionDesc: sv.VersionDesc, LastModifyUser: sv.LastModifyUser,