loallout_server.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package http
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "io/ioutil"
  6. "net/http"
  7. "net/url"
  8. "strings"
  9. "video_course/errors"
  10. "video_course/global"
  11. "video_course/model"
  12. "video_course/utils"
  13. )
  14. type LoalloutServer struct {
  15. }
  16. func (l LoalloutServer) CheckPhone(phone string) (userMd5 string) {
  17. api := strings.Join([]string{global.Project.LoalloutUrl, "v1/Auth/CheckPhone"}, "/")
  18. resp, err := http.PostForm(api, url.Values{
  19. "phone": {phone},
  20. })
  21. if err != nil {
  22. panic(err)
  23. }
  24. defer resp.Body.Close()
  25. body, err := ioutil.ReadAll(resp.Body)
  26. if err != nil {
  27. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  28. panic(err)
  29. }
  30. var responseBase struct {
  31. Code int
  32. Memo string
  33. }
  34. err = json.Unmarshal(body, &responseBase)
  35. if err != nil {
  36. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  37. panic(err)
  38. }
  39. const (
  40. success = 0
  41. notRegister = 1012
  42. ban = 1007
  43. )
  44. switch responseBase.Code {
  45. case success:
  46. {
  47. var responseAll struct {
  48. Code int
  49. Memo string
  50. Md5 string
  51. }
  52. err = json.Unmarshal(body, &responseAll)
  53. if err != nil {
  54. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  55. panic(err)
  56. }
  57. userMd5 = responseAll.Md5
  58. }
  59. case notRegister:
  60. panic(errors.ErrUserNotExists)
  61. case ban:
  62. panic(errors.ErrUserBan)
  63. default:
  64. panic(errors.ErrHrSensorsTimeOut)
  65. }
  66. return
  67. }
  68. //查询用户身体数据
  69. func (l LoalloutServer) VipUserQueryByUserMd5(serviceKey string, userMd5 string) (rtnCode int, rtn *model.UserBodyInfo) {
  70. api := strings.Join([]string{global.Project.LoalloutUrl, "v1/User/VipUserQueryByUserMd5"}, "/")
  71. resp, err := http.PostForm(api, url.Values{
  72. "serviceKey": {serviceKey},
  73. "userMd5": {userMd5},
  74. })
  75. if err != nil {
  76. panic(err)
  77. }
  78. defer resp.Body.Close()
  79. body, err := ioutil.ReadAll(resp.Body)
  80. if err != nil {
  81. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  82. panic(err)
  83. }
  84. var responseBase struct {
  85. Code int
  86. Memo string
  87. Status int
  88. Info map[string]interface{}
  89. }
  90. err = json.Unmarshal(body, &responseBase)
  91. if err != nil {
  92. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  93. panic(err)
  94. }
  95. rtnCode = responseBase.Code
  96. if rtnCode == 0 {
  97. rtn = &model.UserBodyInfo{
  98. UserName: utils.MapToString(responseBase.Info, "UserName"),
  99. Birthday: utils.MapToTime(responseBase.Info, "Birthday"),
  100. Height: utils.MapToInt32(responseBase.Info, "Height"),
  101. Weight: utils.MapToInt32(responseBase.Info, "Weight"),
  102. Sex: utils.MapToInt32(responseBase.Info, "Sex"),
  103. StaticHr: utils.MapToInt32(responseBase.Info, "StaticHr"),
  104. UserMd5: utils.MapToString(responseBase.Info, "UserMd5"),
  105. Head: utils.MapToString(responseBase.Info, "Head"),
  106. }
  107. }
  108. return
  109. }
  110. //func MapToString(v interface{}, key string) (str string) {
  111. // f, ok := v.(map[string]interface{})[key].(string)
  112. // if !ok {
  113. // println(errors.ErrJsonToMap)
  114. // }
  115. // str = f
  116. // return
  117. //}