From 4432a12c7a738396fe087f71e3cd357034db4c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Mon, 24 Jun 2024 23:28:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=B4=E6=97=B6=E6=80=A7=E6=89=8B?= =?UTF-8?q?=E6=AE=B5=E9=98=BB=E6=AD=A2=E4=BB=BB=E5=8A=A1=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/services/plugin.go | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/internal/services/plugin.go b/internal/services/plugin.go index ad4c0cfc..1e39e5c1 100644 --- a/internal/services/plugin.go +++ b/internal/services/plugin.go @@ -113,6 +113,19 @@ 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("任务已添加,请勿重复添加") + } + var task models.Task task.Name = "安装插件 " + plugin.Name task.Status = models.TaskStatusWaiting @@ -159,6 +172,19 @@ 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("任务已添加,请勿重复添加") + } + var task models.Task task.Name = "卸载插件 " + plugin.Name task.Status = models.TaskStatusWaiting @@ -205,6 +231,19 @@ 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("任务已添加,请勿重复添加") + } + var task models.Task task.Name = "更新插件 " + plugin.Name task.Status = models.TaskStatusWaiting