sitesMonitorRoutes.go 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. /*
  2. * Sites Monitor API List
  3. * /sitesMonitor/manage/nameList - GET
  4. * /sitesMonitor/manage/config/{name} - GET & POST & DELETE
  5. * /sitesMonitor/manage/pageConfig/{name} - POST
  6. * /sitesMonitor/manage/config - GET & POST
  7. * /sitesMonitor/site/infoList - POST 批量获取站点信息表
  8. * /sitesMonitor/site/{site}/info - GET 获取单个站点信息
  9. * /sitesMonitor/site/{site}/modeInfo - GET 获取站点工作模式信息
  10. * /sitesMonitor/site/{site}/powerFlow/{day} - GET 获取单个站点功率流
  11. * /sitesMonitor/site/{site}/alarmList - GET 获取单个站点告警列表
  12. */
  13. package routes
  14. import (
  15. "fwh-toolbox-server/controllers"
  16. "time"
  17. "github.com/gofiber/fiber/v2"
  18. "go.uber.org/zap"
  19. )
  20. // 在sitesMonitorControllers.go中定义
  21. // type SitesMonitorConfig struct {
  22. // Name string `json:"name"`
  23. // Description string `json:"description"`
  24. // SiteList []string `json:"siteList"`
  25. // }
  26. func SitesMonitorSetup(api fiber.Router) {
  27. // 获取站点监控管理名称表
  28. api.Get("/sitesMonitor/manage/nameList", func(c *fiber.Ctx) error {
  29. names, err := controllers.GetSiteMonitorNameList()
  30. if err != nil {
  31. zap.L().Error("查询站点监控管理名称表错误。", zap.String("err", err.Error()))
  32. return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  33. }
  34. return JSONResponse(c, 0, "success", names)
  35. })
  36. // 获取单个监控配置
  37. api.Get("/sitesMonitor/manage/config/:name", func(c *fiber.Ctx) error {
  38. name := c.Params("name")
  39. configList, err := controllers.GetOneSiteMonitorConfig(name)
  40. if err != nil {
  41. zap.L().Error("查询单个监控配置错误。", zap.String("err", err.Error()))
  42. return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  43. } else if len(configList) != 1 {
  44. return JSONResponseNoData(c, 204, "User not found")
  45. }
  46. return JSONResponse(c, 0, "success", configList[0])
  47. })
  48. // 更新一个监控配置
  49. api.Post("/sitesMonitor/manage/config/:name", func(c *fiber.Ctx) error {
  50. name := c.Params("name")
  51. var body controllers.SitesMonitorConfig
  52. if err := c.BodyParser(&body); err != nil {
  53. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  54. "code": 400,
  55. "message": "Invalid request body",
  56. })
  57. }
  58. err := controllers.UpdateSiteMonitorConfig(name, body)
  59. if err != nil {
  60. zap.L().Error("更新一个监控配置错误。", zap.String("err", err.Error()))
  61. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  62. }
  63. return JSONResponse(c, 0, "success", body)
  64. })
  65. // 更新一个监控页面配置
  66. api.Post("/sitesMonitor/manage/pageConfig/:name", func(c *fiber.Ctx) error {
  67. name := c.Params("name")
  68. var body controllers.MonitorPageConfig
  69. if err := c.BodyParser(&body); err != nil {
  70. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  71. "code": 400,
  72. "message": "Invalid request body",
  73. })
  74. }
  75. err := controllers.UpdateSiteMonitorPageConfig(name, body)
  76. if err != nil {
  77. zap.L().Error("更新一个监控页面配置错误。", zap.String("err", err.Error()))
  78. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  79. }
  80. return JSONResponse(c, 0, "success", body)
  81. })
  82. // 删除一个监控
  83. api.Delete("/sitesMonitor/manage/config/:name", func(c *fiber.Ctx) error {
  84. name := c.Params("name")
  85. err := controllers.DeleteSiteMonitorConfig(name)
  86. if err != nil {
  87. zap.L().Error("删除一个监控错误。", zap.String("err", err.Error()))
  88. return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)")
  89. }
  90. return JSONResponseNoData(c, 0, "success")
  91. })
  92. // 获取所有监控配置
  93. api.Get("/sitesMonitor/manage/config", func(c *fiber.Ctx) error {
  94. configList, err := controllers.GetSiteMonitorConfig()
  95. if err != nil {
  96. zap.L().Error("查询所有监控配置错误。", zap.String("err", err.Error()))
  97. return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  98. }
  99. return JSONResponse(c, 0, "success", configList)
  100. })
  101. // 创建一个监控配置
  102. api.Post("/sitesMonitor/manage/config", func(c *fiber.Ctx) error {
  103. var body controllers.SitesMonitorConfig
  104. if err := c.BodyParser(&body); err != nil {
  105. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  106. "code": 400,
  107. "message": "Invalid request body",
  108. })
  109. }
  110. err := controllers.InsertSiteMonitorConfig(body)
  111. if err != nil {
  112. zap.L().Error("创建一个监控配置错误。", zap.String("err", err.Error()))
  113. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  114. }
  115. return JSONResponse(c, 0, "success", body)
  116. })
  117. // 批量获取站点信息表
  118. api.Post("/sitesMonitor/site/infoList", func(c *fiber.Ctx) error {
  119. var body controllers.SiteInfoPara
  120. if err := c.BodyParser(&body); err != nil {
  121. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  122. "code": 400,
  123. "message": "Invalid request body",
  124. })
  125. }
  126. infoList, err := controllers.QuerySiteInfoList(body)
  127. if err != nil {
  128. zap.L().Error("查询批量站点信息表错误。", zap.String("err", err.Error()))
  129. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  130. }
  131. return JSONResponse(c, 0, "success", infoList)
  132. })
  133. // 获取单个站点信息
  134. api.Get("/sitesMonitor/site/:site/info", func(c *fiber.Ctx) error {
  135. site := c.Params("site")
  136. siteInfo, err := controllers.QuerySiteInfoList(controllers.SiteInfoPara{
  137. SiteList: []string{site},
  138. PageSize: 10,
  139. PageNum: 1,
  140. })
  141. if err != nil {
  142. zap.L().Error("查询单个站点信息错误。", zap.String("err", err.Error()))
  143. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  144. }
  145. return JSONResponse(c, 0, "success", siteInfo)
  146. })
  147. // 获取单个站点工作模式信息
  148. api.Get("/sitesMonitor/site/:site/modeInfo", func(c *fiber.Ctx) error {
  149. site := c.Params("site")
  150. siteModeInfo, err := controllers.QuerySiteModeInfo(site)
  151. if err != nil {
  152. zap.L().Error("查询单个站点工作模式信息错误。", zap.String("err", err.Error()))
  153. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  154. }
  155. return JSONResponse(c, 0, "success", siteModeInfo)
  156. })
  157. // 获取单个站点功率流
  158. api.Get("/sitesMonitor/site/:site/powerFlow/:day", func(c *fiber.Ctx) error {
  159. site := c.Params("site")
  160. day := c.Params("day")
  161. dayTime, err := time.Parse(time.DateOnly, day)
  162. if err != nil {
  163. zap.L().Error("查询单个站点功率流参数错误。(day)", zap.String("err", err.Error()))
  164. return JSONResponseNoData(c, 500, "day parament error.")
  165. }
  166. sitePowerFlow, err := controllers.QuerySitePowerFlow(site, dayTime)
  167. if err != nil {
  168. zap.L().Error("查询单个站点功率流错误。", zap.String("err", err.Error()))
  169. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  170. }
  171. return JSONResponse(c, 0, "success", sitePowerFlow)
  172. })
  173. // 获取单个站点告警列表
  174. api.Get("/sitesMonitor/site/:site/alarmList", func(c *fiber.Ctx) error {
  175. site := c.Params("site")
  176. siteAlarmList, err := controllers.QuerySiteAlarmList(site)
  177. if err != nil {
  178. zap.L().Error("查询单个站点告警列表错误。", zap.String("err", err.Error()))
  179. return JSONResponseNoData(c, 500, "fwh_pro query failed.")
  180. }
  181. return JSONResponse(c, 0, "success", siteAlarmList)
  182. })
  183. }