@@ -38,8 +38,8 @@ type YamlTaskDAO interface {
3838 ListAllYamlTasks (ctx context.Context , req * model.YamlTaskListReq ) ([]* model.K8sYamlTask , error )
3939 CreateYamlTask (ctx context.Context , task * model.K8sYamlTask ) error
4040 UpdateYamlTask (ctx context.Context , task * model.K8sYamlTask ) error
41- DeleteYamlTask (ctx context.Context , id int ) error
42- GetYamlTaskByID (ctx context.Context , id int ) (* model.K8sYamlTask , error )
41+ DeleteYamlTask (ctx context.Context , id int , clusterID int ) error
42+ GetYamlTaskByID (ctx context.Context , id int , clusterID int ) (* model.K8sYamlTask , error )
4343 GetYamlTaskByTemplateID (ctx context.Context , templateID int ) ([]* model.K8sYamlTask , error )
4444}
4545
@@ -58,36 +58,25 @@ func NewYamlTaskDAO(db *gorm.DB, logger *zap.Logger) YamlTaskDAO {
5858// ListAllYamlTasks 查询所有 YAML 任务
5959func (d * yamlTaskDAO ) ListAllYamlTasks (ctx context.Context , req * model.YamlTaskListReq ) ([]* model.K8sYamlTask , error ) {
6060 var tasks []* model.K8sYamlTask
61-
6261 query := d .db .WithContext (ctx )
6362
64- // 根据集群ID过滤
6563 if req .ClusterID > 0 {
6664 query = query .Where ("cluster_id = ?" , req .ClusterID )
6765 }
68-
69- // 根据模板ID过滤
7066 if req .TemplateID > 0 {
7167 query = query .Where ("template_id = ?" , req .TemplateID )
7268 }
73-
74- // 根据状态过滤
7569 if req .Status != "" {
7670 query = query .Where ("status = ?" , req .Status )
7771 }
78-
79- // 根据任务名称过滤(模糊匹配)
8072 if req .Name != "" {
8173 query = query .Where ("name LIKE ?" , "%" + req .Name + "%" )
8274 }
83-
84- // 分页处理
8575 if req .Size > 0 {
8676 offset := (req .Page - 1 ) * req .Size
8777 query = query .Offset (offset ).Limit (req .Size )
8878 }
8979
90- // 按创建时间倒序排列
9180 query = query .Order ("created_at DESC" )
9281
9382 if err := query .Find (& tasks ).Error ; err != nil {
@@ -103,48 +92,56 @@ func (d *yamlTaskDAO) CreateYamlTask(ctx context.Context, task *model.K8sYamlTas
10392 d .logger .Error ("CreateYamlTask 创建Yaml任务失败" , zap .Error (err ), zap .Any ("task" , task ))
10493 return err
10594 }
106-
10795 return nil
10896}
10997
11098func (d * yamlTaskDAO ) UpdateYamlTask (ctx context.Context , task * model.K8sYamlTask ) error {
111- if err := d . db . WithContext ( ctx ). Model ( & model. K8sYamlTask {}). Where ( "id = ?" , task .ID ). Updates ( task ). Error ; err != nil {
112- d .logger .Error ("UpdateYamlTask 更新Yaml任务失败 " , zap .Int ( "taskID " , task . ID ), zap . Error ( err ))
113- return err
99+ if task .ID == 0 {
100+ d .logger .Error ("UpdateYamlTask ID 不能为空 " , zap .Any ( "task " , task ))
101+ return fmt . Errorf ( "invalid task ID" )
114102 }
115103
104+ if err := d .db .WithContext (ctx ).Model (& model.K8sYamlTask {}).Where ("id = ? AND cluster_id = ?" , task .ID , task .ClusterID ).Updates (task ).Error ; err != nil {
105+ d .logger .Error ("UpdateYamlTask 更新Yaml任务失败" , zap .Int ("taskID" , task .ID ), zap .Int ("clusterID" , task .ClusterID ), zap .Error (err ))
106+ return err
107+ }
116108 return nil
117109}
118110
119- func (d * yamlTaskDAO ) DeleteYamlTask (ctx context.Context , id int ) error {
120- if err := d . db . WithContext ( ctx ). Where ( " id = ?" , id ). Delete ( & model. K8sYamlTask {}). Error ; err != nil {
121- d .logger .Error ("DeleteYamlTask 删除Yaml任务失败 " , zap .Int ("taskID " , id ), zap . Error ( err ))
122- return err
111+ func (d * yamlTaskDAO ) DeleteYamlTask (ctx context.Context , id int , clusterID int ) error {
112+ if id == 0 {
113+ d .logger .Error ("DeleteYamlTask ID 不能为空 " , zap .Int ("id " , id ))
114+ return fmt . Errorf ( "invalid task ID" )
123115 }
124116
117+ if err := d .db .WithContext (ctx ).Where ("id = ? AND cluster_id = ?" , id , clusterID ).Delete (& model.K8sYamlTask {}).Error ; err != nil {
118+ d .logger .Error ("DeleteYamlTask 删除Yaml任务失败" , zap .Int ("taskID" , id ), zap .Int ("clusterID" , clusterID ), zap .Error (err ))
119+ return err
120+ }
125121 return nil
126122}
127123
128- func (d * yamlTaskDAO ) GetYamlTaskByID (ctx context.Context , id int ) (* model.K8sYamlTask , error ) {
129- var task model.K8sYamlTask
130-
131- if err := d .db .WithContext (ctx ).Where ("id = ?" , id ).First (& task ).Error ; err != nil {
132- d .logger .Error ("GetYamlTaskByID 查询Yaml任务失败" , zap .Int ("taskID" , id ), zap .Error (err ))
133- return nil , fmt .Errorf ("YAML 任务 ID %d 未找到: %w" , id , err )
124+ func (d * yamlTaskDAO ) GetYamlTaskByID (ctx context.Context , id int , clusterID int ) (* model.K8sYamlTask , error ) {
125+ if id == 0 {
126+ d .logger .Error ("GetYamlTaskByID ID 不能为空" , zap .Int ("id" , id ))
127+ return nil , fmt .Errorf ("invalid task ID" )
134128 }
135129
130+ var task model.K8sYamlTask
131+ if err := d .db .WithContext (ctx ).Where ("id = ? AND cluster_id = ?" , id , clusterID ).First (& task ).Error ; err != nil {
132+ d .logger .Error ("GetYamlTaskByID 查询Yaml任务失败" , zap .Int ("taskID" , id ), zap .Int ("clusterID" , clusterID ), zap .Error (err ))
133+ return nil , fmt .Errorf ("YAML 任务 ID %d (集群 %d) 未找到: %w" , id , clusterID , err )
134+ }
136135 return & task , nil
137136}
138137
139138func (d * yamlTaskDAO ) GetYamlTaskByTemplateID (ctx context.Context , templateID int ) ([]* model.K8sYamlTask , error ) {
140139 var tasks []* model.K8sYamlTask
141-
142140 if err := d .db .WithContext (ctx ).Where ("template_id = ?" , templateID ).Find (& tasks ).Error ; err != nil {
143141 d .logger .Error ("GetYamlTaskByTemplateID 查询Yaml任务失败" , zap .Int ("templateID" , templateID ), zap .Error (err ))
144142 return nil , err
145143 }
146144
147- // 若未找到任务,记录信息日志
148145 if len (tasks ) == 0 {
149146 d .logger .Info ("GetYamlTaskByTemplateID 未找到相关Yaml任务" , zap .Int ("templateID" , templateID ))
150147 }
0 commit comments