爬塔测试

This commit is contained in:
meixiongfeng 2022-08-18 18:23:40 +08:00
parent 121e7c94d2
commit 3c3b0743bb
7 changed files with 136 additions and 24 deletions

View File

@ -9,6 +9,7 @@ const (
PagodaGetListResp = "getlist" PagodaGetListResp = "getlist"
PagodaChallengeResp = "challenge" PagodaChallengeResp = "challenge"
PagodaGetRewardResp = "getreward" PagodaGetRewardResp = "getreward"
PagodaRankListResp = "ranklist"
) )
type apiComp struct { type apiComp struct {
@ -21,6 +22,7 @@ type apiComp struct {
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompGate.Init(service, module, comp, options) err = this.MCompGate.Init(service, module, comp, options)
this.module = module.(*Pagoda) this.module = module.(*Pagoda)
this.service = service this.service = service
return return
} }

View File

@ -4,6 +4,7 @@ import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
@ -28,26 +29,48 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.PagodaChalleng
code = pb.ErrorCode_PagodaNotFound code = pb.ErrorCode_PagodaNotFound
return return
} }
req.PagodaType = 101
cfg := this.module.configure.GetPagodaConfigData(req.PagodaType, req.LevelID) cfg := this.module.configure.GetPagodaConfigData(req.PagodaType, req.LevelID)
if cfg == nil { if cfg == nil {
code = pb.ErrorCode_PagodaNotFound code = pb.ErrorCode_PagodaNotFound
return return
} }
if cfg.LayerNum != pagoda.PagodaId { if pagoda.Type == cfg.PagodaType && cfg.LayerNum != pagoda.PagodaId {
code = pb.ErrorCode_PagodaLevlErr // 挑战关卡数据不匹配 code = pb.ErrorCode_PagodaLevlErr // 挑战关卡数据不匹配
return return
} }
//// todo 战斗相关 //// todo 战斗相关
mapData := make(map[string]interface{}, 0)
if pagoda.Type != cfg.PagodaType {
pagoda.Type = cfg.PagodaType
mapData["type"] = pagoda.Type
}
pagoda.Type = req.PagodaType
pagoda.PagodaId = cfg.NextLevel // 更新层数 /////
rst, _ := this.module.modulerank.GetUserRandData(session.GetUserId())
if rst.Uid == "" {
rst.Uid = session.GetUserId()
rst.Id = primitive.NewObjectID().Hex()
rst.Type = req.PagodaType
rst.Nickname = "123"
rst.PagodaId = pagoda.PagodaId
this.module.modulerank.AddRank(session.GetUserId(), rst)
} else {
mapData := make(map[string]interface{}, 0)
mapData["pagodaId"] = pagoda.PagodaId
mapData["type"] = pagoda.Type
this.module.modulerank.ChangeUserRank(session.GetUserId(), mapData)
}
/////
// 通关奖励 // 通关奖励
code = this.module.DispenseRes(session, cfg.Reward, true) code = this.module.DispenseRes(session, cfg.Reward, true)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
mapData := make(map[string]interface{}, 0) pagoda.PagodaId = cfg.NextLevel // 更新层数
mapData["pagodaId"] = cfg.NextLevel mapData["pagodaId"] = cfg.NextLevel
code = this.module.ModifyPagodaData(session.GetUserId(), mapData) code = this.module.ModifyPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.module.GetType()), PagodaChallengeResp, &pb.PagodaChallengeResp{Data: pagoda}) session.SendMsg(string(this.module.GetType()), PagodaChallengeResp, &pb.PagodaChallengeResp{Data: pagoda})

View File

@ -0,0 +1,29 @@
package pagoda
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) RankLisCheck(session comm.IUserSession, req *pb.PagodaRankListReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) RankLis(session comm.IUserSession, req *pb.PagodaRankListReq) (code pb.ErrorCode, data proto.Message) {
code = this.RankLisCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
// 临时测试用
szRank, err := this.module.modulerank.GetRankData(req.FloorId, req.Type)
if err != nil {
code = pb.ErrorCode_DBError
}
session.SendMsg(string(this.module.GetType()), PagodaRankListResp, &pb.PagodaRankListResp{Ranks: szRank})
return
}

View File

@ -47,7 +47,6 @@ func (this *ModelPagoda) modifyPagodaDataByObjId(uid string, data map[string]int
// 创建一个新的塔数据 // 创建一个新的塔数据
func (this *ModelPagoda) addNewPagoda(uId string, data *pb.DBPagoda) (err error) { func (this *ModelPagoda) addNewPagoda(uId string, data *pb.DBPagoda) (err error) {
if err = this.Add(uId, data); err != nil { if err = this.Add(uId, data); err != nil {
this.module.Errorf("err:%v", err) this.module.Errorf("err:%v", err)
return return

View File

@ -1,10 +1,15 @@
package pagoda package pagoda
import ( import (
"context"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/redis"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
) )
type ModelRank struct { type ModelRank struct {
@ -29,20 +34,52 @@ func (this *ModelRank) getUserSession(uid string) (cuser *pb.CacheUser) {
return return
} }
func (this *ModelRank) AddRank(uId string, data *pb.DBPagodaRank) (err error) {
if err = this.Add(uId, data); err != nil {
//this.Errorf("err:%v", err)
return
}
return nil
}
//获取用户通过扩展表 //获取用户通过扩展表
// func (this *ModelRank) GetUserExpand(uid string) (result *pb.DBUserExpand, err error) { func (this *ModelRank) GetUserRandData(uid string) (result *pb.DBPagodaRank, err error) {
// result = &pb.DBUserExpand{} result = &pb.DBPagodaRank{}
// if err = this.moduleUser.modelExpand.Get(uid, result); err != nil && redis.RedisNil != err { if err = this.Get(uid, result); err != nil && redis.RedisNil != err {
// return return
// } }
// err = nil err = nil
// return result, err return result, err
// } }
// func (this *ModelRank) ChangeUserExpand(uid string, value map[string]interface{}) (err error) { func (this *ModelRank) ChangeUserRank(uid string, value map[string]interface{}) (err error) {
// if len(value) == 0 { if len(value) == 0 {
// return nil return nil
// } }
// return this.moduleUser.modelExpand.Change(uid, value) return this.Change(uid, value)
}
// } // 临时测试
func (this *ModelRank) GetRankData(floorId int32, pagodaType int32) (data []*pb.DBPagodaRank, err error) {
if floorId == 0 {
if _data, err := this.DB.Find(comm.TablePagodaRank, bson.M{"type": pagodaType}, options.Find().SetSort(bson.M{"pagodaId": 1})); err == nil {
for _data.Next(context.TODO()) {
temp := &pb.DBPagodaRank{}
if err = _data.Decode(temp); err == nil {
data = append(data, temp)
}
}
}
} else {
if _data, err := this.DB.Find(comm.TablePagodaRank, bson.M{"pagodaId": bson.M{"$gte": floorId}, "type": pagodaType}, options.Find().SetSort(bson.M{"pagodaId": 1})); err == nil {
for _data.Next(context.TODO()) {
temp := &pb.DBPagodaRank{}
if err = _data.Decode(temp); err == nil {
data = append(data, temp)
}
}
}
}
return
}

View File

@ -11,6 +11,7 @@ type Pagoda struct {
modules.ModuleBase modules.ModuleBase
modelPagoda *ModelPagoda modelPagoda *ModelPagoda
api *apiComp api *apiComp
modulerank *ModelRank
configure *configureComp configure *configureComp
} }
@ -32,6 +33,7 @@ func (this *Pagoda) OnInstallComp() {
this.ModuleBase.OnInstallComp() this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelPagoda = this.RegisterComp(new(ModelPagoda)).(*ModelPagoda) this.modelPagoda = this.RegisterComp(new(ModelPagoda)).(*ModelPagoda)
this.modulerank = this.RegisterComp(new(ModelRank)).(*ModelRank)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
} }

View File

@ -310,6 +310,9 @@ type PagodaRankListReq struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
FloorId int32 `protobuf:"varint,1,opt,name=floorId,proto3" json:"floorId"` // 层数
Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type"` // 塔类型
} }
func (x *PagodaRankListReq) Reset() { func (x *PagodaRankListReq) Reset() {
@ -344,6 +347,20 @@ func (*PagodaRankListReq) Descriptor() ([]byte, []int) {
return file_pagoda_pagoda_msg_proto_rawDescGZIP(), []int{6} return file_pagoda_pagoda_msg_proto_rawDescGZIP(), []int{6}
} }
func (x *PagodaRankListReq) GetFloorId() int32 {
if x != nil {
return x.FloorId
}
return 0
}
func (x *PagodaRankListReq) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
type PagodaRankListResp struct { type PagodaRankListResp struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -415,13 +432,16 @@ var file_pagoda_pagoda_msg_proto_rawDesc = []byte{
0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43,
0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04,
0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x50, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x50,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x13, 0x0a, 0x11, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x41, 0x0a, 0x11, 0x50,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
0x22, 0x39, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x52, 0x07, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x39,
0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x61,
0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (