package controllers import ( "fwh-toolbox-server/domain" "fwh-toolbox-server/dto" "fwh-toolbox-server/services" "time" "github.com/gofiber/fiber/v2" "go.uber.org/zap" ) // 获取站点监控管理名称表 // /sitesMonitor/manage/nameList func GetSitesMonitorNameList(c *fiber.Ctx) error { names, err := services.GetSiteMonitorNameList() if err != nil { zap.L().Error("查询站点监控管理名称表错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", names) } // 获取单个监控配置 // /sitesMonitor/manage/config/:name func GetSitesMonitorConfig(c *fiber.Ctx) error { name := c.Params("name") configList, err := services.GetOneSiteMonitorConfig(name) if err != nil { zap.L().Error("查询单个监控配置错误。", zap.String("err", err.Error())) 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]) } // 更新一个监控配置 // /sitesMonitor/manage/config/:name func UpdateSitesMonitorConfig(c *fiber.Ctx) error { name := c.Params("name") var body domain.SitesMonitorConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } err := services.UpdateSiteMonitorConfig(name, body) if err != nil { zap.L().Error("更新一个监控配置错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) } // 更新一个监控页面配置 // /sitesMonitor/manage/pageConfig/:name func UpdateSitesMonitorPageConfig(c *fiber.Ctx) error { name := c.Params("name") var body domain.MonitorPageConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } err := services.UpdateSiteMonitorPageConfig(name, body) if err != nil { zap.L().Error("更新一个监控页面配置错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) } // 删除一个监控 // /sitesMonitor/manage/config/:name func DeleteSitesMonitorConfig(c *fiber.Ctx) error { name := c.Params("name") err := services.DeleteSiteMonitorConfig(name) if err != nil { zap.L().Error("删除一个监控错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)") } return JSONResponseNoData(c, 0, "success") } // 获取所有监控配置 // /sitesMonitor/manage/config func GetSitesMonitorAllConfig(c *fiber.Ctx) error { configList, err := services.GetSiteMonitorConfig() if err != nil { zap.L().Error("查询所有监控配置错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", configList) } // 创建一个监控配置 // /sitesMonitor/manage/config func CreateSitesMonitorConfig(c *fiber.Ctx) error { var body domain.SitesMonitorConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } err := services.InsertSiteMonitorConfig(body) if err != nil { zap.L().Error("创建一个监控配置错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) } // 批量获取站点信息表 // /sitesMonitor/site/infoList func GetSiteInfoList(c *fiber.Ctx) error { var body dto.SiteBaseInfoPara if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } infoList, err := services.QuerySiteBaseInfoList(body) if err != nil { zap.L().Error("查询批量站点信息表错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", infoList) } // 获取单个站点信息 // /sitesMonitor/site/:site/info func GetOneSiteInfo(c *fiber.Ctx) error { site := c.Params("site") siteInfo, err := services.QuerySiteBaseInfoList(dto.SiteBaseInfoPara{ SiteList: []string{site}, PageSize: 10, PageNum: 1, }) if err != nil { zap.L().Error("查询单个站点信息错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", siteInfo) } // 获取单个站点工作模式信息 // /sitesMonitor/site/:site/modeInfo func GetOneSiteModeInfo(c *fiber.Ctx) error { site := c.Params("site") siteModeInfo, err := services.QuerySiteModeInfo(site) if err != nil { zap.L().Error("查询单个站点工作模式信息错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", siteModeInfo) } // 获取单个站点功率流 // /sitesMonitor/site/:site/powerFlow/:day func GetOneSitePowerFlow(c *fiber.Ctx) error { site := c.Params("site") day := c.Params("day") dayTime, err := time.Parse(time.DateOnly, day) if err != nil { zap.L().Error("查询单个站点功率流参数错误。(day)", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "day parament error.") } sitePowerFlow, err := services.QuerySitePowerFlow(site, dayTime) if err != nil { zap.L().Error("查询单个站点功率流错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", sitePowerFlow) } // 获取单个站点告警列表 // /sitesMonitor/site/:site/alarmList func GetOneSiteAlarmList(c *fiber.Ctx) error { site := c.Params("site") siteAlarmList, err := services.QuerySiteAlarmList(site) if err != nil { zap.L().Error("查询单个站点告警列表错误。", zap.String("err", err.Error())) return JSONResponseNoData(c, 500, "fwh_pro query failed.") } return JSONResponse(c, 0, "success", siteAlarmList) }