fwh_eventAlarmLog.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package fwh_pro
  2. import (
  3. "io"
  4. "net/http"
  5. "net/url"
  6. "strconv"
  7. "time"
  8. "go.uber.org/zap"
  9. )
  10. // 查询事件事件日志
  11. func queryEventAndAlarmLog(sn string, params url.Values) ([]byte, error) {
  12. baseURL := "https://energy.franklinwh.com/hes-gateway/manage/iotDeviceRunLogs"
  13. token := getLoginToken()
  14. userId, _ := getUserId(token)
  15. // 构造 query 参数
  16. params.Add("userId", strconv.Itoa(userId))
  17. params.Add("searchName", sn)
  18. params.Add("timeType", strconv.Itoa(1)) // 0-通讯时间;1-设备时间
  19. params.Add("pageSize", strconv.FormatUint(REQ_PAGE_SIZE, 10))
  20. params.Add("pageNum", strconv.Itoa(1))
  21. params.Add("land", "ZH_CN")
  22. // 拼接到 URL
  23. finalURL := baseURL + "?" + params.Encode()
  24. // 创建请求
  25. req, err := http.NewRequest(
  26. http.MethodGet,
  27. finalURL,
  28. nil)
  29. if err != nil {
  30. zap.L().Error("NewRequest failed.", zap.String("err", err.Error()))
  31. return nil, err
  32. }
  33. // 设置 Content-Type 和 Authorization
  34. req.Header.Set("Content-Type", "application/json")
  35. req.Header.Set("Logintoken", token)
  36. // 发送请求
  37. client := &http.Client{Timeout: 5 * time.Second}
  38. resp, err := client.Do(req)
  39. if err != nil {
  40. zap.L().Error("Do Send failed.", zap.String("err", err.Error()))
  41. return nil, err
  42. }
  43. defer resp.Body.Close()
  44. body, _ := io.ReadAll(resp.Body)
  45. // logger.Std.Printf("Status: %s\nBody: %s\n", resp.Status, body)
  46. return body, nil
  47. }
  48. // 查询快照信息
  49. // logTime 格式 YYYY-MM-DD
  50. func QueryAlarmSnapshotInfo(sn, logTime string, page int) ([]byte, error) {
  51. baseURL := "https://energy.franklinwh.com/hes-gateway/manage/selectAlarmSnapshotList"
  52. token := getLoginToken()
  53. // 构造 query 参数
  54. params := url.Values{}
  55. params.Add("logTime", logTime)
  56. params.Add("linkId", sn)
  57. params.Add("pageSize", strconv.FormatUint(REQ_PAGE_SIZE, 10))
  58. params.Add("pageNum", strconv.Itoa(page))
  59. params.Add("land", "ZH_CN")
  60. // 拼接到 URL
  61. finalURL := baseURL + "?" + params.Encode()
  62. // 创建请求
  63. req, err := http.NewRequest(
  64. http.MethodGet,
  65. finalURL,
  66. nil)
  67. if err != nil {
  68. zap.L().Error("NewRequest failed.", zap.String("err", err.Error()))
  69. return nil, err
  70. }
  71. // 设置 Content-Type 和 Authorization
  72. req.Header.Set("Content-Type", "application/json")
  73. req.Header.Set("Logintoken", token)
  74. // 发送请求
  75. client := &http.Client{Timeout: 5 * time.Second}
  76. resp, err := client.Do(req)
  77. if err != nil {
  78. zap.L().Error("Do send failed.", zap.String("err", err.Error()))
  79. return nil, err
  80. }
  81. defer resp.Body.Close()
  82. body, _ := io.ReadAll(resp.Body)
  83. // logger.Std.Printf("Status: %s\nBody: %s\n", resp.Status, body)
  84. return body, nil
  85. }
  86. // 查询所有事件告警
  87. // startTime&endTime 格式 YYYY-MM-DD HH:mm:SS
  88. func QueryAllEventAlarm(sn, startTime, endTime string) ([]byte, error) {
  89. // 构造 query 参数
  90. params := url.Values{}
  91. params.Add("startTime", startTime)
  92. params.Add("endTime", endTime)
  93. return queryEventAndAlarmLog(sn, params)
  94. }
  95. // 查询事件日志
  96. // startTime&endTime 格式 YYYY-MM-DD HH:mm:SS
  97. func QueryEventLog(sn, startTime, endTime string) ([]byte, error) {
  98. // 构造 query 参数
  99. params := url.Values{}
  100. params.Add("logType", strconv.Itoa(0))
  101. params.Add("startTime", startTime)
  102. params.Add("endTime", endTime)
  103. return queryEventAndAlarmLog(sn, params)
  104. }
  105. // 查询告警日志
  106. // startTime&endTime 格式 YYYY-MM-DD HH:mm:SS
  107. // alarmCode - 支持多个code,用‘,’隔开,“”代表查询所有
  108. func QueryAlarmLog(sn, startTime, endTime, alarmCode string) ([]byte, error) {
  109. // 构造 query 参数
  110. params := url.Values{}
  111. params.Add("logType", strconv.Itoa(1))
  112. params.Add("alarmCode", alarmCode)
  113. params.Add("startTime", startTime)
  114. params.Add("endTime", endTime)
  115. return queryEventAndAlarmLog(sn, params)
  116. }
  117. // 查询实时告警
  118. func QueryRealtimeAlarm(sn string) ([]byte, error) {
  119. // 构造 query 参数
  120. params := url.Values{}
  121. params.Add("logType", strconv.Itoa(2))
  122. return queryEventAndAlarmLog(sn, params)
  123. }