fwh_emsLog.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package fwh_test
  2. import (
  3. "fmt"
  4. "fwh-toolbox-server/domain"
  5. "net/url"
  6. "strconv"
  7. )
  8. // 召唤EMS日志
  9. func queryCallEmsLog(sn string, dateStr string, logType int) (*domain.FwhResponse[bool], error) {
  10. // 要发送的表单数据
  11. // form := url.Values{}
  12. // form.Set("gatewayId", sn) // SN
  13. // form.Set("logEqSn", sn) // SN
  14. // form.Set("logId", sn) // SN
  15. // form.Set("logTime", dateStr) // 日志时间
  16. // form.Set("logType", strconv.Itoa(logType)) // 日志类型 4-IBG运行日志 7-电池日志 9-设备系统资源监控日志 10-4G日志 11-AWS日志 12-主进程日志
  17. // form.Set("lang", "ZH_CN")
  18. form := map[string]interface{}{
  19. "gatewayId": sn,
  20. "logEqSn": sn,
  21. "logId": sn,
  22. "logTime": dateStr,
  23. "logType": logType,
  24. "lang": "ZH_CN",
  25. }
  26. response, err := FwhHttpPostUnmarshal[bool](getFullEnergyUrl("/hes-gateway/manage/logFileCall"), form)
  27. if err != nil {
  28. return nil, err
  29. }
  30. return response, nil
  31. }
  32. // 召唤EMS日志
  33. func QueryCallEmsLog(sn string, dateStr string, logType int) error {
  34. // 查询告警快照数据
  35. callRes, err := queryCallEmsLog(sn, dateStr, logType)
  36. if err != nil {
  37. return fmt.Errorf("[QueryCallEmsLog] %s", err.Error())
  38. }
  39. if callRes.Code != 200 {
  40. return fmt.Errorf("[QueryCallEmsLog] 查询失败 code: %d, message: %s", callRes.Code, callRes.Message)
  41. }
  42. if callRes.Result == nil || !*callRes.Result {
  43. return fmt.Errorf("[QueryCallEmsLog] 查询失败 code: %d, result: %v, message: %s", callRes.Code, callRes.Result, callRes.Message)
  44. }
  45. return nil
  46. }
  47. // 查询EMS日志下载地址
  48. func queryEmsLogCallRecord(sn string) (*domain.FwhResponse[[]domain.EmsLogRecordInfo], error) {
  49. // 构造 query 参数
  50. params := url.Values{}
  51. params.Add("linkId", sn) // SN
  52. params.Add("pageIndex", strconv.Itoa(1))
  53. params.Add("pageSize", strconv.FormatUint(REQ_PAGE_SIZE, 10))
  54. params.Add("pageNum", strconv.Itoa(1))
  55. params.Add("lang", "ZH_CN")
  56. response, err := FwhHttpGetUnmarshal[[]domain.EmsLogRecordInfo](getFullEnergyUrl("/hes-gateway/manage/iotDeviceFileRecords"), params)
  57. if err != nil {
  58. return nil, err
  59. }
  60. return response, nil
  61. }
  62. // 查询EMS日志下载地址
  63. func QueryEmsLogCallRecord(sn string, dateStr string, logType int) (*domain.EmsLogRecordInfo, error) {
  64. // 查询告警快照数据
  65. callRecordRes, err := queryEmsLogCallRecord(sn)
  66. if err != nil {
  67. return nil, fmt.Errorf("[QueryEmsLogCallRecord] %s", err.Error())
  68. }
  69. if callRecordRes.Code != 200 {
  70. return nil, fmt.Errorf("[QueryEmsLogCallRecord] 查询失败 code: %d, message: %s", callRecordRes.Code, callRecordRes.Message)
  71. }
  72. for _, record := range *callRecordRes.Result {
  73. if record.LogTime == dateStr && record.CodeType == logType {
  74. return &record, nil
  75. }
  76. }
  77. return nil, fmt.Errorf("[QueryEmsLogCallRecord] 没有召唤日志")
  78. }
  79. // 请求下载EMS日志文件
  80. func QueryDownloadEmsLogFile(filePath string) ([]byte, error) {
  81. response, err := FwhHttpGet(getFullEnergyUrl("/hes-upload/v1/file/download/"+filePath), url.Values{})
  82. if err != nil {
  83. return nil, err
  84. }
  85. return response.Body, nil
  86. }