From 415a32a883428d3465bbaedfdef7b5448fa9e81b Mon Sep 17 00:00:00 2001 From: zhanghan Date: Fri, 10 Oct 2025 13:33:26 +0800 Subject: [PATCH] Add script usage type field, only supports single scene labels --- .../module/script_library/dao/script.go | 14 ++++----- .../script_library/dao/script_version.go | 30 +++++++++---------- .../module/script_library/model/script.go | 21 ++----------- .../script_library/model/script_version.go | 6 ++-- .../module/script_library/service/script.go | 7 +++-- 5 files changed, 31 insertions(+), 47 deletions(-) diff --git a/automation/server/internal/module/script_library/dao/script.go b/automation/server/internal/module/script_library/dao/script.go index b517f4f4..d0df264a 100644 --- a/automation/server/internal/module/script_library/dao/script.go +++ b/automation/server/internal/module/script_library/dao/script.go @@ -1,8 +1,6 @@ package dao import ( - "strings" - "gorm.io/gorm" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/global" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/script_library/model" @@ -27,7 +25,7 @@ func GetScripts(query *response.PagedQuery) ([]*model.ScriptResponse, int, error // 查询数据 var scripts []*model.Script q := global.App.MySQL.Model(&model.Script{}).Limit(query.PageSize).Offset((query.CurrentPage - 1) * query.PageSize) - if err := q.Order("created_at desc").Find(&scripts).Error; err != nil { + if err := q.Order("modify_time desc").Find(&scripts).Error; err != nil { return nil, 0, err } @@ -38,19 +36,19 @@ func GetScripts(query *response.PagedQuery) ([]*model.ScriptResponse, int, error ID: s.ID, Name: s.Name, ScriptType: s.ScriptType, + UsageType: s.UsageType, Description: s.Description, ModifyUser: s.ModifyUser, ModifyTime: s.ModifyTime, } - tagNames := strings.Split(s.Tags, ",") - var tags []model.Tag - if len(tagNames) > 0 { - if err := global.App.MySQL.Model(&model.Tag{}).Where("name IN ?", tagNames).Find(&tags).Error; err != nil { + var tag model.Tag + if len(s.Tag) > 0 { + if err := global.App.MySQL.Model(&model.Tag{}).Where("name = ?", s.Tag).Find(&tag).Error; err != nil { return nil, 0, err } } - sr.Tags = tags + sr.Tag = tag scriptResponses = append(scriptResponses, sr) } 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 2d8a9bd4..85051d19 100644 --- a/automation/server/internal/module/script_library/dao/script_version.go +++ b/automation/server/internal/module/script_library/dao/script_version.go @@ -35,18 +35,16 @@ SELECT WHERE sv.script_id = s.id ) AS CHAR) AS versions, CAST(( - SELECT COALESCE(JSON_ARRAYAGG( - JSON_OBJECT( - 'id', t.id, - 'name', t.name, - 'description', t.description, - 'modify_user', t.modify_user, - 'modify_time', t.modify_time - ) - ), JSON_ARRAY()) + SELECT COALESCE(JSON_OBJECT( + 'id', t.id, + 'name', t.name, + 'description', t.description, + 'modify_user', t.modify_user, + 'modify_time', t.modify_time + ), JSON_OBJECT()) FROM tag t - WHERE FIND_IN_SET(t.name, s.tags) - ) AS CHAR) AS tags + WHERE FIND_IN_SET(t.name, s.tag) + ) AS CHAR) AS tag FROM script s WHERE s.id = ? ` @@ -55,10 +53,10 @@ WHERE s.id = ? return &model.ScriptVersionResponse{}, fmt.Errorf("查询脚本版本失败: %w", err) } - var tags []model.Tag - if row.Tags == "" { - tags = []model.Tag{} - } else if err := json.Unmarshal([]byte(row.Tags), &tags); err != nil { + var tag model.Tag + if row.Tag == "" { + tag = model.Tag{} + } else if err := json.Unmarshal([]byte(row.Tag), &tag); err != nil { return &model.ScriptVersionResponse{}, fmt.Errorf("解析标签失败: %w", err) } @@ -74,7 +72,7 @@ WHERE s.id = ? Name: row.Name, ScriptType: row.ScriptType, Description: row.Description, - Tags: tags, + Tag: tag, ScriptVersions: scriptVersions, } diff --git a/automation/server/internal/module/script_library/model/script.go b/automation/server/internal/module/script_library/model/script.go index 3a14f137..94499069 100644 --- a/automation/server/internal/module/script_library/model/script.go +++ b/automation/server/internal/module/script_library/model/script.go @@ -1,38 +1,23 @@ 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:场景标签"` - UsageType string `json:"usage_type" gorm:"type:varchar(50);comment:脚本业务类型"` + Tag string `json:"tag" gorm:"comment:场景标签"` + UsageType string `json:"usage_type" gorm:"type:varchar(50);not null;uniqueIndex:uniq_script_name;comment:脚本业务类型"` ModifyUser string `json:"modify_user" gorm:"type:varchar(100);not null;comment:最后修改者"` ModifyTime string `json:"modify_time" gorm:"comment:最后修改时间"` } -type ScriptWithVersion struct { - Name string `json:"name"` - ScriptType string `json:"script_type"` - Description string `json:"description"` - Tags string `json:"tags"` - UsageType string `json:"usage_type"` - Content string `json:"content"` - Params json.RawMessage `json:"params" gorm:"type:json"` // 存 ScriptParam 数组 - Version string `json:"version"` - VersionDesc string `json:"version_desc"` - ModifyUser string `json:"modify_user"` -} - type ScriptResponse struct { ID string `json:"id"` Name string `json:"name"` ScriptType string `json:"script_type"` UsageType string `json:"usage_type"` Description string `json:"description"` - Tags []Tag `json:"tags"` + Tag Tag `json:"tag"` ModifyUser string `json:"modify_user"` ModifyTime string `json:"modify_time"` } 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 c27997ee..d3e4294b 100644 --- a/automation/server/internal/module/script_library/model/script_version.go +++ b/automation/server/internal/module/script_library/model/script_version.go @@ -29,7 +29,7 @@ type ScriptVersionResponse struct { Name string `json:"name"` ScriptType string `json:"script_type"` Description string `json:"description"` - Tags []Tag `json:"tags"` + Tag Tag `json:"tag"` ScriptVersions []ScriptVersion `json:"script_versions"` } @@ -43,6 +43,6 @@ type RawScriptVersion struct { // JSON Script versions Versions string `json:"versions"` - // JSON tags - Tags string `json:"tags"` + // JSON tag + Tag string `json:"tag"` } diff --git a/automation/server/internal/module/script_library/service/script.go b/automation/server/internal/module/script_library/service/script.go index 9ff3b99a..63bcb6cd 100644 --- a/automation/server/internal/module/script_library/service/script.go +++ b/automation/server/internal/module/script_library/service/script.go @@ -26,7 +26,8 @@ func AddScript(s *model.AddScriptDTO) error { Name: s.Script.Name, ScriptType: s.Script.ScriptType, Description: s.Script.Description, - Tags: s.Script.Tags, + UsageType: s.Script.UsageType, + Tag: s.Script.Tag, ModifyUser: s.Script.ModifyUser, ModifyTime: time.Now().Format("2006-01-02 15:04:05"), } @@ -51,8 +52,10 @@ func GetScripts(query *response.PagedQuery) ([]*model.ScriptResponse, int, error func UpdateScript(s *model.Script) error { script := &model.Script{ + Name: s.Name, Description: s.Description, - Tags: s.Tags, + Tag: s.Tag, + UsageType: s.UsageType, ModifyUser: s.ModifyUser, ModifyTime: time.Now().Format("2006-01-02 15:04:05"), } -- Gitee