gid.go 959 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package utils
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "fmt"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
  7. "io/ioutil"
  8. "net/http"
  9. )
  10. var _gidUrl = ""
  11. var _gidTagPrefix = "s"
  12. //{"code":200,"data":1}
  13. type Res struct {
  14. Code int `json:"code"`
  15. Data int64 `json:"data"`
  16. }
  17. func GetGid(tag string) (id int64, err error) {
  18. if _gidUrl == "" {
  19. _gidUrl = config.AppConfig.GetKey("gid_url")
  20. _gidTagPrefix = config.AppConfig.GetKey("gid_tag_prefix")
  21. }
  22. req, err := http.NewRequest("GET", _gidUrl+_gidTagPrefix+tag, nil)
  23. if err != nil {
  24. return
  25. }
  26. res, err := http.DefaultClient.Do(req)
  27. if err != nil {
  28. return
  29. }
  30. if res == nil {
  31. err = errors.New("res is nil")
  32. return
  33. }
  34. defer func() {
  35. _ = res.Body.Close()
  36. }()
  37. body, err := ioutil.ReadAll(res.Body)
  38. var ret Res
  39. err = json.Unmarshal(body, &ret)
  40. if err != nil {
  41. return
  42. }
  43. if ret.Code != 200 {
  44. err = fmt.Errorf("gid code(%d) error", ret.Code)
  45. return
  46. }
  47. id = ret.Data
  48. return
  49. }