go-common/app/interface/main/activity/service/bws/lottery.go
2019-04-22 18:49:16 +08:00

54 lines
1.4 KiB
Go

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)
}