Skip to content

Commit

Permalink
fix: 优化查询
Browse files Browse the repository at this point in the history
  • Loading branch information
devhaozi committed Jun 24, 2024
1 parent 31bd152 commit fa41b18
Showing 1 changed file with 21 additions and 33 deletions.
54 changes: 21 additions & 33 deletions internal/services/plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,8 @@ func (r *PluginImpl) Install(slug string) error {
}
}

var count int64
if err = facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ?", "%"+plugin.Slug+"%").
Where("status", models.TaskStatusWaiting).
OrWhere("status", models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
if err = r.checkTaskExists(slug); err != nil {
return err
}

var task models.Task
Expand Down Expand Up @@ -172,17 +163,8 @@ func (r *PluginImpl) Uninstall(slug string) error {
}
}

var count int64
if err = facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ?", "%"+plugin.Slug+"%").
Where("status", models.TaskStatusWaiting).
OrWhere("status", models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
if err = r.checkTaskExists(slug); err != nil {
return err
}

var task models.Task
Expand Down Expand Up @@ -231,17 +213,8 @@ func (r *PluginImpl) Update(slug string) error {
}
}

var count int64
if err = facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ?", "%"+plugin.Slug+"%").
Where("status", models.TaskStatusWaiting).
OrWhere("status", models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
if err = r.checkTaskExists(slug); err != nil {
return err
}

var task models.Task
Expand All @@ -256,3 +229,18 @@ func (r *PluginImpl) Update(slug string) error {
_ = io.Remove(task.Log)
return r.task.Process(task.ID)
}

func (r *PluginImpl) checkTaskExists(slug string) error {
var count int64
if err := facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ? AND (status = ? OR status = ?)", "%"+slug+"%", models.TaskStatusWaiting, models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
}

return nil
}

0 comments on commit fa41b18

Please sign in to comment.