/* * Sites Monitor API List * /sitesMonitor/manage/nameList - GET * /sitesMonitor/manage/config/{name} - GET & POST & DELETE * /sitesMonitor/manage/pageConfig/{name} - POST * /sitesMonitor/manage/config - GET & POST * /sitesMonitor/site/infoList - POST 批量获取站点信息表 * /sitesMonitor/site/{site}/info - GET 获取单个站点信息 * /sitesMonitor/site/{site}/modeInfo - GET 获取站点工作模式信息 * /sitesMonitor/site/{site}/powerFlow/{day} - GET 获取单个站点功率流 */ package routes import ( "fmt" "fwh-toolbox-server/controllers" "time" "github.com/gofiber/fiber/v2" ) // 在sitesMonitorControllers.go中定义 // type SitesMonitorConfig struct { // Name string `json:"name"` // Description string `json:"description"` // SiteList []string `json:"siteList"` // } func SitesMonitorSetup(api fiber.Router) { // 获取站点监控管理名称表 api.Get("/sitesMonitor/manage/nameList", func(c *fiber.Ctx) error { names, err := controllers.GetSiteMonitorNameList() if err != nil { return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", names) }) // 获取单个监控配置 api.Get("/sitesMonitor/manage/config/:name", func(c *fiber.Ctx) error { name := c.Params("name") fmt.Println(name) configList, err := controllers.GetOneSiteMonitorConfig(name) if err != nil { return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } else if len(configList) != 1 { return JSONResponseNoData(c, 204, "User not found") } return JSONResponse(c, 0, "success", configList[0]) }) // 更新一个监控配置 api.Post("/sitesMonitor/manage/config/:name", func(c *fiber.Ctx) error { name := c.Params("name") var body controllers.SitesMonitorConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } fmt.Println(body.Name, body.Description, body.SiteList) err := controllers.UpdateSiteMonitorConfig(name, body) if err != nil { return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) }) // 更新一个监控页面配置 api.Post("/sitesMonitor/manage/pageConfig/:name", func(c *fiber.Ctx) error { name := c.Params("name") var body controllers.MonitorPageConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } err := controllers.UpdateSiteMonitorPageConfig(name, body) if err != nil { return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) }) // 删除一个监控 api.Delete("/sitesMonitor/manage/config/:name", func(c *fiber.Ctx) error { name := c.Params("name") fmt.Println(name) err := controllers.DeleteSiteMonitorConfig(name) if err != nil { return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)") } return JSONResponseNoData(c, 0, "success") }) // 获取所有监控配置 api.Get("/sitesMonitor/manage/config", func(c *fiber.Ctx) error { configList, err := controllers.GetSiteMonitorConfig() if err != nil { return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", configList) }) // 创建一个监控配置 api.Post("/sitesMonitor/manage/config", func(c *fiber.Ctx) error { var body controllers.SitesMonitorConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } fmt.Println(body.Name, body.Description, body.SiteList) err := controllers.InsertSiteMonitorConfig(body) if err != nil { return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) }) // 批量获取站点信息表 api.Post("/sitesMonitor/site/infoList", func(c *fiber.Ctx) error { var body controllers.SiteInfoPara if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } infoList, err := controllers.QuerySiteInfoList(body) if err != nil { fmt.Println("发生错误:", err) return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", infoList) }) // 获取单个站点信息 api.Get("/sitesMonitor/site/:site/info", func(c *fiber.Ctx) error { site := c.Params("site") siteInfo, err := controllers.QuerySiteInfoList(controllers.SiteInfoPara{ SiteList: []string{site}, PageSize: 10, PageNum: 1, }) if err != nil { fmt.Println("发生错误:", err) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", siteInfo) }) // 获取单个站点工作模式信息 api.Get("/sitesMonitor/site/:site/modeInfo", func(c *fiber.Ctx) error { site := c.Params("site") siteModeInfo, err := controllers.QuerySiteModeInfo(site) if err != nil { fmt.Println("发生错误:", err) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", siteModeInfo) }) // 获取单个站点功率流 api.Get("/sitesMonitor/site/:site/powerFlow/:day", func(c *fiber.Ctx) error { site := c.Params("site") day := c.Params("day") dayTime, err := time.Parse(time.DateOnly, day) if err != nil { fmt.Println("发生错误:", err) return JSONResponseNoData(c, 500, "day parament error.") } sitePowerFlow, err := controllers.QuerySitePowerFlow(site, dayTime) if err != nil { fmt.Println("发生错误:", err) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", sitePowerFlow) }) }