package fwh_test import ( "fmt" "fwh-toolbox-server/domain" "net/url" "strconv" ) // 召唤EMS日志 func queryCallEmsLog(sn string, dateStr string, logType int) (*domain.FwhResponse[bool], error) { // 要发送的表单数据 // form := url.Values{} // form.Set("gatewayId", sn) // SN // form.Set("logEqSn", sn) // SN // form.Set("logId", sn) // SN // form.Set("logTime", dateStr) // 日志时间 // form.Set("logType", strconv.Itoa(logType)) // 日志类型 4-IBG运行日志 7-电池日志 9-设备系统资源监控日志 10-4G日志 11-AWS日志 12-主进程日志 // form.Set("lang", "ZH_CN") form := map[string]interface{}{ "gatewayId": sn, "logEqSn": sn, "logId": sn, "logTime": dateStr, "logType": logType, "lang": "ZH_CN", } response, err := FwhHttpPostUnmarshal[bool](getFullEnergyUrl("/hes-gateway/manage/logFileCall"), form) if err != nil { return nil, err } return response, nil } // 召唤EMS日志 func QueryCallEmsLog(sn string, dateStr string, logType int) error { // 查询告警快照数据 callRes, err := queryCallEmsLog(sn, dateStr, logType) if err != nil { return fmt.Errorf("[QueryCallEmsLog] %s", err.Error()) } if callRes.Code != 200 { return fmt.Errorf("[QueryCallEmsLog] 查询失败 code: %d, message: %s", callRes.Code, callRes.Message) } if callRes.Result == nil || !*callRes.Result { return fmt.Errorf("[QueryCallEmsLog] 查询失败 code: %d, result: %v, message: %s", callRes.Code, callRes.Result, callRes.Message) } return nil } // 查询EMS日志下载地址 func queryEmsLogCallRecord(sn string) (*domain.FwhResponse[[]domain.EmsLogRecordInfo], error) { // 构造 query 参数 params := url.Values{} params.Add("linkId", sn) // SN params.Add("pageIndex", strconv.Itoa(1)) params.Add("pageSize", strconv.FormatUint(REQ_PAGE_SIZE, 10)) params.Add("pageNum", strconv.Itoa(1)) params.Add("lang", "ZH_CN") response, err := FwhHttpGetUnmarshal[[]domain.EmsLogRecordInfo](getFullEnergyUrl("/hes-gateway/manage/iotDeviceFileRecords"), params) if err != nil { return nil, err } return response, nil } // 查询EMS日志下载地址 func QueryEmsLogCallRecord(sn string, dateStr string, logType int) (*domain.EmsLogRecordInfo, error) { // 查询告警快照数据 callRecordRes, err := queryEmsLogCallRecord(sn) if err != nil { return nil, fmt.Errorf("[QueryEmsLogCallRecord] %s", err.Error()) } if callRecordRes.Code != 200 { return nil, fmt.Errorf("[QueryEmsLogCallRecord] 查询失败 code: %d, message: %s", callRecordRes.Code, callRecordRes.Message) } for _, record := range *callRecordRes.Result { if record.LogTime == dateStr && record.CodeType == logType { return &record, nil } } return nil, fmt.Errorf("[QueryEmsLogCallRecord] 没有召唤日志") } // 请求下载EMS日志文件 func QueryDownloadEmsLogFile(filePath string) ([]byte, error) { response, err := FwhHttpGet(getFullEnergyUrl("/hes-upload/v1/file/download/"+filePath), url.Values{}) if err != nil { return nil, err } return response.Body, nil }