diff --git a/bin/json/game_msgdistrib.json b/bin/json/game_msgdistrib.json index f90536e92..d4ea76737 100644 --- a/bin/json/game_msgdistrib.json +++ b/bin/json/game_msgdistrib.json @@ -322,5 +322,11 @@ "open": true, "routrules": "~/worker", "describe": "公会活跃度列表" + }, + { + "msgid": "viking.ranklist", + "open": true, + "routrules": "~/worker", + "describe": "维京排行榜数据" } ] \ No newline at end of file diff --git a/modules/gourmet/api_getlist.go b/modules/gourmet/api_getlist.go index 036597893..4d61f3d9c 100644 --- a/modules/gourmet/api_getlist.go +++ b/modules/gourmet/api_getlist.go @@ -3,7 +3,6 @@ package gourmet import ( "go_dreamfactory/comm" "go_dreamfactory/pb" - "go_dreamfactory/sys/configure" "google.golang.org/protobuf/proto" ) @@ -26,9 +25,7 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.GourmetGetListRe code = pb.ErrorCode_DBError return } - if _gourmet.Ctime == 0 { - _gourmet.Ctime = configure.Now().Unix() - } + // 计算订单信息 this.module.modelGourmet.CalculationGourmet(session.GetUserId(), _gourmet) session.SendMsg(string(this.module.GetType()), GourmetGetListResp, &pb.GourmetGetListResp{Data: _gourmet}) diff --git a/modules/gourmet/model_gourmet.go b/modules/gourmet/model_gourmet.go index e432ce005..b82470c66 100644 --- a/modules/gourmet/model_gourmet.go +++ b/modules/gourmet/model_gourmet.go @@ -93,9 +93,9 @@ func (this *modelGourmet) CalculationGourmet(uid string, gourmet *pb.DBGourmet) szTime[k] = _time } if gourmet.CookingFood != nil && gourmet.CookingFood.ETime > 0 { - zeroTime = utils.GetZeroTime(gourmet.CookingFood.STime) // 获取订单开始时间当天的0点 + zeroTime = utils.GetZeroTime(gourmet.CookingFood.STime) // 获取订单开始时间当天的0点 costTime = int32(configure.Now().Unix() - gourmet.CookingFood.ETime) // 当前过去的时间 - if costTime < 0 { // 没有完成 不做处理 + if costTime < 0 { // 没有完成 不做处理 return } } @@ -148,7 +148,7 @@ func (this *modelGourmet) CalculationGourmet(uid string, gourmet *pb.DBGourmet) bCooking = true // 记录下订单时间 - gourmet.Ctime = configure.Now().Unix() + gourmet.Ctime = gourmet.CookingFood.ETime mapData["ctime"] = gourmet.Ctime break } diff --git a/modules/viking/api_challengeover.go b/modules/viking/api_challengeover.go index e91fa32e7..ace06c603 100644 --- a/modules/viking/api_challengeover.go +++ b/modules/viking/api_challengeover.go @@ -5,7 +5,9 @@ import ( "go_dreamfactory/pb" "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" + "go_dreamfactory/sys/db" "strconv" + "time" "go.mongodb.org/mongo-driver/bson/primitive" "google.golang.org/protobuf/proto" @@ -121,7 +123,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal mapRankData["Leadpos"] = Leadpos mapRankData["line"] = szLine mapRankData["costTime"] = costTime - this.module.modulerank.ChangeUserRank(session.GetUserId(), v.Id, mapRankData) + conn_, _ := db.Cross() + dbModel := db.NewDBModel(comm.TableVikingRank, time.Hour, conn_) + dbModel.ChangeList(session.GetUserId(), v.Id, mapRankData) objID = v.Id bFind = true break @@ -142,7 +146,9 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal CostTime: costTime, } objID = new.Id - this.module.modulerank.AddRankList(session.GetUserId(), new.Id, new) + conn_, _ := db.Cross() + dbModel := db.NewDBModel(comm.TableVikingRank, time.Hour, conn_) + dbModel.AddList(session.GetUserId(), new.Id, new) } this.module.modulerank.SetRankListData("vikingRank"+strconv.Itoa(int(req.BossId)), req.Difficulty<<16+costTime, objID) } diff --git a/modules/viking/api_ranklist.go b/modules/viking/api_ranklist.go index 14d4bbd1e..91bb7687a 100644 --- a/modules/viking/api_ranklist.go +++ b/modules/viking/api_ranklist.go @@ -5,7 +5,6 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/redis/pipe" "go_dreamfactory/pb" - "go_dreamfactory/sys/db" "strconv" "github.com/go-redis/redis/v8" @@ -29,28 +28,25 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.VikingRankListR if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } + if !req.Friend { - if !this.module.IsCross() { - if conn, err := db.Local(); err == nil { - var ( - pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO()) - ) + var ( + pipe *pipe.RedisPipe = this.module.modelViking.Redis.RedisPipe(context.TODO()) + ) + rd = pipe.ZRange("vikingRank"+strconv.Itoa(int(req.BoosType)), 0, -1) - rd = pipe.ZRange("vikingRank"+strconv.Itoa(int(req.BoosType)), 0, -1) - - if _, err = pipe.Exec(); err != nil { - this.module.Errorln(err) - return - } - _dataList := rd.Val() - for _, v := range _dataList { - result := &pb.DBVikingRank{} - if err = this.module.modulerank.GetListObj(session.GetUserId(), v, result); err == nil { - szRank = append(szRank, result) - } - } + if _, err := pipe.Exec(); err != nil { + this.module.Errorln(err) + return + } + _dataList := rd.Val() + for _, v := range _dataList { + result := &pb.DBVikingRank{} + if err := this.module.modulerank.GetListObj(session.GetUserId(), v, result); err == nil { + szRank = append(szRank, result) } } + } else { uids := this.friend.GetFriendList(session.GetUserId()) for _, id := range uids { diff --git a/modules/viking/model_rank.go b/modules/viking/model_rank.go index 3feda53cf..6b7bd52f0 100644 --- a/modules/viking/model_rank.go +++ b/modules/viking/model_rank.go @@ -7,6 +7,7 @@ import ( "go_dreamfactory/lego/sys/redis/pipe" "go_dreamfactory/modules" "go_dreamfactory/pb" + "go_dreamfactory/sys/db" "github.com/go-redis/redis/v8" ) @@ -61,24 +62,28 @@ func (this *ModelRank) getVikingRankListByBossType(uid string, bossType int32) * return nil } +// 排行数据写跨服 func (this *ModelRank) SetRankListData(tableName string, score int32, uid string) { + if !db.IsCross() { + if conn, err := db.Cross(); err == nil { + var ( + pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO()) + menbers *redis.Z + ) - var ( - pipe *pipe.RedisPipe = this.DBModel.Redis.RedisPipe(context.TODO()) - menbers *redis.Z - ) + menbers = &redis.Z{Score: float64(score), Member: uid} - menbers = &redis.Z{Score: float64(score), Member: uid} + if cmd := pipe.ZAdd(tableName, menbers); cmd != nil { - if cmd := pipe.ZAdd(tableName, menbers); cmd != nil { - - dock, err1 := cmd.Result() - if err1 != nil { - this.moduleViking.Errorln(dock, err1) + dock, err1 := cmd.Result() + if err1 != nil { + this.moduleViking.Errorln(dock, err1) + } + } + if _, err := pipe.Exec(); err != nil { + this.moduleViking.Errorln(err) + return + } } } - if _, err := pipe.Exec(); err != nil { - this.moduleViking.Errorln(err) - return - } }