diff --git a/backend/internal/workflow/workflow.go b/backend/internal/workflow/workflow.go index a10d3f2..2721f98 100644 --- a/backend/internal/workflow/workflow.go +++ b/backend/internal/workflow/workflow.go @@ -86,6 +86,11 @@ func DelWorkflow(id string) error { if err != nil { return err } + // 清理工作流历史记录 + err = CleanWorkflowHistory() + if err != nil { + return fmt.Errorf("清理工作流历史记录失败: %v", err) + } return nil } diff --git a/backend/internal/workflow/workflow_history.go b/backend/internal/workflow/workflow_history.go index 6a23785..c09d7a5 100644 --- a/backend/internal/workflow/workflow_history.go +++ b/backend/internal/workflow/workflow_history.go @@ -4,6 +4,8 @@ import ( "ALLinSSL/backend/public" "os" "path/filepath" + "strconv" + "strings" "time" ) @@ -114,3 +116,50 @@ func GetExecLog(id string) (string, error) { } return string(log), nil } + +func CleanWorkflowHistory() error { + s, err := GetSqlite() + if err != nil { + return err + } + defer s.Close() + // 获取所有工作流ID + data, err := s.Select() + if err != nil { + return err + } + var workflowIds []string + for _, v := range data { + if workflowId, ok := v["id"].(int64); ok { + workflowIds = append(workflowIds, strconv.FormatInt(workflowId, 10)) + } + } + workflowIdsStr := strings.Join(workflowIds, ",") + s.TableName = "workflow_history" + // 获取无意义的工作流记录id + data, err = s.Where("workflow_id NOT IN ("+workflowIdsStr+")", nil).Select() + if err != nil { + return err + } + // 删除无意义的工作流记录 + _, err = s.Where("workflow_id NOT IN ("+workflowIdsStr+")", nil).Delete() + if err != nil { + return err + } + // 删除工作流执行日志 + logPath := public.GetSettingIgnoreError("workflow_log_path") + if logPath == "" { + logPath = "logs/workflow" + } + for _, v := range data { + if id, ok := v["id"].(string); ok && id != "" { + logFile := filepath.Join(logPath, id+".log") + if _, err := os.Stat(logFile); err == nil { + if err := os.Remove(logFile); err != nil { + return err + } + } + } + } + return nil +} diff --git a/backend/route/route.go b/backend/route/route.go index 3f3e55f..652375a 100644 --- a/backend/route/route.go +++ b/backend/route/route.go @@ -81,16 +81,16 @@ func Register(r *gin.Engine) { } // 1. 提供静态文件服务 - r.StaticFS("/static", http.Dir("./frontend/static")) // 静态资源路径 - r.StaticFS("/auto-deploy/static", http.Dir("./frontend/static")) // 静态资源路径 + r.StaticFS("/static", http.Dir("./build/static")) // 静态资源路径 + r.StaticFS("/auto-deploy/static", http.Dir("./build/static")) // 静态资源路径 // 返回 favicon.ico r.GET("/favicon.ico", func(c *gin.Context) { - c.File("./frontend/favicon.ico") + c.File("./build/favicon.ico") }) // 3. 前端路由托管:匹配所有其他路由并返回 index.html r.NoRoute(func(c *gin.Context) { - c.File("./frontend/index.html") + c.File("./build/index.html") }) // v2 := r.Group("/v2") // {