archive.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package dao
  2. import (
  3. "context"
  4. "net/url"
  5. "strconv"
  6. "go-common/app/interface/main/space/model"
  7. "go-common/library/ecode"
  8. "go-common/library/log"
  9. "go-common/library/net/metadata"
  10. )
  11. const (
  12. _arcSearchURI = "/space/search/v2"
  13. _arcSearchType = "sub_video"
  14. _additionalRanks = "-6"
  15. )
  16. // ArcSearchList archive search.
  17. func (d *Dao) ArcSearchList(c context.Context, arg *model.SearchArg) (data *model.SearchRes, total int, err error) {
  18. var (
  19. params = url.Values{}
  20. ip = metadata.String(c, metadata.RemoteIP)
  21. )
  22. params.Set("search_type", _arcSearchType)
  23. params.Set("additional_ranks", _additionalRanks)
  24. if arg.Mid > 0 {
  25. params.Set("mid", strconv.FormatInt(arg.Mid, 10))
  26. }
  27. params.Set("page", strconv.Itoa(arg.Pn))
  28. params.Set("pagesize", strconv.Itoa(arg.Ps))
  29. params.Set("clientip", ip)
  30. if arg.Tid > 0 {
  31. params.Set("tid", strconv.FormatInt(arg.Tid, 10))
  32. }
  33. if arg.Order != "" {
  34. params.Set("order", arg.Order)
  35. }
  36. if arg.Keyword != "" {
  37. params.Set("keyword", arg.Keyword)
  38. }
  39. var res struct {
  40. Code int `json:"code"`
  41. Total int `json:"total"`
  42. Result *model.SearchRes `json:"result"`
  43. }
  44. if err = d.httpR.Get(c, d.arcSearchURL, ip, params, &res); err != nil {
  45. log.Error("d.httpR.Get(%s,%v) error(%v)", d.arcSearchURL, arg, err)
  46. return
  47. }
  48. if res.Code != ecode.OK.Code() {
  49. log.Error("d.httpR.Get(%s,%v) code error(%d)", d.arcSearchURL, arg, res.Code)
  50. err = ecode.Int(res.Code)
  51. return
  52. }
  53. data = res.Result
  54. total = res.Total
  55. return
  56. }