main_vip.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package dao
  2. import (
  3. "context"
  4. "net/url"
  5. "strconv"
  6. "go-common/app/service/main/tv/internal/model"
  7. mvip "go-common/app/service/main/vipinfo/api"
  8. "go-common/library/ecode"
  9. "go-common/library/log"
  10. )
  11. const (
  12. _mvipGiftRemark = "电视大会员赠送"
  13. )
  14. // MainVip returns main vip info.
  15. func (d *Dao) MainVip(c context.Context, mid int64) (mv *model.MainVip, err error) {
  16. var (
  17. res *mvip.InfoReply
  18. )
  19. res, err = d.mvipCli.Info(c, &mvip.InfoReq{Mid: int64(mid)})
  20. if err != nil {
  21. log.Error("d.MainVip(%d) err(%v)", mid, err)
  22. return
  23. }
  24. mv = &model.MainVip{
  25. Mid: int64(mid),
  26. VipType: int8(res.Res.Type),
  27. VipStatus: int8(res.Res.Status),
  28. VipDueDate: res.Res.DueDate,
  29. }
  30. log.Info("d.MainVip(%d) res(%+v)", mid, res)
  31. return
  32. }
  33. // GiveMVipGift gives bilibili vip to user.
  34. func (d *Dao) GiveMVipGift(c context.Context, mid int64, batchId int, orderNo string) error {
  35. var (
  36. err error
  37. )
  38. res := new(struct {
  39. Code int `json:"code"`
  40. Message string `json:"message"`
  41. TTL int `json:"ttl"`
  42. })
  43. params := url.Values{}
  44. params.Set("batchId", strconv.Itoa(batchId))
  45. params.Set("mid", strconv.Itoa(int(mid)))
  46. params.Set("orderNo", orderNo)
  47. params.Set("remark", _mvipGiftRemark)
  48. url := d.c.MVIP.BatchUserInfoUrl
  49. if err = d.mvipHttpCli.Post(c, url, "", params, res); err != nil {
  50. log.Error("d.mvipHttpCli.Post(%s, %+v) err(%+v)", url, params, err)
  51. return err
  52. }
  53. if res.Code != 0 {
  54. log.Error("d.mvipHttpCli.Post(%s, %+v) res(%+v)", url, params, res)
  55. return ecode.TVIPGiveMVipFailed
  56. }
  57. log.Info("d.GiveMVipGift(%d, %d, %s) res(%+v)", mid, batchId, orderNo, res)
  58. return nil
  59. }