vmp.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package services
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "hongze/hongze_mfyx/models"
  6. "hongze/hongze_mfyx/utils"
  7. "io/ioutil"
  8. nhttp "net/http"
  9. "strings"
  10. "time"
  11. )
  12. // 获取用户的Token
  13. func GetUserTokenByMobile(mobile string) (token string, err error) {
  14. //缓存校验
  15. cacheKey := fmt.Sprint("xygx_chart:chart_token:add:", "Mobile", mobile)
  16. ttlTime := utils.Rc.GetRedisTTL(cacheKey)
  17. if ttlTime > 0 {
  18. token, _ = utils.Rc.RedisString(cacheKey)
  19. }
  20. if token == "" {
  21. url := utils.ApiUrl + "auth/login"
  22. method := "POST"
  23. payload := strings.NewReader(`{
  24. "phone_number":"` + mobile + `",
  25. "password":"hz123456"}`)
  26. client := &nhttp.Client{}
  27. req, errReq := nhttp.NewRequest(method, url, payload)
  28. if errReq != nil {
  29. err = errReq
  30. return
  31. }
  32. req.Header.Add("Content-Type", "application/json")
  33. req.Header.Add("Cookie", "sessionid=naj5j5kl1jjynh7og1rsaxkl1vrsl829")
  34. res, errReq := client.Do(req)
  35. if errReq != nil {
  36. err = errReq
  37. return
  38. }
  39. defer res.Body.Close()
  40. body, errReq := ioutil.ReadAll(res.Body)
  41. if errReq != nil {
  42. err = errReq
  43. return
  44. }
  45. var chartResult models.ChartUserTokenResultApi
  46. errReq = json.Unmarshal(body, &chartResult)
  47. if errReq != nil {
  48. err = errReq
  49. return
  50. }
  51. token = chartResult.Data.AccessToken
  52. utils.Rc.Put(cacheKey, token, time.Hour*24)
  53. }
  54. return
  55. }
  56. // get公共请求方法
  57. func PublicGetDate(url, authorization string) (body []byte, err error) {
  58. defer func() {
  59. if err != nil {
  60. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", url+"Get ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  61. }
  62. }()
  63. method := "GET"
  64. client := &nhttp.Client{}
  65. req, err := nhttp.NewRequest(method, url, nil)
  66. if err != nil {
  67. return
  68. }
  69. req.Header.Add("Authorization", authorization)
  70. res, err := client.Do(req)
  71. if err != nil {
  72. return
  73. }
  74. defer res.Body.Close()
  75. body, err = ioutil.ReadAll(res.Body)
  76. if err != nil {
  77. return
  78. }
  79. return
  80. }