From 6c3eae319fc5b437312ee037b3d3fe0f1d956676 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 13 Oct 2022 15:19:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=9C=88=E4=B9=8B=E7=A7=98?= =?UTF-8?q?=E5=A2=83bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/modulebase.go | 1 - modules/moonfantasy/api_buy.go | 40 +++++++++-- modules/moonfantasy/api_getlist.go | 1 + modules/moonfantasy/configure.go | 6 +- modules/moonfantasy/modelDream.go | 10 +-- pb/moonfantasy_msg.pb.go | 109 ++++++++++++++++------------- sys/db/dbconn.go | 12 +++- 7 files changed, 114 insertions(+), 65 deletions(-) diff --git a/modules/modulebase.go b/modules/modulebase.go index 201b2775e..f94ba455d 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -316,7 +316,6 @@ func (this *ModuleBase) GetDBNodule(session comm.IUserSession, tableName string, if conn, err = db.Local(); err != nil { return } - return } else { if conn, err = db.ServerDBConn(session.GetServiecTag()); err != nil { return diff --git a/modules/moonfantasy/api_buy.go b/modules/moonfantasy/api_buy.go index 96e22fab7..d570051fb 100644 --- a/modules/moonfantasy/api_buy.go +++ b/modules/moonfantasy/api_buy.go @@ -2,7 +2,9 @@ package moonfantasy import ( "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" "google.golang.org/protobuf/proto" ) @@ -17,13 +19,41 @@ func (this *apiComp) BuyCheck(session comm.IUserSession, req *pb.MoonfantasyBuyR ///询问怪物是否可以挑战 func (this *apiComp) Buy(session comm.IUserSession, req *pb.MoonfantasyBuyReq) (code pb.ErrorCode, data proto.Message) { - var () - defer func() { - session.SendMsg(string(this.module.GetType()), "ask", &pb.MoonfantasyBuyResp{Issucc: true}) - }() + var ( + umfantasy *pb.DBUserMFantasy + challengeD *cfg.GameDreamlandChallengeData + need []*cfg.Gameatn + err error + ) if code = this.BuyCheck(session, req); code != pb.ErrorCode_Success { return } - + if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil && err != mgo.MongodbNil { + code = pb.ErrorCode_CacheReadError + return + } + need = make([]*cfg.Gameatn, 0) + for i := int32(0); i < req.BuyNum; i++ { + if challengeD, err = this.module.configure.GetchallengeData(umfantasy.BuyNum + i); err != nil { + code = pb.ErrorCode_ConfigNoFound + return + } + if challengeD == nil { + code = pb.ErrorCode_ConfigNoFound + return + } + need = append(need, challengeD.Need...) + } + + if code = this.module.ConsumeRes(session, need, true); code != pb.ErrorCode_Success { + return + } + umfantasy.BuyNum += req.BuyNum + umfantasy.BattleNum += req.BuyNum + this.module.modelUserMF.Change(session.GetUserId(), map[string]interface{}{ + "buyNum": umfantasy.BuyNum, + "battleNum": umfantasy.BattleNum, + }) + session.SendMsg(string(this.module.GetType()), "buy", &pb.MoonfantasyBuyResp{Issucc: true, BattleNum: umfantasy.BattleNum}) return } diff --git a/modules/moonfantasy/api_getlist.go b/modules/moonfantasy/api_getlist.go index 8ea4cd3bc..f9385b44a 100644 --- a/modules/moonfantasy/api_getlist.go +++ b/modules/moonfantasy/api_getlist.go @@ -31,6 +31,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.MoonfantasyGetLi session.SendMsg(string(this.module.GetType()), "getlist", &pb.MoonfantasyGetListResp{ BattleNum: umfantasy.BattleNum, + BuyNum: umfantasy.BuyNum, Dfantasys: mfantasys, }) return diff --git a/modules/moonfantasy/configure.go b/modules/moonfantasy/configure.go index 939482f44..3ed6e46ba 100644 --- a/modules/moonfantasy/configure.go +++ b/modules/moonfantasy/configure.go @@ -78,7 +78,7 @@ func (this *configureComp) GettriggerData(ptypes int32) (result *cfg.GameDreamla v interface{} ok bool ) - if v, err = this.GetConfigure(game_dreamlandboos); err != nil { + if v, err = this.GetConfigure(game_dreamlandtrigger); err != nil { this.module.Errorln(err) return } else { @@ -91,12 +91,12 @@ func (this *configureComp) GettriggerData(ptypes int32) (result *cfg.GameDreamla return } -///获取月之秘境触发配置表 +///获取月之秘境触购买表 func (this *configureComp) GetchallengeData(buynum int32) (result *cfg.GameDreamlandChallengeData, err error) { var ( v interface{} ) - if v, err = this.GetConfigure(game_dreamlandboos); err != nil { + if v, err = this.GetConfigure(game_dreamlandchallenge); err != nil { this.module.Errorln(err) return } else { diff --git a/modules/moonfantasy/modelDream.go b/modules/moonfantasy/modelDream.go index 3b8316236..b8a410181 100644 --- a/modules/moonfantasy/modelDream.go +++ b/modules/moonfantasy/modelDream.go @@ -89,6 +89,10 @@ func (this *modelDreamComp) trigger(session comm.IUserSession, source *pb.Battle ) globalconf = this.module.configure.GetGlobalConf() + if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil { + return + } + if time.Unix(umfantasy.LastTrigger, 0).Day() != time.Now().Day() { umfantasy.TriggerNum = 0 umfantasy.LastTrigger = time.Now().Unix() @@ -100,7 +104,7 @@ func (this *modelDreamComp) trigger(session comm.IUserSession, source *pb.Battle if umfantasy.TriggerNum >= globalconf.DreamlandTriggernum { return } - + umfantasy.TriggerNum++ if boss, err = this.module.configure.GetMonster(); err != nil { this.module.Errorln(err) return @@ -109,9 +113,7 @@ func (this *modelDreamComp) trigger(session comm.IUserSession, source *pb.Battle this.module.Errorf("no found uer:%d", session.GetUserId()) return } - if umfantasy, err = this.module.modelUserMF.queryUsermfantasy(session.GetUserId()); err != nil { - return - } + if mdata, err = this.module.modelDream.addDreamData(&pb.UserInfo{Uid: user.Uid, Name: user.Name, Avatar: user.Avatar}, boss); err != nil { return } diff --git a/pb/moonfantasy_msg.pb.go b/pb/moonfantasy_msg.pb.go index cc5a57674..d7a564575 100644 --- a/pb/moonfantasy_msg.pb.go +++ b/pb/moonfantasy_msg.pb.go @@ -65,8 +65,9 @@ type MoonfantasyGetListResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BattleNum int32 `protobuf:"varint,1,opt,name=battleNum,proto3" json:"battleNum"` - Dfantasys []*DBMoonFantasy `protobuf:"bytes,2,rep,name=dfantasys,proto3" json:"dfantasys"` //秘境列表 + BattleNum int32 `protobuf:"varint,1,opt,name=battleNum,proto3" json:"battleNum"` //剩余挑战次数 + BuyNum int32 `protobuf:"varint,2,opt,name=buyNum,proto3" json:"buyNum"` //已购买次数 + Dfantasys []*DBMoonFantasy `protobuf:"bytes,3,rep,name=dfantasys,proto3" json:"dfantasys"` //秘境列表 } func (x *MoonfantasyGetListResp) Reset() { @@ -108,6 +109,13 @@ func (x *MoonfantasyGetListResp) GetBattleNum() int32 { return 0 } +func (x *MoonfantasyGetListResp) GetBuyNum() int32 { + if x != nil { + return x.BuyNum + } + return 0 +} + func (x *MoonfantasyGetListResp) GetDfantasys() []*DBMoonFantasy { if x != nil { return x.Dfantasys @@ -636,58 +644,59 @@ var file_moonfantasy_moonfantasy_msg_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x47, 0x65, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x64, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x7c, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x75, 0x6d, - 0x12, 0x2c, 0x0a, 0x09, 0x64, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x4d, 0x6f, 0x6f, 0x6e, 0x46, 0x61, 0x6e, 0x74, - 0x61, 0x73, 0x79, 0x52, 0x09, 0x64, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x73, 0x22, 0x5c, - 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, - 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x11, - 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x41, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x12, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, - 0x73, 0x79, 0x41, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x4d, 0x6f, 0x6f, 0x6e, - 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x5c, 0x0a, - 0x14, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, - 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0x6a, 0x0a, 0x15, 0x4d, - 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x62, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, - 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x30, 0x0a, 0x16, 0x4d, - 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x2b, 0x0a, - 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x75, 0x79, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x22, 0x4a, 0x0a, 0x12, 0x4d, 0x6f, - 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x62, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x09, 0x64, 0x66, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, + 0x4d, 0x6f, 0x6f, 0x6e, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x52, 0x09, 0x64, 0x66, 0x61, + 0x6e, 0x74, 0x61, 0x73, 0x79, 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, + 0x6e, 0x74, 0x61, 0x73, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, + 0x6e, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, + 0x73, 0x74, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, + 0x61, 0x73, 0x79, 0x41, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x12, 0x4d, + 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x41, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x22, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x44, 0x42, 0x4d, 0x6f, 0x6f, 0x6e, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x52, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x5c, 0x0a, 0x14, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, + 0x6d, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, + 0x69, 0x64, 0x73, 0x22, 0x6a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, + 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x1f, + 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, + 0x62, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x22, 0x30, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, + 0x73, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x2b, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x75, + 0x79, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x42, 0x75, 0x79, 0x4e, + 0x75, 0x6d, 0x22, 0x4a, 0x0a, 0x12, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, + 0x79, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, + 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, + 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/sys/db/dbconn.go b/sys/db/dbconn.go index 6a3bfd493..fa31e6c12 100644 --- a/sys/db/dbconn.go +++ b/sys/db/dbconn.go @@ -382,7 +382,7 @@ func (this *DBModel) Gets(ids []string, data interface{}, opt ...DBOption) (err } if _, err = pipe.Exec(); err == nil { for i, v := range result { - if tempdata, err = v.Result(); err == nil { + if tempdata, err = v.Result(); err == nil && len(tempdata) > 0 { sliceType.UnsafeGrow(dptr, n+1) elemPtr = sliceType.UnsafeGetIndex(dptr, n) if *((*unsafe.Pointer)(elemPtr)) == nil { @@ -404,10 +404,14 @@ func (this *DBModel) Gets(ids []string, data interface{}, opt ...DBOption) (err onfound = ids } - if err == lgredis.RedisNil { + if len(onfound) > 0 { if c, err = this.DB.Find(core.SqlTable(this.TableName), bson.M{"_id": bson.M{"$in": onfound}}); err != nil { return err } else { + if encoder, ok = codec.EncoderOf(sliceelemType, defconf).(codecore.IEncoderMapJson); !ok { + err = fmt.Errorf("MCompModel: GetList(data not support UnMarshalMapJson %T)", data) + return + } pipe := this.Redis.RedisPipe(context.TODO()) for c.Next(context.Background()) { _id := c.Current.Lookup("_id").StringValue() @@ -794,6 +798,10 @@ func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (er if c, err = this.DB.Find(core.SqlTable(this.TableName), bson.M{"_id": bson.M{"$in": ids}}); err != nil { return err } else { + if encoder, ok = codec.EncoderOf(sliceelemType, defconf).(codecore.IEncoderMapJson); !ok { + err = fmt.Errorf("MCompModel: GetList(data not support UnMarshalMapJson %T)", data) + return + } pipe := this.Redis.RedisPipe(context.TODO()) for c.Next(context.Background()) { _id := c.Current.Lookup("_id").StringValue()