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 Error(c, "Database read failed. (MongoDb)") } return Success(c, 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 Error(c, "Database read failed. (MongoDb)") } else if len(configList) != 1 { return Success(c, []domain.SitesMonitorConfig{}) } return Success(c, 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 Fail(c, "Invalid request body") } err := services.UpdateSiteMonitorConfig(name, body) if err != nil { zap.L().Error("更新一个监控配置错误。", zap.String("err", err.Error())) return Error(c, "Database write failed. (MongoDb)") } return Success(c, 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 Fail(c, "Invalid request body") } err := services.UpdateSiteMonitorPageConfig(name, body) if err != nil { zap.L().Error("更新一个监控页面配置错误。", zap.String("err", err.Error())) return Error(c, "Database write failed. (MongoDb)") } return Success(c, 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 Error(c, "Database delete failed. (MongoDb)") } return NoContent(c) } // 获取所有监控配置 // /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 Error(c, "Database read failed. (MongoDb)") } return Success(c, configList) } // 创建一个监控配置 // /sitesMonitor/manage/config func CreateSitesMonitorConfig(c *fiber.Ctx) error { var body domain.SitesMonitorConfig if err := c.BodyParser(&body); err != nil { return Fail(c, "Invalid request body") } err := services.InsertSiteMonitorConfig(body) if err != nil { zap.L().Error("创建一个监控配置错误。", zap.String("err", err.Error())) return Error(c, "Database write failed. (MongoDb)") } return Success(c, body) } // 批量获取站点信息表 // /sitesMonitor/site/infoList func GetSiteInfoList(c *fiber.Ctx) error { var body dto.SiteBaseInfoPara if err := c.BodyParser(&body); err != nil { return Fail(c, "Invalid request body") } infoList, err := services.QuerySiteBaseInfoList(body) if err != nil { zap.L().Error("查询批量站点信息表错误。", zap.String("err", err.Error())) return Error(c, "Database write failed. (MongoDb)") } return Success(c, 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 Error(c, "fwh_pro query failed.") } return Success(c, 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 Error(c, "fwh_pro query failed.") } return Success(c, 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 Error(c, "day parament error.") } sitePowerFlow, err := services.QuerySitePowerFlow(site, dayTime) if err != nil { zap.L().Error("查询单个站点功率流错误。", zap.String("err", err.Error())) return Error(c, "fwh_pro query failed.") } return Success(c, 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 Error(c, "fwh_pro query failed.") } return Success(c, siteAlarmList) }