整理 优化

This commit is contained in:
meixiongfeng 2022-11-11 17:35:52 +08:00
parent f512a18dac
commit ebf65a0c2a
7 changed files with 71 additions and 37 deletions

View File

@ -35,7 +35,7 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.PagodaRankListR
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())
)
if req.FloorId == 0 {
rd = pipe.ZRange("pagodaSeasonRank"+strconv.Itoa(int(req.FloorId)), 0, 50)
rd = pipe.ZRange("pagodaSeasonRank", 0, 50)
} else {
rd = pipe.ZRange("pagodaList"+strconv.Itoa(int(req.FloorId)), 0, 50)
}

View File

@ -169,18 +169,15 @@ func (this *configureComp) GetPassCheckByID(id int32) *cfg.GamePassCheckData {
}
// 获取
func (this *configureComp) GetPagodaSeasonReward() [][]int32 {
rank := make([][]int32, 0)
func (this *configureComp) GetPagodaSeasonReward() []*cfg.GamePagodaSeasonRewardData {
if v, err := this.GetConfigure(game_pagodaseasonreward); err == nil {
var (
configure *cfg.GamePagodaSeasonReward
ok bool
)
if configure, ok = v.(*cfg.GamePagodaSeasonReward); ok {
for _, v := range configure.GetDataList() {
rank = append(rank, v.Ranking)
}
return rank
return configure.GetDataList()
}
}
return nil

View File

@ -248,14 +248,19 @@ func (this *ModelRank) seasonSettlement() {
if list == nil {
return
}
rankReward := this.modulePagoda.configure.GetPagodaSeasonReward()
if rankReward == nil {
return
}
if !db.IsCross() {
if conn, err := db.Cross(); err == nil {
var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())
//Items []*pb.UserAssets
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())
Items []*pb.UserAssets
)
rd := pipe.ZRange("pagodaSeasonRank0", 0, 50)
rd := pipe.ZRange("pagodaSeasonRank", 0, 50)
if _, err = pipe.Exec(); err != nil {
this.modulePagoda.Errorln(err)
@ -263,20 +268,27 @@ func (this *ModelRank) seasonSettlement() {
}
uids := rd.Val()
if len(uids) > 0 {
//Items = make([]*pb.UserAssets, 0) //TO 排名配置
// for i, v := range v.RankReward {
// Items[i] = &pb.UserAssets{
// A: v.A,
// T: v.T,
// N: v.N,
// }
// }
//发邮件
// this.modulePagoda.mail.SendNewMail(&pb.DBMailData{
// CreateTime: uint64(configure.Now().Unix()),
// Items: Items,
// }, uids...)
for index, uid := range uids {
Items = make([]*pb.UserAssets, 0) //TO 排名配置
for _, v := range rankReward {
if len(v.Ranking) != 2 {
continue
}
if index >= int(v.Ranking[0]) && index <= int(v.Ranking[1]) {
for _, v1 := range v.Reward {
Items = append(Items, &pb.UserAssets{
A: v1.A,
T: v1.T,
N: v1.N,
})
}
this.modulePagoda.mail.SendNewMail(&pb.DBMailData{
CreateTime: uint64(configure.Now().Unix()),
Items: Items,
}, uid)
break
}
}
}
}
}

View File

@ -24,7 +24,7 @@ type Pagoda struct {
configure *configureComp
battle comm.IBattle
service base.IRPCXService
//mail comm.Imail
mail comm.Imail
}
func NewModule() core.IModule {
@ -73,11 +73,14 @@ func (this *Pagoda) Start() (err error) {
if module, err = this.service.GetModule(comm.ModuleBattle); err != nil {
return
}
// if module, err = this.service.GetModule(comm.ModuleMail); err != nil {
// return
// }
//this.mail = module.(comm.Imail)
this.battle = module.(comm.IBattle)
if module, err = this.service.GetModule(comm.ModuleMail); err != nil {
return
}
this.mail = module.(comm.Imail)
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSeasonPagodaReward), this.Rpc_ModuleSeasonPagodaReward)
return
}

View File

@ -23,7 +23,7 @@ type Timer struct {
cbase.ModuleBase
options *Options
service base.IRPCXService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口
rank *PagodaRank
//rank *PagodaRank
rank2 *VikingRank
rank3 *HuntingRank
chat *ChatComp //俩天系统定时任务
@ -59,7 +59,7 @@ func (this *Timer) Start() (err error) {
func (this *Timer) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.rank = this.RegisterComp(new(PagodaRank)).(*PagodaRank)
//this.rank = this.RegisterComp(new(PagodaRank)).(*PagodaRank)
this.rank2 = this.RegisterComp(new(VikingRank)).(*VikingRank)
this.rank3 = this.RegisterComp(new(HuntingRank)).(*HuntingRank)
this.chat = this.RegisterComp(new(ChatComp)).(*ChatComp)

View File

@ -8,7 +8,6 @@ import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/core/cbase"
"go_dreamfactory/lego/sys/cron"
"go_dreamfactory/lego/sys/log"
"go.mongodb.org/mongo-driver/bson"
@ -34,11 +33,8 @@ func (this *PagodaRank) Init(service core.IService, module core.IModule, comp co
func (this *PagodaRank) Start() (err error) {
err = this.MCompModel.Start()
cron.AddFunc("*/60 * * * * ?", this.TimerPagoda) //每60s执行一次
cron.AddFunc("*/60 * * * * ?", this.TimerSeason) //每60s执行一次
//cron.AddFunc("*/60 * * * * ?", this.TimerPagoda) //每60s执行一次
//cron.AddFunc("*/60 * * * * ?", this.TimerSeason) //每60s执行一次
return
}

View File

@ -9,6 +9,7 @@ import (
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db"
"time"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
@ -53,11 +54,36 @@ func (this *SeasonPagoda) Init(service core.IService, module core.IModule, comp
func (this *SeasonPagoda) Start() (err error) {
err = this.MCompModel.Start()
err = this.MCompConfigure.Start()
configure.RegisterConfigure(game_seasonloop, cfg.NewGameSeasonLoop, nil)
configure.RegisterConfigure(game_seasonreward, cfg.NewGamePagodaSeasonReward, nil)
cron.AddFunc("0 0 23 L * ?", this.TimerSeasonOver) //每月最后一天23点执行一次
cron.AddFunc("0 0 5 /* * ?", this.TimerSeasonStar) //每月第一天5点执行一次
conn, err := db.Cross()
if err == nil {
model := db.NewDBModel(comm.TableServerData, 0, conn)
_len, err1 := model.DB.CountDocuments(comm.TableServerData, bson.M{})
if err1 == nil && _len == 0 {
fmt.Printf("%v,%v", _len, err1)
server := &pb.DBServerData{
Id: primitive.NewObjectID().Hex(),
ServerState: 1,
DisposableLoop: 1,
FixedLoop: 0,
SeasonType: 201,
OpenTime: time.Now().Unix(),
}
conf := this.GetSeasonLoop(comm.SeasonType)
if len(conf.DisposableLoop) > 0 {
server.SeasonType = conf.DisposableLoop[0]
}
model.DB.InsertOne(comm.TableServerData, server)
}
}
return
}
func (this *SeasonPagoda) CreatTestData(index int) {