github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/datacube/interface.go (about) 1 package datacube 2 3 import ( 4 "errors" 5 6 "github.com/chanxuehong/wechat/mp/core" 7 ) 8 9 // 接口分析数据 10 type InterfaceSummaryData struct { 11 RefDate string `json:"ref_date"` // 数据的日期, YYYY-MM-DD 格式 12 CallbackCount int `json:"callback_count"` // 通过服务器配置地址获得消息后, 被动回复用户消息的次数 13 FailCount int `json:"fail_count"` // 上述动作的失败次数 14 TotalTimeCost int64 `json:"total_time_cost"` // 总耗时, 除以callback_count即为平均耗时 15 MaxTimeCost int64 `json:"max_time_cost"` // 最大耗时 16 } 17 18 // 获取接口分析数据. 19 func GetInterfaceSummary(clt *core.Client, req *Request) (list []InterfaceSummaryData, err error) { 20 if req == nil { 21 err = errors.New("nil Request") 22 return 23 } 24 25 var result struct { 26 core.Error 27 List []InterfaceSummaryData `json:"list"` 28 } 29 30 incompleteURL := "https://api.weixin.qq.com/datacube/getinterfacesummary?access_token=" 31 if err = clt.PostJSON(incompleteURL, req, &result); err != nil { 32 return 33 } 34 35 if result.ErrCode != core.ErrCodeOK { 36 err = &result.Error 37 return 38 } 39 list = result.List 40 return 41 } 42 43 type InterfaceSummaryHourData struct { 44 RefHour int `json:"ref_hour"` // 数据的小时, 包括从000到2300, 分别代表的是[000,100)到[2300,2400), 即每日的第1小时和最后1小时 45 InterfaceSummaryData 46 } 47 48 // 获取接口分析分时数据. 49 func GetInterfaceSummaryHour(clt *core.Client, req *Request) (list []InterfaceSummaryHourData, err error) { 50 if req == nil { 51 err = errors.New("nil Request") 52 return 53 } 54 55 var result struct { 56 core.Error 57 List []InterfaceSummaryHourData `json:"list"` 58 } 59 60 incompleteURL := "https://api.weixin.qq.com/datacube/getinterfacesummaryhour?access_token=" 61 if err = clt.PostJSON(incompleteURL, req, &result); err != nil { 62 return 63 } 64 65 if result.ErrCode != core.ErrCodeOK { 66 err = &result.Error 67 return 68 } 69 list = result.List 70 return 71 }