66 lines
1.9 KiB
Go
66 lines
1.9 KiB
Go
package rank
|
||
|
||
import (
|
||
"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](
|
||
func() int64 {
|
||
return 5 // 缓存5秒
|
||
},
|
||
func(platform string, index int32) ([]*model.InviteInfo, error) {
|
||
logger.Logger.Tracef("load invitelog platform:%s snid:%d", platform, index)
|
||
ret, err := model.GetInviteList(platform, index)
|
||
if err != nil {
|
||
logger.Logger.Errorf("load invitelog err:%s", err.Error())
|
||
return nil, err
|
||
}
|
||
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点机器人随机完成邀请积分排行榜!!!!!")
|
||
},
|
||
})
|
||
}
|