123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package unicom
- import (
- "context"
- "time"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- // PrivilegePack
- func (s *Service) Pack(c context.Context, usermob string, mid int64, now time.Time) (msg string, err error) {
- row := s.unicomInfo(c, usermob, now)
- u, ok := row[usermob]
- if !ok || u == nil {
- err = ecode.NothingFound
- msg = "该卡号尚未开通哔哩哔哩专属免流服务"
- return
- }
- var (
- result int64
- )
- userpacke, err := s.userPack(c, usermob)
- if err != nil {
- log.Error("s.userPack error(%v)", err)
- msg = "特权礼包领取失败"
- return
- }
- var (
- unicomPackOk bool
- userPackOk bool
- user map[int64]struct{}
- )
- if user, unicomPackOk = userpacke[usermob]; unicomPackOk {
- _, userPackOk = user[mid]
- }
- if !unicomPackOk && !userPackOk {
- result, err = s.dao.InPack(c, usermob, mid)
- if err != nil {
- log.Error("s.pack.InPack(%s, %s) error(%v)", usermob, mid, err)
- } else if result == 0 {
- err = ecode.RequestErr
- msg = "每张卡只能领取一次特权礼包哦"
- log.Error("s.pack.InPackc(%s,%s) error(%v) result==0", usermob, mid, err)
- } else {
- if err = s.live.Pack(c, mid, u.CardType); err != nil {
- msg = "礼包领取失败"
- log.Error("s.live.Pack mid error(%v)", mid, err)
- }
- }
- } else if unicomPackOk {
- err = ecode.NotModified
- msg = "每张卡只能领取一次特权礼包哦"
- } else if userPackOk {
- err = ecode.NotModified
- msg = "每个账号只能领取一次哦"
- } else {
- msg = "领取成功,特权礼包将在1~3个⼯工作⽇日内发放到您的账号"
- }
- return
- }
- func (s *Service) userPack(c context.Context, usermob string) (pack map[string]map[int64]struct{}, err error) {
- if pack, err = s.dao.Pack(c, usermob); err != nil {
- log.Error("s.pack.Pack usermob:%v error(%v)", usermob, err)
- return
- }
- return
- }
|