From 0e38efe9d35636ae36238c198870857c7f0a935c Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 26 Jul 2022 13:57:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E4=BA=8B=E4=BB=B6=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E3=80=82=E7=A6=BB=E7=BA=BF=E6=B8=85=E9=99=A4=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E7=BC=93=E5=AD=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comp_model.go | 13 +++++ modules/hero/model_hero.go | 12 +++++ modules/hero/module.go | 13 +++++ pb/userrecord.pb.go | 108 ++++++++++++++++++------------------- 4 files changed, 92 insertions(+), 54 deletions(-) diff --git a/modules/comp_model.go b/modules/comp_model.go index c4d6c90b3..7bfc2bd80 100644 --- a/modules/comp_model.go +++ b/modules/comp_model.go @@ -488,6 +488,19 @@ func (this *MCompModel) DelListlds(uid string, ids ...string) (err error) { return } +// 清除玩家英雄缓存信息 +func (this *MCompModel) ClearnHeroCache(uid string, ids ...string) (err error) { + listkey := this.ukey(uid) + for _, v := range ids { + key := this.ukeylist(uid, v) + if err = this.Redis.Delete(key); err != nil { + return + } + } + err = this.Redis.HDel(listkey, ids...) + return +} + //获取用户通过扩展表 func (this *MCompModel) GetUserExpand(uid string) (result *pb.DBUserExpand, err error) { result = &pb.DBUserExpand{} diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 2cf038397..066e4f31f 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -511,3 +511,15 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe } return } + +// 玩家离线 清除缓存 +func (this *ModelHero) RemoveUserHeroInfo(session comm.IUserSession) (err error) { + + userList := this.moduleHero.GetHeroList(session.GetUserId()) + for _, v := range userList { + if err := this.moduleHero.modelHero.ClearnHeroCache(session.GetUserId(), v.Id); err != nil { + this.moduleHero.Errorf("cleanData err:%v", err) + } + } + return +} diff --git a/modules/hero/module.go b/modules/hero/module.go index 2bc6727e5..833bcc8a3 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -3,6 +3,7 @@ package hero import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/event" "go_dreamfactory/modules" "go_dreamfactory/pb" ) @@ -36,6 +37,12 @@ func (this *Hero) OnInstallComp() { this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.modelHero = this.RegisterComp(new(ModelHero)).(*ModelHero) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) + +} +func (this *Hero) Start() (err error) { + err = this.ModuleBase.Start() + event.RegisterGO(comm.EventUserOffline, this.EventUserOffline) + return } //创建新英雄 @@ -119,3 +126,9 @@ func (this *Hero) DelCard(udi string, hero *pb.DBHero, amount int32) (code pb.Er func (this *Hero) CleanData(uid string) { this.modelHero.cleanData(uid) } + +//Event-------------------------------------------------------------------------------------------------玩家离线 +func (this *Hero) EventUserOffline(session comm.IUserSession) { + err := this.modelHero.RemoveUserHeroInfo(session) + this.Debugf("EventUserOffline:%s err:%v", session, err) +} diff --git a/pb/userrecord.pb.go b/pb/userrecord.pb.go index b82da2b37..286d69329 100644 --- a/pb/userrecord.pb.go +++ b/pb/userrecord.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.0 // protoc v3.20.0 -// source: userrecord.proto +// source: hero/userrecord.proto package pb @@ -32,7 +32,7 @@ type Floor struct { func (x *Floor) Reset() { *x = Floor{} if protoimpl.UnsafeEnabled { - mi := &file_userrecord_proto_msgTypes[0] + mi := &file_hero_userrecord_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +45,7 @@ func (x *Floor) String() string { func (*Floor) ProtoMessage() {} func (x *Floor) ProtoReflect() protoreflect.Message { - mi := &file_userrecord_proto_msgTypes[0] + mi := &file_hero_userrecord_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +58,7 @@ func (x *Floor) ProtoReflect() protoreflect.Message { // Deprecated: Use Floor.ProtoReflect.Descriptor instead. func (*Floor) Descriptor() ([]byte, []int) { - return file_userrecord_proto_rawDescGZIP(), []int{0} + return file_hero_userrecord_proto_rawDescGZIP(), []int{0} } func (x *Floor) GetH4() int32 { @@ -96,7 +96,7 @@ type DBUserRecord struct { func (x *DBUserRecord) Reset() { *x = DBUserRecord{} if protoimpl.UnsafeEnabled { - mi := &file_userrecord_proto_msgTypes[1] + mi := &file_hero_userrecord_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -109,7 +109,7 @@ func (x *DBUserRecord) String() string { func (*DBUserRecord) ProtoMessage() {} func (x *DBUserRecord) ProtoReflect() protoreflect.Message { - mi := &file_userrecord_proto_msgTypes[1] + mi := &file_hero_userrecord_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122,7 +122,7 @@ func (x *DBUserRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use DBUserRecord.ProtoReflect.Descriptor instead. func (*DBUserRecord) Descriptor() ([]byte, []int) { - return file_userrecord_proto_rawDescGZIP(), []int{1} + return file_hero_userrecord_proto_rawDescGZIP(), []int{1} } func (x *DBUserRecord) GetId() string { @@ -195,52 +195,52 @@ func (x *DBUserRecord) GetMtime() int64 { return 0 } -var File_userrecord_proto protoreflect.FileDescriptor +var File_hero_userrecord_proto protoreflect.FileDescriptor -var file_userrecord_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x27, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x68, - 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x34, 0x12, 0x0e, 0x0a, 0x02, 0x68, - 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x35, 0x22, 0x9c, 0x02, 0x0a, 0x0c, - 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, - 0x0a, 0x05, 0x72, 0x61, 0x63, 0x65, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, - 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x30, 0x12, 0x1c, 0x0a, 0x05, - 0x72, 0x61, 0x63, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x6c, - 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x31, 0x12, 0x1c, 0x0a, 0x05, 0x72, 0x61, - 0x63, 0x65, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x6c, 0x6f, 0x6f, - 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x32, 0x12, 0x1c, 0x0a, 0x05, 0x72, 0x61, 0x63, 0x65, - 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, - 0x05, 0x72, 0x61, 0x63, 0x65, 0x33, 0x12, 0x1c, 0x0a, 0x05, 0x72, 0x61, 0x63, 0x65, 0x34, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, - 0x61, 0x63, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x6e, - 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x6e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +var file_hero_userrecord_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x27, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x6f, 0x72, + 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x34, + 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x68, 0x35, + 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x05, 0x72, 0x61, 0x63, 0x65, 0x30, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, + 0x30, 0x12, 0x1c, 0x0a, 0x05, 0x72, 0x61, 0x63, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x06, 0x2e, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x31, 0x12, + 0x1c, 0x0a, 0x05, 0x72, 0x61, 0x63, 0x65, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, + 0x2e, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x32, 0x12, 0x1c, 0x0a, + 0x05, 0x72, 0x61, 0x63, 0x65, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, + 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x33, 0x12, 0x1c, 0x0a, 0x05, 0x72, + 0x61, 0x63, 0x65, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x46, 0x6c, 0x6f, + 0x6f, 0x72, 0x52, 0x05, 0x72, 0x61, 0x63, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x6e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x6e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_userrecord_proto_rawDescOnce sync.Once - file_userrecord_proto_rawDescData = file_userrecord_proto_rawDesc + file_hero_userrecord_proto_rawDescOnce sync.Once + file_hero_userrecord_proto_rawDescData = file_hero_userrecord_proto_rawDesc ) -func file_userrecord_proto_rawDescGZIP() []byte { - file_userrecord_proto_rawDescOnce.Do(func() { - file_userrecord_proto_rawDescData = protoimpl.X.CompressGZIP(file_userrecord_proto_rawDescData) +func file_hero_userrecord_proto_rawDescGZIP() []byte { + file_hero_userrecord_proto_rawDescOnce.Do(func() { + file_hero_userrecord_proto_rawDescData = protoimpl.X.CompressGZIP(file_hero_userrecord_proto_rawDescData) }) - return file_userrecord_proto_rawDescData + return file_hero_userrecord_proto_rawDescData } -var file_userrecord_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_userrecord_proto_goTypes = []interface{}{ +var file_hero_userrecord_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_hero_userrecord_proto_goTypes = []interface{}{ (*Floor)(nil), // 0: Floor (*DBUserRecord)(nil), // 1: DBUserRecord } -var file_userrecord_proto_depIdxs = []int32{ +var file_hero_userrecord_proto_depIdxs = []int32{ 0, // 0: DBUserRecord.race0:type_name -> Floor 0, // 1: DBUserRecord.race1:type_name -> Floor 0, // 2: DBUserRecord.race2:type_name -> Floor @@ -253,13 +253,13 @@ var file_userrecord_proto_depIdxs = []int32{ 0, // [0:5] is the sub-list for field type_name } -func init() { file_userrecord_proto_init() } -func file_userrecord_proto_init() { - if File_userrecord_proto != nil { +func init() { file_hero_userrecord_proto_init() } +func file_hero_userrecord_proto_init() { + if File_hero_userrecord_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_userrecord_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_hero_userrecord_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Floor); i { case 0: return &v.state @@ -271,7 +271,7 @@ func file_userrecord_proto_init() { return nil } } - file_userrecord_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_hero_userrecord_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DBUserRecord); i { case 0: return &v.state @@ -288,18 +288,18 @@ func file_userrecord_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_userrecord_proto_rawDesc, + RawDescriptor: file_hero_userrecord_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_userrecord_proto_goTypes, - DependencyIndexes: file_userrecord_proto_depIdxs, - MessageInfos: file_userrecord_proto_msgTypes, + GoTypes: file_hero_userrecord_proto_goTypes, + DependencyIndexes: file_hero_userrecord_proto_depIdxs, + MessageInfos: file_hero_userrecord_proto_msgTypes, }.Build() - File_userrecord_proto = out.File - file_userrecord_proto_rawDesc = nil - file_userrecord_proto_goTypes = nil - file_userrecord_proto_depIdxs = nil + File_hero_userrecord_proto = out.File + file_hero_userrecord_proto_rawDesc = nil + file_hero_userrecord_proto_goTypes = nil + file_hero_userrecord_proto_depIdxs = nil }