package controller import ( "net/http" "ezops/model" "ezops/pkg/systask" "github.com/gin-gonic/gin" "gorm.io/gorm" ) // SystemTaskHandler 内置系统任务查询 // Logan.Li type SystemTaskHandler struct { db *gorm.DB dbDriver string alertEngine *AlertEngine } func NewSystemTaskHandler(db *gorm.DB, driver string, alertEngine *AlertEngine) *SystemTaskHandler { return &SystemTaskHandler{db: db, dbDriver: driver, alertEngine: alertEngine} } // ListSystemTasks 获取系统内置任务列表 // Logan.Li // GET /api/v1/system-tasks func (h *SystemTaskHandler) ListSystemTasks(c *gin.Context) { extras := map[string]any{} if h.alertEngine != nil { extras["alert_engine"] = h.alertEngine.GetEngineStatus() } list := systask.List(h.db, extras) c.JSON(http.StatusOK, model.Response{ Code: 200, Message: "success", Data: model.ListResponse{List: list, Total: int64(len(list))}, }) } // RunSystemTask 手动执行系统任务 // Logan.Li // POST /api/v1/system-tasks/:code/run func (h *SystemTaskHandler) RunSystemTask(c *gin.Context) { code := c.Param("code") item, err := systask.RunManual(h.db, h.dbDriver, code) if err != nil { c.JSON(http.StatusBadRequest, model.Response{Code: 400, Message: err.Error()}) return } c.JSON(http.StatusOK, model.Response{ Code: 200, Message: "执行完成", Data: item, }) }