diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go index 81c30ea..eaac369 100644 --- a/dbproxy/svc/l_invitescore.go +++ b/dbproxy/svc/l_invitescore.go @@ -147,7 +147,15 @@ func (b *BindScoreSvc) GetInviteRankList(req *model.FindPlayerRankInviteListArgs logger.Logger.Error("GetInviteRankList find player is error", err) return err } - + //机器人库 + robotPlayer := AccountCollection(mongo.G_P) + var robotPlayerList []PInfo + err = robotPlayer.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&robotPlayerList) + if err != nil { + logger.Logger.Error("GetInviteRankList find player is error", err) + return err + } + retPlayerList = append(retPlayerList, robotPlayerList...) for _, inviteInfo := range list { for _, playerData := range retPlayerList { if inviteInfo.SnId == playerData.SnId { diff --git a/dbproxy/svc/l_rankinvite.go b/dbproxy/svc/l_rankinvite.go index 36a30b6..7650d26 100644 --- a/dbproxy/svc/l_rankinvite.go +++ b/dbproxy/svc/l_rankinvite.go @@ -2,6 +2,8 @@ package svc import ( "errors" + "fmt" + "net/rpc" "github.com/globalsign/mgo" "github.com/globalsign/mgo/bson" @@ -52,4 +54,18 @@ func SaveRankInvite(data *model.RankInvite) error { return nil } -//todo 每周清理数据 +type RankInviteSvc struct { +} + +func (svc *RankInviteSvc) SaveRankInvite(data *model.RankInvite, ret *bool) (err error) { + err = SaveRankInvite(data) + fmt.Println("11111111111111111111111111111111111111111111") + if err == nil { + *ret = true + } + return +} + +func init() { + rpc.Register(new(RankInviteSvc)) +} diff --git a/dbproxy/svc/u_account.go b/dbproxy/svc/u_account.go index 5b79650..5ceb143 100644 --- a/dbproxy/svc/u_account.go +++ b/dbproxy/svc/u_account.go @@ -550,7 +550,7 @@ func (svc *AccountSvc) GetRobotAccounts(limit int, accs *[]model.Account) error return nil } *accs = make([]model.Account, 0, limit) - err := caccounts.Find(bson.M{"platform": common.Platform_Rob}).Limit(limit).All(&accs) + err := caccounts.Find(bson.M{"platform": common.Platform_Rob}).Limit(limit).All(accs) if err != nil { logger.Logger.Info("GetAllRobotAccounts error:", err) return nil diff --git a/model/rank.go b/model/rank.go index d712a29..7fcdd75 100644 --- a/model/rank.go +++ b/model/rank.go @@ -316,3 +316,17 @@ func FindPlayerPermitList(args *FindPlayerPermitListArgs) (*FindPlayerPermitList } return ret, nil } + +func SaveRankInvite(args *RankInvite) error { + if rpcCli == nil { + logger.Logger.Error("model.SaveRankInvite rpcCli == nil") + return nil + } + var ret bool + err := rpcCli.CallWithTimeout("RankInviteSvc.SaveRankInvite", args, &ret, time.Second*30) + if err != nil { + logger.Logger.Error("SaveRankInvite error:", err) + return err + } + return nil +} diff --git a/ranksrv/rank/invitelog.go b/ranksrv/rank/invitelog.go index 88d7e0a..71fae8a 100644 --- a/ranksrv/rank/invitelog.go +++ b/ranksrv/rank/invitelog.go @@ -1,10 +1,14 @@ package rank import ( - "mongo.games.com/goserver/core/logger" - + "math/rand" + "mongo.games.com/game/common" "mongo.games.com/game/model" "mongo.games.com/game/ranksrv/com" + "mongo.games.com/goserver/core/basic" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/task" + "time" ) var InviteLogMgrInstance = com.NewListMgr[*model.InviteInfo]( @@ -20,3 +24,42 @@ var InviteLogMgrInstance = com.NewListMgr[*model.InviteInfo]( } return ret, nil }) + +func RobotRandon() { + //机器人随机 + robotNum := rand.Intn(21) + 10 + logger.Logger.Tracef("随机到的机器人数量:%d", robotNum) + accounts := model.GetRobotAccounts(200) + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + for i := 0; i < robotNum; i++ { + //随机机器人 + snId := accounts[rand.Intn(len(accounts))].SnId + logger.Logger.Trace("随机到的机器人snid:%d", snId) + data := model.RankInvite{ + Platform: "1", + SnId: snId, + Num: int64(rand.Intn(4) + 2), + Score: int64(rand.Intn(901) + 100), + Ts: time.Now().Unix(), + Week: common.GetWeekStartTs(time.Now().Unix()), + } + logger.Logger.Tracef("机器人邀请数据:%+v", data) + err := model.SaveRankInvite(&data) + if err != nil { + logger.Logger.Error("SaveRankInviteTask error %v", err) + return err + } + } + return nil + }), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) { + InviteLogMgrInstance.UpdateCache("1", 2) + })).StartByFixExecutor("SaveRankInviteTask") +} +func init() { + common.RegisterClockFunc(&common.ClockFunc{ + OnDayTimerFunc: func() { + RobotRandon() + logger.Logger.Trace("0点机器人随机完成邀请积分排行榜!!!!!") + }, + }) +}