diff --git a/app/http/controllers/info_controller.go b/app/http/controllers/info_controller.go index 6b967fb2..043715a1 100644 --- a/app/http/controllers/info_controller.go +++ b/app/http/controllers/info_controller.go @@ -166,7 +166,8 @@ func (c *InfoController) Update(ctx http.Context) { proxy := ctx.Request().InputBool("proxy") err := tools.UpdatePanel(proxy) if err != nil { - Error(ctx, http.StatusInternalServerError, "更新失败") + facades.Log().Error("[面板][InfoController] 更新面板失败 ", err.Error()) + Error(ctx, http.StatusInternalServerError, "更新失败: "+err.Error()) return } diff --git a/pkg/tools/tools.go b/pkg/tools/tools.go index 7aba572a..4e77e5b1 100644 --- a/pkg/tools/tools.go +++ b/pkg/tools/tools.go @@ -10,12 +10,14 @@ import ( "time" "github.com/gookit/color" + "github.com/goravel/framework/facades" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/disk" "github.com/shirou/gopsutil/host" "github.com/shirou/gopsutil/load" "github.com/shirou/gopsutil/mem" "github.com/shirou/gopsutil/net" + "panel/app/models" ) // MonitoringInfo 监控信息 @@ -117,6 +119,12 @@ func GetLatestPanelVersion() (PanelInfo, error) { // UpdatePanel 更新面板 func UpdatePanel(proxy bool) error { + var task models.Task + err := facades.Orm().Query().Where("status", models.TaskStatusRunning).OrWhere("status", models.TaskStatusWaiting).FirstOrFail(&task) + if err == nil { + return errors.New("面板有任务正在执行,禁止更新") + } + panelInfo, err := GetLatestPanelVersion() if err != nil { return err