sitesMonitorRoutes.go 6.3 KB

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