From 794fe30c216154578c1034883399abd973439881 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 15 Jun 2023 11:34:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=98=9F=E4=BD=9C=E5=9B=BE?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/horoscope/modelhoroscope.go | 21 ++++++-- pb/horoscope_db.pb.go | 25 +++++++--- pb/notify_db.pb.go | 55 +++++++++++++++++++-- pb/notify_msg.pb.go | 77 ++++++++++++++++++++++++----- 4 files changed, 151 insertions(+), 27 deletions(-) diff --git a/modules/horoscope/modelhoroscope.go b/modules/horoscope/modelhoroscope.go index 6d87e66d0..fc0caab9a 100644 --- a/modules/horoscope/modelhoroscope.go +++ b/modules/horoscope/modelhoroscope.go @@ -9,6 +9,10 @@ import ( cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" "math" + + "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/x/bsonx" ) ///星座图 数据组件 @@ -22,21 +26,30 @@ func (this *modelHoroscope) Init(service core.IService, module core.IModule, com this.TableName = comm.TableHoroscope this.MCompModel.Init(service, module, comp, opt) this.module = module.(*Horoscope) + // 通过uid创建索引 + this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ + Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}}, + }) return } //查询用户装备数据 -func (this *modelHoroscope) queryInfo(uId string) (result *pb.DBHoroscope, err error) { +func (this *modelHoroscope) queryInfo(uid string) (result *pb.DBHoroscope, err error) { result = &pb.DBHoroscope{ - Uid: uId, + Uid: uid, Nodes: make(map[int32]int32), } - if err = this.Get(uId, result); err != nil && err != mgo.MongodbNil { + if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil { this.module.Errorln(err) return } if err == mgo.MongodbNil { - err = nil + result = &pb.DBHoroscope{ + Id: primitive.NewObjectID().Hex(), + Uid: uid, + Nodes: make(map[int32]int32), + } + err = this.Add(uid, result) } return } diff --git a/pb/horoscope_db.pb.go b/pb/horoscope_db.pb.go index 68ae775f0..971f435d5 100644 --- a/pb/horoscope_db.pb.go +++ b/pb/horoscope_db.pb.go @@ -26,9 +26,10 @@ type DBHoroscope struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"_id"` - Nodes map[int32]int32 `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //节点信息 key:是节点id value:等级 - Lastrest int64 `protobuf:"varint,3,opt,name=lastrest,proto3" json:"lastrest"` //上次重置时间 + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` //uid + Nodes map[int32]int32 `protobuf:"bytes,3,rep,name=nodes,proto3" json:"nodes" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //节点信息 key:是节点id value:等级 + Lastrest int64 `protobuf:"varint,4,opt,name=lastrest,proto3" json:"lastrest"` //上次重置时间 } func (x *DBHoroscope) Reset() { @@ -63,6 +64,13 @@ func (*DBHoroscope) Descriptor() ([]byte, []int) { return file_horoscope_horoscope_db_proto_rawDescGZIP(), []int{0} } +func (x *DBHoroscope) GetId() string { + if x != nil { + return x.Id + } + return "" +} + func (x *DBHoroscope) GetUid() string { if x != nil { return x.Uid @@ -88,13 +96,14 @@ var File_horoscope_horoscope_db_proto protoreflect.FileDescriptor var file_horoscope_horoscope_db_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x68, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2f, 0x68, 0x6f, 0x72, 0x6f, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, - 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, - 0x12, 0x2d, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, + 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 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, 0x2d, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, diff --git a/pb/notify_db.pb.go b/pb/notify_db.pb.go index 5c24edd17..e0526d67a 100644 --- a/pb/notify_db.pb.go +++ b/pb/notify_db.pb.go @@ -20,6 +20,50 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +//通知 +type NotifyEvent int32 + +const ( + NotifyEvent_Notify_1001 NotifyEvent = 0 +) + +// Enum value maps for NotifyEvent. +var ( + NotifyEvent_name = map[int32]string{ + 0: "Notify_1001", + } + NotifyEvent_value = map[string]int32{ + "Notify_1001": 0, + } +) + +func (x NotifyEvent) Enum() *NotifyEvent { + p := new(NotifyEvent) + *p = x + return p +} + +func (x NotifyEvent) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NotifyEvent) Descriptor() protoreflect.EnumDescriptor { + return file_notify_notify_db_proto_enumTypes[0].Descriptor() +} + +func (NotifyEvent) Type() protoreflect.EnumType { + return &file_notify_notify_db_proto_enumTypes[0] +} + +func (x NotifyEvent) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NotifyEvent.Descriptor instead. +func (NotifyEvent) EnumDescriptor() ([]byte, []int) { + return file_notify_notify_db_proto_rawDescGZIP(), []int{0} +} + //系统公告数据结构 type DBSystemNotify struct { state protoimpl.MessageState @@ -121,7 +165,9 @@ var file_notify_notify_db_proto_rawDesc = []byte{ 0x73, 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x2a, 0x1e, 0x0a, + 0x0b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0f, 0x0a, 0x0b, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x31, 0x30, 0x30, 0x31, 0x10, 0x00, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } @@ -137,9 +183,11 @@ func file_notify_notify_db_proto_rawDescGZIP() []byte { return file_notify_notify_db_proto_rawDescData } +var file_notify_notify_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_notify_notify_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_notify_notify_db_proto_goTypes = []interface{}{ - (*DBSystemNotify)(nil), // 0: DBSystemNotify + (NotifyEvent)(0), // 0: NotifyEvent + (*DBSystemNotify)(nil), // 1: DBSystemNotify } var file_notify_notify_db_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -173,13 +221,14 @@ func file_notify_notify_db_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_notify_notify_db_proto_rawDesc, - NumEnums: 0, + NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_notify_notify_db_proto_goTypes, DependencyIndexes: file_notify_notify_db_proto_depIdxs, + EnumInfos: file_notify_notify_db_proto_enumTypes, MessageInfos: file_notify_notify_db_proto_msgTypes, }.Build() File_notify_notify_db_proto = out.File diff --git a/pb/notify_msg.pb.go b/pb/notify_msg.pb.go index 2b0edaa39..d90eb0c1f 100644 --- a/pb/notify_msg.pb.go +++ b/pb/notify_msg.pb.go @@ -205,6 +205,45 @@ func (x *NotifyGetListResp) GetSysNotify() []*DBSystemNotify { return nil } +//通知事件推送 +type NotifyEventPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NotifyEventPush) Reset() { + *x = NotifyEventPush{} + if protoimpl.UnsafeEnabled { + mi := &file_notify_notify_msg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyEventPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyEventPush) ProtoMessage() {} + +func (x *NotifyEventPush) ProtoReflect() protoreflect.Message { + mi := &file_notify_notify_msg_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotifyEventPush.ProtoReflect.Descriptor instead. +func (*NotifyEventPush) Descriptor() ([]byte, []int) { + return file_notify_notify_msg_proto_rawDescGZIP(), []int{3} +} + var File_notify_notify_msg_proto protoreflect.FileDescriptor var file_notify_notify_msg_proto_rawDesc = []byte{ @@ -235,8 +274,9 @@ var file_notify_notify_msg_proto_rawDesc = []byte{ 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x53, 0x79, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x79, 0x52, 0x09, 0x53, 0x79, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x06, 0x5a, - 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x79, 0x52, 0x09, 0x53, 0x79, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x11, 0x0a, + 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x75, 0x73, 0x68, + 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -251,21 +291,22 @@ func file_notify_notify_msg_proto_rawDescGZIP() []byte { return file_notify_notify_msg_proto_rawDescData } -var file_notify_notify_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_notify_notify_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_notify_notify_msg_proto_goTypes = []interface{}{ (*NotifyErrorNotifyPush)(nil), // 0: NotifyErrorNotifyPush (*NotifyGetListReq)(nil), // 1: NotifyGetListReq (*NotifyGetListResp)(nil), // 2: NotifyGetListResp - (ErrorCode)(0), // 3: ErrorCode - (*anypb.Any)(nil), // 4: google.protobuf.Any - (*ErrorData)(nil), // 5: ErrorData - (*DBSystemNotify)(nil), // 6: DBSystemNotify + (*NotifyEventPush)(nil), // 3: NotifyEventPush + (ErrorCode)(0), // 4: ErrorCode + (*anypb.Any)(nil), // 5: google.protobuf.Any + (*ErrorData)(nil), // 6: ErrorData + (*DBSystemNotify)(nil), // 7: DBSystemNotify } var file_notify_notify_msg_proto_depIdxs = []int32{ - 3, // 0: NotifyErrorNotifyPush.Code:type_name -> ErrorCode - 4, // 1: NotifyErrorNotifyPush.arg:type_name -> google.protobuf.Any - 5, // 2: NotifyErrorNotifyPush.err:type_name -> ErrorData - 6, // 3: NotifyGetListResp.SysNotify:type_name -> DBSystemNotify + 4, // 0: NotifyErrorNotifyPush.Code:type_name -> ErrorCode + 5, // 1: NotifyErrorNotifyPush.arg:type_name -> google.protobuf.Any + 6, // 2: NotifyErrorNotifyPush.err:type_name -> ErrorData + 7, // 3: NotifyGetListResp.SysNotify:type_name -> DBSystemNotify 4, // [4:4] is the sub-list for method output_type 4, // [4:4] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name @@ -318,6 +359,18 @@ func file_notify_notify_msg_proto_init() { return nil } } + file_notify_notify_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotifyEventPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -325,7 +378,7 @@ func file_notify_notify_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_notify_notify_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 4, NumExtensions: 0, NumServices: 0, },