54 lines
1.4 KiB
Go
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)
|
|
}
|