Merge remote-tracking branch 'origin/develop' into dev_slots

This commit is contained in:
tomas 2024-10-22 16:03:33 +08:00
commit 2bc052cba2
5 changed files with 81 additions and 5 deletions

View File

@ -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 {

View File

@ -2,6 +2,7 @@ package svc
import (
"errors"
"net/rpc"
"github.com/globalsign/mgo"
"github.com/globalsign/mgo/bson"
@ -52,4 +53,17 @@ 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)
if err == nil {
*ret = true
}
return
}
func init() {
rpc.Register(new(RankInviteSvc))
}

View File

@ -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

View File

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

View File

@ -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,39 @@ var InviteLogMgrInstance = com.NewListMgr[*model.InviteInfo](
}
return ret, nil
})
func RobotRandon() {
//机器人随机
robotNum := rand.Intn(21) + 10
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
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()),
}
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点机器人随机完成")
},
})
}