Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev

This commit is contained in:
meixiongfeng 2022-08-18 18:25:11 +08:00
commit fd96c61556
6 changed files with 110 additions and 18 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)
} }