user.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package datacube
  2. import (
  3. "fmt"
  4. "github.com/silenceper/wechat/v2/util"
  5. )
  6. const (
  7. getUserSummary = "https://api.weixin.qq.com/datacube/getusersummary"
  8. getUserAccumulate = "https://api.weixin.qq.com/datacube/getusercumulate"
  9. )
  10. // ResUserSummary 获取用户增减数据响应
  11. type ResUserSummary struct {
  12. util.CommonError
  13. List []struct {
  14. RefDate string `json:"ref_date"`
  15. UserSource int `json:"user_source"`
  16. NewUser int `json:"new_user"`
  17. CancelUser int `json:"cancel_user"`
  18. } `json:"list"`
  19. }
  20. // ResUserAccumulate 获取累计用户数据响应
  21. type ResUserAccumulate struct {
  22. util.CommonError
  23. List []struct {
  24. RefDate string `json:"ref_date"`
  25. CumulateUser int `json:"cumulate_user"`
  26. } `json:"list"`
  27. }
  28. // GetUserSummary 获取用户增减数据
  29. func (cube *DataCube) GetUserSummary(s string, e string) (resUserSummary ResUserSummary, err error) {
  30. accessToken, err := cube.GetAccessToken()
  31. if err != nil {
  32. return
  33. }
  34. uri := fmt.Sprintf("%s?access_token=%s", getUserSummary, accessToken)
  35. reqDate := &reqDate{
  36. BeginDate: s,
  37. EndDate: e,
  38. }
  39. response, err := util.PostJSON(uri, reqDate)
  40. if err != nil {
  41. return
  42. }
  43. err = util.DecodeWithError(response, &resUserSummary, "GetUserSummary")
  44. return
  45. }
  46. // GetUserAccumulate 获取累计用户数据
  47. func (cube *DataCube) GetUserAccumulate(s string, e string) (resUserAccumulate ResUserAccumulate, err error) {
  48. accessToken, err := cube.GetAccessToken()
  49. if err != nil {
  50. return
  51. }
  52. uri := fmt.Sprintf("%s?access_token=%s", getUserAccumulate, accessToken)
  53. reqDate := &reqDate{
  54. BeginDate: s,
  55. EndDate: e,
  56. }
  57. response, err := util.PostJSON(uri, reqDate)
  58. if err != nil {
  59. return
  60. }
  61. err = util.DecodeWithError(response, &resUserAccumulate, "GetUserAccumulate")
  62. return
  63. }