sitesMonitorControllers.go 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package controllers
  2. import (
  3. "fwh-toolbox-server/domain"
  4. "fwh-toolbox-server/dto"
  5. "fwh-toolbox-server/services"
  6. "time"
  7. "github.com/gofiber/fiber/v2"
  8. "go.uber.org/zap"
  9. )
  10. // 获取站点监控管理名称表
  11. // /sitesMonitor/manage/nameList
  12. func GetSitesMonitorNameList(c *fiber.Ctx) error {
  13. names, err := services.GetSiteMonitorNameList()
  14. if err != nil {
  15. zap.L().Error("查询站点监控管理名称表错误。", zap.String("err", err.Error()))
  16. return Error(c, "Database read failed. (MongoDb)")
  17. }
  18. return Success(c, names)
  19. }
  20. // 获取单个监控配置
  21. // /sitesMonitor/manage/config/:name
  22. func GetSitesMonitorConfig(c *fiber.Ctx) error {
  23. name := c.Params("name")
  24. configList, err := services.GetOneSiteMonitorConfig(name)
  25. if err != nil {
  26. zap.L().Error("查询单个监控配置错误。", zap.String("err", err.Error()))
  27. return Error(c, "Database read failed. (MongoDb)")
  28. } else if len(configList) != 1 {
  29. return Success(c, []domain.SitesMonitorConfig{})
  30. }
  31. return Success(c, configList[0])
  32. }
  33. // 更新一个监控配置
  34. // /sitesMonitor/manage/config/:name
  35. func UpdateSitesMonitorConfig(c *fiber.Ctx) error {
  36. name := c.Params("name")
  37. var body domain.SitesMonitorConfig
  38. if err := c.BodyParser(&body); err != nil {
  39. return Fail(c, "Invalid request body")
  40. }
  41. err := services.UpdateSiteMonitorConfig(name, body)
  42. if err != nil {
  43. zap.L().Error("更新一个监控配置错误。", zap.String("err", err.Error()))
  44. return Error(c, "Database write failed. (MongoDb)")
  45. }
  46. return Success(c, body)
  47. }
  48. // 更新一个监控页面配置
  49. // /sitesMonitor/manage/pageConfig/:name
  50. func UpdateSitesMonitorPageConfig(c *fiber.Ctx) error {
  51. name := c.Params("name")
  52. var body domain.MonitorPageConfig
  53. if err := c.BodyParser(&body); err != nil {
  54. return Fail(c, "Invalid request body")
  55. }
  56. err := services.UpdateSiteMonitorPageConfig(name, body)
  57. if err != nil {
  58. zap.L().Error("更新一个监控页面配置错误。", zap.String("err", err.Error()))
  59. return Error(c, "Database write failed. (MongoDb)")
  60. }
  61. return Success(c, body)
  62. }
  63. // 删除一个监控
  64. // /sitesMonitor/manage/config/:name
  65. func DeleteSitesMonitorConfig(c *fiber.Ctx) error {
  66. name := c.Params("name")
  67. err := services.DeleteSiteMonitorConfig(name)
  68. if err != nil {
  69. zap.L().Error("删除一个监控错误。", zap.String("err", err.Error()))
  70. return Error(c, "Database delete failed. (MongoDb)")
  71. }
  72. return NoContent(c)
  73. }
  74. // 获取所有监控配置
  75. // /sitesMonitor/manage/config
  76. func GetSitesMonitorAllConfig(c *fiber.Ctx) error {
  77. configList, err := services.GetSiteMonitorConfig()
  78. if err != nil {
  79. zap.L().Error("查询所有监控配置错误。", zap.String("err", err.Error()))
  80. return Error(c, "Database read failed. (MongoDb)")
  81. }
  82. return Success(c, configList)
  83. }
  84. // 创建一个监控配置
  85. // /sitesMonitor/manage/config
  86. func CreateSitesMonitorConfig(c *fiber.Ctx) error {
  87. var body domain.SitesMonitorConfig
  88. if err := c.BodyParser(&body); err != nil {
  89. return Fail(c, "Invalid request body")
  90. }
  91. err := services.InsertSiteMonitorConfig(body)
  92. if err != nil {
  93. zap.L().Error("创建一个监控配置错误。", zap.String("err", err.Error()))
  94. return Error(c, "Database write failed. (MongoDb)")
  95. }
  96. return Success(c, body)
  97. }
  98. // 批量获取站点信息表
  99. // /sitesMonitor/site/infoList
  100. func GetSiteInfoList(c *fiber.Ctx) error {
  101. var body dto.SiteBaseInfoPara
  102. if err := c.BodyParser(&body); err != nil {
  103. return Fail(c, "Invalid request body")
  104. }
  105. infoList, err := services.QuerySiteBaseInfoList(body)
  106. if err != nil {
  107. zap.L().Error("查询批量站点信息表错误。", zap.String("err", err.Error()))
  108. return Error(c, "Database write failed. (MongoDb)")
  109. }
  110. return Success(c, infoList)
  111. }
  112. // 获取单个站点信息
  113. // /sitesMonitor/site/:site/info
  114. func GetOneSiteInfo(c *fiber.Ctx) error {
  115. site := c.Params("site")
  116. siteInfo, err := services.QuerySiteBaseInfoList(dto.SiteBaseInfoPara{
  117. SiteList: []string{site},
  118. PageSize: 10,
  119. PageNum: 1,
  120. })
  121. if err != nil {
  122. zap.L().Error("查询单个站点信息错误。", zap.String("err", err.Error()))
  123. return Error(c, "fwh_pro query failed.")
  124. }
  125. return Success(c, siteInfo)
  126. }
  127. // 获取单个站点工作模式信息
  128. // /sitesMonitor/site/:site/modeInfo
  129. func GetOneSiteModeInfo(c *fiber.Ctx) error {
  130. site := c.Params("site")
  131. siteModeInfo, err := services.QuerySiteModeInfo(site)
  132. if err != nil {
  133. zap.L().Error("查询单个站点工作模式信息错误。", zap.String("err", err.Error()))
  134. return Error(c, "fwh_pro query failed.")
  135. }
  136. return Success(c, siteModeInfo)
  137. }
  138. // 获取单个站点功率流
  139. // /sitesMonitor/site/:site/powerFlow/:day
  140. func GetOneSitePowerFlow(c *fiber.Ctx) error {
  141. site := c.Params("site")
  142. day := c.Params("day")
  143. dayTime, err := time.Parse(time.DateOnly, day)
  144. if err != nil {
  145. zap.L().Error("查询单个站点功率流参数错误。(day)", zap.String("err", err.Error()))
  146. return Error(c, "day parament error.")
  147. }
  148. sitePowerFlow, err := services.QuerySitePowerFlow(site, dayTime)
  149. if err != nil {
  150. zap.L().Error("查询单个站点功率流错误。", zap.String("err", err.Error()))
  151. return Error(c, "fwh_pro query failed.")
  152. }
  153. return Success(c, sitePowerFlow)
  154. }
  155. // 获取单个站点告警列表
  156. // /sitesMonitor/site/:site/alarmList
  157. func GetOneSiteAlarmList(c *fiber.Ctx) error {
  158. site := c.Params("site")
  159. siteAlarmList, err := services.QuerySiteAlarmList(site)
  160. if err != nil {
  161. zap.L().Error("查询单个站点告警列表错误。", zap.String("err", err.Error()))
  162. return Error(c, "fwh_pro query failed.")
  163. }
  164. return Success(c, siteAlarmList)
  165. }