sitesMonitorControllers.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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 JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  17. }
  18. return JSONResponse(c, 0, "success", 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 JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  28. } else if len(configList) != 1 {
  29. return JSONResponseNoData(c, 204, "User not found")
  30. }
  31. return JSONResponse(c, 0, "success", 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 c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  40. "code": 400,
  41. "message": "Invalid request body",
  42. })
  43. }
  44. err := services.UpdateSiteMonitorConfig(name, body)
  45. if err != nil {
  46. zap.L().Error("更新一个监控配置错误。", zap.String("err", err.Error()))
  47. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  48. }
  49. return JSONResponse(c, 0, "success", body)
  50. }
  51. // 更新一个监控页面配置
  52. // /sitesMonitor/manage/pageConfig/:name
  53. func UpdateSitesMonitorPageConfig(c *fiber.Ctx) error {
  54. name := c.Params("name")
  55. var body domain.MonitorPageConfig
  56. if err := c.BodyParser(&body); err != nil {
  57. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  58. "code": 400,
  59. "message": "Invalid request body",
  60. })
  61. }
  62. err := services.UpdateSiteMonitorPageConfig(name, body)
  63. if err != nil {
  64. zap.L().Error("更新一个监控页面配置错误。", zap.String("err", err.Error()))
  65. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  66. }
  67. return JSONResponse(c, 0, "success", body)
  68. }
  69. // 删除一个监控
  70. // /sitesMonitor/manage/config/:name
  71. func DeleteSitesMonitorConfig(c *fiber.Ctx) error {
  72. name := c.Params("name")
  73. err := services.DeleteSiteMonitorConfig(name)
  74. if err != nil {
  75. zap.L().Error("删除一个监控错误。", zap.String("err", err.Error()))
  76. return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)")
  77. }
  78. return JSONResponseNoData(c, 0, "success")
  79. }
  80. // 获取所有监控配置
  81. // /sitesMonitor/manage/config
  82. func GetSitesMonitorAllConfig(c *fiber.Ctx) error {
  83. configList, err := services.GetSiteMonitorConfig()
  84. if err != nil {
  85. zap.L().Error("查询所有监控配置错误。", zap.String("err", err.Error()))
  86. return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  87. }
  88. return JSONResponse(c, 0, "success", configList)
  89. }
  90. // 创建一个监控配置
  91. // /sitesMonitor/manage/config
  92. func CreateSitesMonitorConfig(c *fiber.Ctx) error {
  93. var body domain.SitesMonitorConfig
  94. if err := c.BodyParser(&body); err != nil {
  95. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  96. "code": 400,
  97. "message": "Invalid request body",
  98. })
  99. }
  100. err := services.InsertSiteMonitorConfig(body)
  101. if err != nil {
  102. zap.L().Error("创建一个监控配置错误。", zap.String("err", err.Error()))
  103. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  104. }
  105. return JSONResponse(c, 0, "success", body)
  106. }
  107. // 批量获取站点信息表
  108. // /sitesMonitor/site/infoList
  109. func GetSiteInfoList(c *fiber.Ctx) error {
  110. var body dto.SiteBaseInfoPara
  111. if err := c.BodyParser(&body); err != nil {
  112. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  113. "code": 400,
  114. "message": "Invalid request body",
  115. })
  116. }
  117. infoList, err := services.QuerySiteBaseInfoList(body)
  118. if err != nil {
  119. zap.L().Error("查询批量站点信息表错误。", zap.String("err", err.Error()))
  120. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  121. }
  122. return JSONResponse(c, 0, "success", infoList)
  123. }
  124. // 获取单个站点信息
  125. // /sitesMonitor/site/:site/info
  126. func GetOneSiteInfo(c *fiber.Ctx) error {
  127. site := c.Params("site")
  128. siteInfo, err := services.QuerySiteBaseInfoList(dto.SiteBaseInfoPara{
  129. SiteList: []string{site},
  130. PageSize: 10,
  131. PageNum: 1,
  132. })
  133. if err != nil {
  134. zap.L().Error("查询单个站点信息错误。", zap.String("err", err.Error()))
  135. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  136. }
  137. return JSONResponse(c, 0, "success", siteInfo)
  138. }
  139. // 获取单个站点工作模式信息
  140. // /sitesMonitor/site/:site/modeInfo
  141. func GetOneSiteModeInfo(c *fiber.Ctx) error {
  142. site := c.Params("site")
  143. siteModeInfo, err := services.QuerySiteModeInfo(site)
  144. if err != nil {
  145. zap.L().Error("查询单个站点工作模式信息错误。", zap.String("err", err.Error()))
  146. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  147. }
  148. return JSONResponse(c, 0, "success", siteModeInfo)
  149. }
  150. // 获取单个站点功率流
  151. // /sitesMonitor/site/:site/powerFlow/:day
  152. func GetOneSitePowerFlow(c *fiber.Ctx) error {
  153. site := c.Params("site")
  154. day := c.Params("day")
  155. dayTime, err := time.Parse(time.DateOnly, day)
  156. if err != nil {
  157. zap.L().Error("查询单个站点功率流参数错误。(day)", zap.String("err", err.Error()))
  158. return JSONResponseNoData(c, 500, "day parament error.")
  159. }
  160. sitePowerFlow, err := services.QuerySitePowerFlow(site, dayTime)
  161. if err != nil {
  162. zap.L().Error("查询单个站点功率流错误。", zap.String("err", err.Error()))
  163. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  164. }
  165. return JSONResponse(c, 0, "success", sitePowerFlow)
  166. }
  167. // 获取单个站点告警列表
  168. // /sitesMonitor/site/:site/alarmList
  169. func GetOneSiteAlarmList(c *fiber.Ctx) error {
  170. site := c.Params("site")
  171. siteAlarmList, err := services.QuerySiteAlarmList(site)
  172. if err != nil {
  173. zap.L().Error("查询单个站点告警列表错误。", zap.String("err", err.Error()))
  174. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  175. }
  176. return JSONResponse(c, 0, "success", siteAlarmList)
  177. }