You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
package bws |
|
|
|
import ( |
|
"context" |
|
|
|
bwsmdl "go-common/app/interface/main/activity/model/bws" |
|
accapi "go-common/app/service/main/account/api" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
) |
|
|
|
// Lottery get lottery account. |
|
func (s *Service) Lottery(c context.Context, bid, loginMid, aid int64, day string) (data *bwsmdl.LotteryUser, err error) { |
|
var ( |
|
mid int64 |
|
accData *accapi.InfoReply |
|
) |
|
if _, ok := s.lotteryMids[loginMid]; !ok { |
|
err = ecode.ActivityNotLotteryAdmin |
|
return |
|
} |
|
if _, ok := s.lotteryAids[aid]; !ok { |
|
err = ecode.ActivityNotLotteryAchieve |
|
return |
|
} |
|
if _, err = s.Achievement(c, &bwsmdl.ParamID{Bid: bid, ID: aid}); err != nil { |
|
return |
|
} |
|
if mid, err = s.dao.CacheLotteryMid(c, aid, day); err != nil || mid == 0 { |
|
err = ecode.ActivityLotteryFail |
|
return |
|
} |
|
log.Warn("Lottery bid(%d) loginMid(%d) aid(%d) lotteryMid(%d)", bid, loginMid, aid, mid) |
|
data = &bwsmdl.LotteryUser{Mid: mid} |
|
if accData, err = s.accClient.Info3(c, &accapi.MidReq{Mid: mid}); err != nil { |
|
log.Error("Lottery s.accRPC.Info3(%d) error(%v)", mid, err) |
|
err = nil |
|
return |
|
} |
|
if accData != nil && accData.Info != nil { |
|
data = &bwsmdl.LotteryUser{Mid: mid, Name: accData.Info.Name, Face: accData.Info.Face} |
|
} |
|
return |
|
} |
|
|
|
// LotteryCheck . |
|
func (s *Service) LotteryCheck(c context.Context, mid, aid int64, day string) (data []int64, err error) { |
|
if !s.isAdmin(mid) { |
|
err = ecode.ActivityNotAdmin |
|
return |
|
} |
|
return s.dao.CacheLotteryMids(c, aid, day) |
|
}
|
|
|