heartrate_server.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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 HeartRateServer struct {
  15. }
  16. //查询用户身体数据
  17. func (h HeartRateServer) VipUserQueryByUserMd5(userMd5 string) (rtnCode int, rtn *model.UserBodyInfo) {
  18. api := strings.Join([]string{global.Project.HeartrateUrl, "v1/OutService/GetUserBodyInfoByUserMd5"}, "/")
  19. resp, err := http.PostForm(api, url.Values{
  20. "userMd5": {userMd5},
  21. })
  22. if err != nil {
  23. panic(err)
  24. }
  25. defer resp.Body.Close()
  26. body, err := ioutil.ReadAll(resp.Body)
  27. if err != nil {
  28. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  29. panic(err)
  30. }
  31. var responseBase struct {
  32. Code int
  33. Memo string
  34. Rs map[string]interface{}
  35. }
  36. err = json.Unmarshal(body, &responseBase)
  37. if err != nil {
  38. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  39. panic(err)
  40. }
  41. rtnCode = responseBase.Code
  42. if rtnCode == 0 {
  43. rtn = &model.UserBodyInfo{
  44. UserName: utils.MapToString(responseBase.Rs, "Name"),
  45. Birthday: utils.MapToTime(responseBase.Rs, "Birthday"),
  46. Height: utils.MapToInt32(responseBase.Rs, "Height"),
  47. Weight: utils.MapToInt32(responseBase.Rs, "Weight"),
  48. Sex: utils.MapToInt32(responseBase.Rs, "Sex"),
  49. StaticHr: utils.MapToInt32(responseBase.Rs, "StaticHr"),
  50. UserMd5: utils.MapToString(responseBase.Rs, "UserMd5"),
  51. Head: utils.MapToString(responseBase.Rs, "Head"),
  52. }
  53. }
  54. return
  55. }
  56. //线上心率带更新
  57. func (h HeartRateServer) HrSensorsUpdate(userMd5 string, sn string) (hrId int, err error) {
  58. api := strings.Join([]string{global.Project.HeartrateUrl, "v1/OutService/HrSensorsUpdate"}, "/")
  59. resp, err := http.PostForm(api, url.Values{
  60. "userMd5": {userMd5},
  61. "sn": {sn},
  62. })
  63. if err != nil {
  64. panic(err)
  65. }
  66. defer resp.Body.Close()
  67. body, err := ioutil.ReadAll(resp.Body)
  68. if err != nil {
  69. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  70. panic(err)
  71. }
  72. var responseBase struct {
  73. Code int
  74. Memo string
  75. HrId int
  76. }
  77. err = json.Unmarshal(body, &responseBase)
  78. if err != nil {
  79. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  80. panic(err)
  81. }
  82. rtnCode := responseBase.Code
  83. hrId = responseBase.HrId
  84. if rtnCode != 0 {
  85. err = errors.ErrHrSensorsUpdate
  86. }
  87. return
  88. }
  89. //查询用户是否正在上课接口
  90. func (h HeartRateServer) GetDuInfoAndUserInfoByUserMd5(userMd5 string) (inClass int, duInfo *model.DuInfo, userInfo *model.UserBodyInfo, err error) {
  91. api := strings.Join([]string{global.Project.HeartrateUrl, "v1/OutService/GetDuInfoAndUserInfoByUserMd5"}, "/")
  92. resp, err := http.PostForm(api, url.Values{
  93. "userMd5": {userMd5},
  94. })
  95. if err != nil {
  96. panic(err)
  97. }
  98. defer resp.Body.Close()
  99. body, err := ioutil.ReadAll(resp.Body)
  100. if err != nil {
  101. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  102. panic(err)
  103. }
  104. var responseBase struct {
  105. Code int
  106. Memo string
  107. DuInfo map[string]interface{}
  108. UserInfo map[string]interface{}
  109. }
  110. err = json.Unmarshal(body, &responseBase)
  111. if err != nil {
  112. err = fmt.Errorf("response:[%s], err:\n%w", string(body), err)
  113. panic(err)
  114. }
  115. rtnCode := responseBase.Code
  116. if rtnCode == 0 {
  117. duInfo = &model.DuInfo{
  118. DpName: utils.MapToString(responseBase.DuInfo, "DpName"),
  119. DuId: utils.MapToInt32(responseBase.DuInfo, "DuId"),
  120. }
  121. userInfo = &model.UserBodyInfo{
  122. UserName: utils.MapToString(responseBase.UserInfo, "Name"),
  123. Birthday: utils.MapToTime(responseBase.UserInfo, "Birthday"),
  124. Height: utils.MapToInt32(responseBase.UserInfo, "Height"),
  125. Weight: utils.MapToInt32(responseBase.UserInfo, "Weight"),
  126. Sex: utils.MapToInt32(responseBase.UserInfo, "Sex"),
  127. StaticHr: utils.MapToInt32(responseBase.UserInfo, "StaticHr"),
  128. UserMd5: utils.MapToString(responseBase.UserInfo, "UserMd5"),
  129. Head: utils.MapToString(responseBase.UserInfo, "Head"),
  130. }
  131. } else {
  132. err = errors.ErrGetDuInfo
  133. }
  134. return
  135. }