sitesMonitorRoutes.go 5.8 KB

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