pack.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package unicom
  2. import (
  3. "context"
  4. "time"
  5. "go-common/library/ecode"
  6. "go-common/library/log"
  7. )
  8. // PrivilegePack
  9. func (s *Service) Pack(c context.Context, usermob string, mid int64, now time.Time) (msg string, err error) {
  10. row := s.unicomInfo(c, usermob, now)
  11. u, ok := row[usermob]
  12. if !ok || u == nil {
  13. err = ecode.NothingFound
  14. msg = "该卡号尚未开通哔哩哔哩专属免流服务"
  15. return
  16. }
  17. var (
  18. result int64
  19. )
  20. userpacke, err := s.userPack(c, usermob)
  21. if err != nil {
  22. log.Error("s.userPack error(%v)", err)
  23. msg = "特权礼包领取失败"
  24. return
  25. }
  26. var (
  27. unicomPackOk bool
  28. userPackOk bool
  29. user map[int64]struct{}
  30. )
  31. if user, unicomPackOk = userpacke[usermob]; unicomPackOk {
  32. _, userPackOk = user[mid]
  33. }
  34. if !unicomPackOk && !userPackOk {
  35. result, err = s.dao.InPack(c, usermob, mid)
  36. if err != nil {
  37. log.Error("s.pack.InPack(%s, %s) error(%v)", usermob, mid, err)
  38. } else if result == 0 {
  39. err = ecode.RequestErr
  40. msg = "每张卡只能领取一次特权礼包哦"
  41. log.Error("s.pack.InPackc(%s,%s) error(%v) result==0", usermob, mid, err)
  42. } else {
  43. if err = s.live.Pack(c, mid, u.CardType); err != nil {
  44. msg = "礼包领取失败"
  45. log.Error("s.live.Pack mid error(%v)", mid, err)
  46. }
  47. }
  48. } else if unicomPackOk {
  49. err = ecode.NotModified
  50. msg = "每张卡只能领取一次特权礼包哦"
  51. } else if userPackOk {
  52. err = ecode.NotModified
  53. msg = "每个账号只能领取一次哦"
  54. } else {
  55. msg = "领取成功,特权礼包将在1~3个⼯工作⽇日内发放到您的账号"
  56. }
  57. return
  58. }
  59. func (s *Service) userPack(c context.Context, usermob string) (pack map[string]map[int64]struct{}, err error) {
  60. if pack, err = s.dao.Pack(c, usermob); err != nil {
  61. log.Error("s.pack.Pack usermob:%v error(%v)", usermob, err)
  62. return
  63. }
  64. return
  65. }