From a938c4ef571f61c1ad30f7ff4555bcc0fb16b2ce Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 8 Nov 2021 20:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B4=AD=E4=B9=B0=E5=A5=97?= =?UTF-8?q?=E9=A4=90/=E7=BB=AD=E8=B4=B9=E5=A5=97=E9=A4=90/=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=B4=A6=E6=88=B7=E6=93=8D=E4=BD=9C=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + pkg/rpc/pb/model_user_account.pb.go | 190 ++++ .../pb/model_user_account_daily_stat.pb.go | 186 ++++ pkg/rpc/pb/model_user_account_log.pb.go | 277 +++++ pkg/rpc/pb/service_user_account.pb.go | 952 ++++++++++++++++++ .../pb/service_user_account_daily_stat.pb.go | 674 +++++++++++++ pkg/rpc/pb/service_user_account_log.pb.go | 488 +++++++++ pkg/rpc/pb/service_user_plan.pb.go | 474 ++++++--- .../protos/models/model_user_account.proto | 15 + .../model_user_account_daily_stat.proto | 12 + .../models/model_user_account_log.proto | 24 + pkg/rpc/protos/service_user_account.proto | 68 ++ .../service_user_account_daily_stat.proto | 45 + pkg/rpc/protos/service_user_account_log.proto | 37 + pkg/rpc/protos/service_user_plan.proto | 21 +- pkg/userconfigs/account_events.go | 78 ++ 16 files changed, 3379 insertions(+), 163 deletions(-) create mode 100644 pkg/rpc/pb/model_user_account.pb.go create mode 100644 pkg/rpc/pb/model_user_account_daily_stat.pb.go create mode 100644 pkg/rpc/pb/model_user_account_log.pb.go create mode 100644 pkg/rpc/pb/service_user_account.pb.go create mode 100644 pkg/rpc/pb/service_user_account_daily_stat.pb.go create mode 100644 pkg/rpc/pb/service_user_account_log.pb.go create mode 100644 pkg/rpc/protos/models/model_user_account.proto create mode 100644 pkg/rpc/protos/models/model_user_account_daily_stat.proto create mode 100644 pkg/rpc/protos/models/model_user_account_log.proto create mode 100644 pkg/rpc/protos/service_user_account.proto create mode 100644 pkg/rpc/protos/service_user_account_daily_stat.proto create mode 100644 pkg/rpc/protos/service_user_account_log.proto create mode 100644 pkg/userconfigs/account_events.go diff --git a/README.md b/README.md index a803458..fc5e66e 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ pkg/ serverconfigs - 网站服务相关配置 systemconfigs - 系统全局配置 reporterconfigs - 区域监控终端配置 + userconfigs - 用户相关配置 configutils/ - 配置公共函数等 errors/ - 错误处理 diff --git a/pkg/rpc/pb/model_user_account.pb.go b/pkg/rpc/pb/model_user_account.pb.go new file mode 100644 index 0000000..3267d3f --- /dev/null +++ b/pkg/rpc/pb/model_user_account.pb.go @@ -0,0 +1,190 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: models/model_user_account.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type UserAccount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + Total float32 `protobuf:"fixed32,3,opt,name=total,proto3" json:"total,omitempty"` + TotalFrozen float32 `protobuf:"fixed32,4,opt,name=totalFrozen,proto3" json:"totalFrozen,omitempty"` + User *User `protobuf:"bytes,30,opt,name=user,proto3" json:"user,omitempty"` +} + +func (x *UserAccount) Reset() { + *x = UserAccount{} + if protoimpl.UnsafeEnabled { + mi := &file_models_model_user_account_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAccount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAccount) ProtoMessage() {} + +func (x *UserAccount) ProtoReflect() protoreflect.Message { + mi := &file_models_model_user_account_proto_msgTypes[0] + 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 UserAccount.ProtoReflect.Descriptor instead. +func (*UserAccount) Descriptor() ([]byte, []int) { + return file_models_model_user_account_proto_rawDescGZIP(), []int{0} +} + +func (x *UserAccount) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UserAccount) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserAccount) GetTotal() float32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *UserAccount) GetTotalFrozen() float32 { + if x != nil { + return x.TotalFrozen + } + return 0 +} + +func (x *UserAccount) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +var File_models_model_user_account_proto protoreflect.FileDescriptor + +var file_models_model_user_account_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8b, + 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x1c, + 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, + 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x42, 0x06, 0x5a, 0x04, + 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_models_model_user_account_proto_rawDescOnce sync.Once + file_models_model_user_account_proto_rawDescData = file_models_model_user_account_proto_rawDesc +) + +func file_models_model_user_account_proto_rawDescGZIP() []byte { + file_models_model_user_account_proto_rawDescOnce.Do(func() { + file_models_model_user_account_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_user_account_proto_rawDescData) + }) + return file_models_model_user_account_proto_rawDescData +} + +var file_models_model_user_account_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_models_model_user_account_proto_goTypes = []interface{}{ + (*UserAccount)(nil), // 0: pb.UserAccount + (*User)(nil), // 1: pb.User +} +var file_models_model_user_account_proto_depIdxs = []int32{ + 1, // 0: pb.UserAccount.user:type_name -> pb.User + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_models_model_user_account_proto_init() } +func file_models_model_user_account_proto_init() { + if File_models_model_user_account_proto != nil { + return + } + file_models_model_user_proto_init() + if !protoimpl.UnsafeEnabled { + file_models_model_user_account_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAccount); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_models_model_user_account_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_models_model_user_account_proto_goTypes, + DependencyIndexes: file_models_model_user_account_proto_depIdxs, + MessageInfos: file_models_model_user_account_proto_msgTypes, + }.Build() + File_models_model_user_account_proto = out.File + file_models_model_user_account_proto_rawDesc = nil + file_models_model_user_account_proto_goTypes = nil + file_models_model_user_account_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_user_account_daily_stat.pb.go b/pkg/rpc/pb/model_user_account_daily_stat.pb.go new file mode 100644 index 0000000..f2b6118 --- /dev/null +++ b/pkg/rpc/pb/model_user_account_daily_stat.pb.go @@ -0,0 +1,186 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: models/model_user_account_daily_stat.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type UserAccountDailyStat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Day string `protobuf:"bytes,2,opt,name=day,proto3" json:"day,omitempty"` + Month string `protobuf:"bytes,3,opt,name=month,proto3" json:"month,omitempty"` + Income float32 `protobuf:"fixed32,4,opt,name=income,proto3" json:"income,omitempty"` + Expense float32 `protobuf:"fixed32,5,opt,name=expense,proto3" json:"expense,omitempty"` +} + +func (x *UserAccountDailyStat) Reset() { + *x = UserAccountDailyStat{} + if protoimpl.UnsafeEnabled { + mi := &file_models_model_user_account_daily_stat_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAccountDailyStat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAccountDailyStat) ProtoMessage() {} + +func (x *UserAccountDailyStat) ProtoReflect() protoreflect.Message { + mi := &file_models_model_user_account_daily_stat_proto_msgTypes[0] + 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 UserAccountDailyStat.ProtoReflect.Descriptor instead. +func (*UserAccountDailyStat) Descriptor() ([]byte, []int) { + return file_models_model_user_account_daily_stat_proto_rawDescGZIP(), []int{0} +} + +func (x *UserAccountDailyStat) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UserAccountDailyStat) GetDay() string { + if x != nil { + return x.Day + } + return "" +} + +func (x *UserAccountDailyStat) GetMonth() string { + if x != nil { + return x.Month + } + return "" +} + +func (x *UserAccountDailyStat) GetIncome() float32 { + if x != nil { + return x.Income + } + return 0 +} + +func (x *UserAccountDailyStat) GetExpense() float32 { + if x != nil { + return x.Expense + } + return 0 +} + +var File_models_model_user_account_daily_stat_proto protoreflect.FileDescriptor + +var file_models_model_user_account_daily_stat_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, + 0x22, 0x80, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, + 0x65, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x78, 0x70, 0x65, + 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_models_model_user_account_daily_stat_proto_rawDescOnce sync.Once + file_models_model_user_account_daily_stat_proto_rawDescData = file_models_model_user_account_daily_stat_proto_rawDesc +) + +func file_models_model_user_account_daily_stat_proto_rawDescGZIP() []byte { + file_models_model_user_account_daily_stat_proto_rawDescOnce.Do(func() { + file_models_model_user_account_daily_stat_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_user_account_daily_stat_proto_rawDescData) + }) + return file_models_model_user_account_daily_stat_proto_rawDescData +} + +var file_models_model_user_account_daily_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_models_model_user_account_daily_stat_proto_goTypes = []interface{}{ + (*UserAccountDailyStat)(nil), // 0: pb.UserAccountDailyStat +} +var file_models_model_user_account_daily_stat_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_models_model_user_account_daily_stat_proto_init() } +func file_models_model_user_account_daily_stat_proto_init() { + if File_models_model_user_account_daily_stat_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_models_model_user_account_daily_stat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAccountDailyStat); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_models_model_user_account_daily_stat_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_models_model_user_account_daily_stat_proto_goTypes, + DependencyIndexes: file_models_model_user_account_daily_stat_proto_depIdxs, + MessageInfos: file_models_model_user_account_daily_stat_proto_msgTypes, + }.Build() + File_models_model_user_account_daily_stat_proto = out.File + file_models_model_user_account_daily_stat_proto_rawDesc = nil + file_models_model_user_account_daily_stat_proto_goTypes = nil + file_models_model_user_account_daily_stat_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/model_user_account_log.pb.go b/pkg/rpc/pb/model_user_account_log.pb.go new file mode 100644 index 0000000..a02ff35 --- /dev/null +++ b/pkg/rpc/pb/model_user_account_log.pb.go @@ -0,0 +1,277 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: models/model_user_account_log.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type UserAccountLog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + UserAccountId int64 `protobuf:"varint,3,opt,name=userAccountId,proto3" json:"userAccountId,omitempty"` + Delta float32 `protobuf:"fixed32,4,opt,name=delta,proto3" json:"delta,omitempty"` + DeltaFrozen float32 `protobuf:"fixed32,5,opt,name=deltaFrozen,proto3" json:"deltaFrozen,omitempty"` + Total float32 `protobuf:"fixed32,6,opt,name=total,proto3" json:"total,omitempty"` + TotalFrozen float32 `protobuf:"fixed32,7,opt,name=totalFrozen,proto3" json:"totalFrozen,omitempty"` + EventType string `protobuf:"bytes,8,opt,name=eventType,proto3" json:"eventType,omitempty"` + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` + CreatedAt int64 `protobuf:"varint,10,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + ParamsJSON []byte `protobuf:"bytes,11,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` + User *User `protobuf:"bytes,30,opt,name=user,proto3" json:"user,omitempty"` + UserAccount *UserAccount `protobuf:"bytes,31,opt,name=userAccount,proto3" json:"userAccount,omitempty"` +} + +func (x *UserAccountLog) Reset() { + *x = UserAccountLog{} + if protoimpl.UnsafeEnabled { + mi := &file_models_model_user_account_log_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAccountLog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAccountLog) ProtoMessage() {} + +func (x *UserAccountLog) ProtoReflect() protoreflect.Message { + mi := &file_models_model_user_account_log_proto_msgTypes[0] + 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 UserAccountLog.ProtoReflect.Descriptor instead. +func (*UserAccountLog) Descriptor() ([]byte, []int) { + return file_models_model_user_account_log_proto_rawDescGZIP(), []int{0} +} + +func (x *UserAccountLog) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UserAccountLog) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserAccountLog) GetUserAccountId() int64 { + if x != nil { + return x.UserAccountId + } + return 0 +} + +func (x *UserAccountLog) GetDelta() float32 { + if x != nil { + return x.Delta + } + return 0 +} + +func (x *UserAccountLog) GetDeltaFrozen() float32 { + if x != nil { + return x.DeltaFrozen + } + return 0 +} + +func (x *UserAccountLog) GetTotal() float32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *UserAccountLog) GetTotalFrozen() float32 { + if x != nil { + return x.TotalFrozen + } + return 0 +} + +func (x *UserAccountLog) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *UserAccountLog) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UserAccountLog) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *UserAccountLog) GetParamsJSON() []byte { + if x != nil { + return x.ParamsJSON + } + return nil +} + +func (x *UserAccountLog) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +func (x *UserAccountLog) GetUserAccount() *UserAccount { + if x != nil { + return x.UserAccount + } + return nil +} + +var File_models_model_user_account_log_proto protoreflect.FileDescriptor + +var file_models_model_user_account_log_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x03, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0b, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x6f, 0x7a, 0x65, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x72, + 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, + 0x4f, 0x4e, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_models_model_user_account_log_proto_rawDescOnce sync.Once + file_models_model_user_account_log_proto_rawDescData = file_models_model_user_account_log_proto_rawDesc +) + +func file_models_model_user_account_log_proto_rawDescGZIP() []byte { + file_models_model_user_account_log_proto_rawDescOnce.Do(func() { + file_models_model_user_account_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_user_account_log_proto_rawDescData) + }) + return file_models_model_user_account_log_proto_rawDescData +} + +var file_models_model_user_account_log_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_models_model_user_account_log_proto_goTypes = []interface{}{ + (*UserAccountLog)(nil), // 0: pb.UserAccountLog + (*User)(nil), // 1: pb.User + (*UserAccount)(nil), // 2: pb.UserAccount +} +var file_models_model_user_account_log_proto_depIdxs = []int32{ + 1, // 0: pb.UserAccountLog.user:type_name -> pb.User + 2, // 1: pb.UserAccountLog.userAccount:type_name -> pb.UserAccount + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_models_model_user_account_log_proto_init() } +func file_models_model_user_account_log_proto_init() { + if File_models_model_user_account_log_proto != nil { + return + } + file_models_model_user_proto_init() + file_models_model_user_account_proto_init() + if !protoimpl.UnsafeEnabled { + file_models_model_user_account_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAccountLog); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_models_model_user_account_log_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_models_model_user_account_log_proto_goTypes, + DependencyIndexes: file_models_model_user_account_log_proto_depIdxs, + MessageInfos: file_models_model_user_account_log_proto_msgTypes, + }.Build() + File_models_model_user_account_log_proto = out.File + file_models_model_user_account_log_proto_rawDesc = nil + file_models_model_user_account_log_proto_goTypes = nil + file_models_model_user_account_log_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_user_account.pb.go b/pkg/rpc/pb/service_user_account.pb.go new file mode 100644 index 0000000..4d0508a --- /dev/null +++ b/pkg/rpc/pb/service_user_account.pb.go @@ -0,0 +1,952 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_user_account.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 计算账户数量 +type CountUserAccountsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` +} + +func (x *CountUserAccountsRequest) Reset() { + *x = CountUserAccountsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountUserAccountsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountUserAccountsRequest) ProtoMessage() {} + +func (x *CountUserAccountsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[0] + 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 CountUserAccountsRequest.ProtoReflect.Descriptor instead. +func (*CountUserAccountsRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{0} +} + +func (x *CountUserAccountsRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +// 列出单页账户 +type ListUserAccountsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` + Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListUserAccountsRequest) Reset() { + *x = ListUserAccountsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountsRequest) ProtoMessage() {} + +func (x *ListUserAccountsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[1] + 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 ListUserAccountsRequest.ProtoReflect.Descriptor instead. +func (*ListUserAccountsRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{1} +} + +func (x *ListUserAccountsRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *ListUserAccountsRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListUserAccountsRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListUserAccountsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccounts []*UserAccount `protobuf:"bytes,1,rep,name=userAccounts,proto3" json:"userAccounts,omitempty"` +} + +func (x *ListUserAccountsResponse) Reset() { + *x = ListUserAccountsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountsResponse) ProtoMessage() {} + +func (x *ListUserAccountsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[2] + 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 ListUserAccountsResponse.ProtoReflect.Descriptor instead. +func (*ListUserAccountsResponse) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{2} +} + +func (x *ListUserAccountsResponse) GetUserAccounts() []*UserAccount { + if x != nil { + return x.UserAccounts + } + return nil +} + +// 根据用户ID查找单个账户 +type FindEnabledUserAccountWithUserIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *FindEnabledUserAccountWithUserIdRequest) Reset() { + *x = FindEnabledUserAccountWithUserIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledUserAccountWithUserIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledUserAccountWithUserIdRequest) ProtoMessage() {} + +func (x *FindEnabledUserAccountWithUserIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_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 FindEnabledUserAccountWithUserIdRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledUserAccountWithUserIdRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{3} +} + +func (x *FindEnabledUserAccountWithUserIdRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +type FindEnabledUserAccountWithUserIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccount *UserAccount `protobuf:"bytes,1,opt,name=userAccount,proto3" json:"userAccount,omitempty"` +} + +func (x *FindEnabledUserAccountWithUserIdResponse) Reset() { + *x = FindEnabledUserAccountWithUserIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledUserAccountWithUserIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledUserAccountWithUserIdResponse) ProtoMessage() {} + +func (x *FindEnabledUserAccountWithUserIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[4] + 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 FindEnabledUserAccountWithUserIdResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledUserAccountWithUserIdResponse) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{4} +} + +func (x *FindEnabledUserAccountWithUserIdResponse) GetUserAccount() *UserAccount { + if x != nil { + return x.UserAccount + } + return nil +} + +// 查找单个账户 +type FindEnabledUserAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccountId int64 `protobuf:"varint,1,opt,name=userAccountId,proto3" json:"userAccountId,omitempty"` +} + +func (x *FindEnabledUserAccountRequest) Reset() { + *x = FindEnabledUserAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledUserAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledUserAccountRequest) ProtoMessage() {} + +func (x *FindEnabledUserAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[5] + 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 FindEnabledUserAccountRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledUserAccountRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{5} +} + +func (x *FindEnabledUserAccountRequest) GetUserAccountId() int64 { + if x != nil { + return x.UserAccountId + } + return 0 +} + +type FindEnabledUserAccountResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccount *UserAccount `protobuf:"bytes,1,opt,name=userAccount,proto3" json:"userAccount,omitempty"` +} + +func (x *FindEnabledUserAccountResponse) Reset() { + *x = FindEnabledUserAccountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledUserAccountResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledUserAccountResponse) ProtoMessage() {} + +func (x *FindEnabledUserAccountResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[6] + 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 FindEnabledUserAccountResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledUserAccountResponse) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{6} +} + +func (x *FindEnabledUserAccountResponse) GetUserAccount() *UserAccount { + if x != nil { + return x.UserAccount + } + return nil +} + +// 修改用户账户 +type UpdateUserAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccountId int64 `protobuf:"varint,1,opt,name=userAccountId,proto3" json:"userAccountId,omitempty"` + Delta float32 `protobuf:"fixed32,2,opt,name=delta,proto3" json:"delta,omitempty"` + EventType string `protobuf:"bytes,3,opt,name=eventType,proto3" json:"eventType,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + ParamsJSON []byte `protobuf:"bytes,5,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` +} + +func (x *UpdateUserAccountRequest) Reset() { + *x = UpdateUserAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserAccountRequest) ProtoMessage() {} + +func (x *UpdateUserAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_proto_msgTypes[7] + 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 UpdateUserAccountRequest.ProtoReflect.Descriptor instead. +func (*UpdateUserAccountRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_proto_rawDescGZIP(), []int{7} +} + +func (x *UpdateUserAccountRequest) GetUserAccountId() int64 { + if x != nil { + return x.UserAccountId + } + return 0 +} + +func (x *UpdateUserAccountRequest) GetDelta() float32 { + if x != nil { + return x.Delta + } + return 0 +} + +func (x *UpdateUserAccountRequest) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *UpdateUserAccountRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *UpdateUserAccountRequest) GetParamsJSON() []byte { + if x != nil { + return x.ParamsJSON + } + return nil +} + +var File_service_user_account_proto protoreflect.FileDescriptor + +var file_service_user_account_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, + 0x1a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x34, 0x0a, 0x18, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x22, 0x5f, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, + 0x69, 0x7a, 0x65, 0x22, 0x4f, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x22, 0x41, 0x0a, 0x27, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x57, 0x69, + 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x28, 0x46, 0x69, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x45, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, + 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, + 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xb6, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x32, 0xcf, 0x03, 0x0a, 0x12, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6c, + 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, + 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, + 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x20, 0x66, 0x69, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2b, + 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x62, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, + 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_user_account_proto_rawDescOnce sync.Once + file_service_user_account_proto_rawDescData = file_service_user_account_proto_rawDesc +) + +func file_service_user_account_proto_rawDescGZIP() []byte { + file_service_user_account_proto_rawDescOnce.Do(func() { + file_service_user_account_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_user_account_proto_rawDescData) + }) + return file_service_user_account_proto_rawDescData +} + +var file_service_user_account_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_service_user_account_proto_goTypes = []interface{}{ + (*CountUserAccountsRequest)(nil), // 0: pb.CountUserAccountsRequest + (*ListUserAccountsRequest)(nil), // 1: pb.ListUserAccountsRequest + (*ListUserAccountsResponse)(nil), // 2: pb.ListUserAccountsResponse + (*FindEnabledUserAccountWithUserIdRequest)(nil), // 3: pb.FindEnabledUserAccountWithUserIdRequest + (*FindEnabledUserAccountWithUserIdResponse)(nil), // 4: pb.FindEnabledUserAccountWithUserIdResponse + (*FindEnabledUserAccountRequest)(nil), // 5: pb.FindEnabledUserAccountRequest + (*FindEnabledUserAccountResponse)(nil), // 6: pb.FindEnabledUserAccountResponse + (*UpdateUserAccountRequest)(nil), // 7: pb.UpdateUserAccountRequest + (*UserAccount)(nil), // 8: pb.UserAccount + (*RPCCountResponse)(nil), // 9: pb.RPCCountResponse + (*RPCSuccess)(nil), // 10: pb.RPCSuccess +} +var file_service_user_account_proto_depIdxs = []int32{ + 8, // 0: pb.ListUserAccountsResponse.userAccounts:type_name -> pb.UserAccount + 8, // 1: pb.FindEnabledUserAccountWithUserIdResponse.userAccount:type_name -> pb.UserAccount + 8, // 2: pb.FindEnabledUserAccountResponse.userAccount:type_name -> pb.UserAccount + 0, // 3: pb.UserAccountService.countUserAccounts:input_type -> pb.CountUserAccountsRequest + 1, // 4: pb.UserAccountService.listUserAccounts:input_type -> pb.ListUserAccountsRequest + 3, // 5: pb.UserAccountService.findEnabledUserAccountWithUserId:input_type -> pb.FindEnabledUserAccountWithUserIdRequest + 5, // 6: pb.UserAccountService.findEnabledUserAccount:input_type -> pb.FindEnabledUserAccountRequest + 7, // 7: pb.UserAccountService.updateUserAccount:input_type -> pb.UpdateUserAccountRequest + 9, // 8: pb.UserAccountService.countUserAccounts:output_type -> pb.RPCCountResponse + 2, // 9: pb.UserAccountService.listUserAccounts:output_type -> pb.ListUserAccountsResponse + 4, // 10: pb.UserAccountService.findEnabledUserAccountWithUserId:output_type -> pb.FindEnabledUserAccountWithUserIdResponse + 6, // 11: pb.UserAccountService.findEnabledUserAccount:output_type -> pb.FindEnabledUserAccountResponse + 10, // 12: pb.UserAccountService.updateUserAccount:output_type -> pb.RPCSuccess + 8, // [8:13] is the sub-list for method output_type + 3, // [3:8] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_service_user_account_proto_init() } +func file_service_user_account_proto_init() { + if File_service_user_account_proto != nil { + return + } + file_models_model_user_account_proto_init() + file_models_rpc_messages_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_user_account_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountUserAccountsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledUserAccountWithUserIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledUserAccountWithUserIdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledUserAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledUserAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserAccountRequest); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_user_account_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_user_account_proto_goTypes, + DependencyIndexes: file_service_user_account_proto_depIdxs, + MessageInfos: file_service_user_account_proto_msgTypes, + }.Build() + File_service_user_account_proto = out.File + file_service_user_account_proto_rawDesc = nil + file_service_user_account_proto_goTypes = nil + file_service_user_account_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// UserAccountServiceClient is the client API for UserAccountService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserAccountServiceClient interface { + // 计算账户数量 + CountUserAccounts(ctx context.Context, in *CountUserAccountsRequest, opts ...grpc.CallOption) (*RPCCountResponse, error) + // 列出单页账户 + ListUserAccounts(ctx context.Context, in *ListUserAccountsRequest, opts ...grpc.CallOption) (*ListUserAccountsResponse, error) + // 根据用户ID查找单个账户 + FindEnabledUserAccountWithUserId(ctx context.Context, in *FindEnabledUserAccountWithUserIdRequest, opts ...grpc.CallOption) (*FindEnabledUserAccountWithUserIdResponse, error) + // 查找单个账户 + FindEnabledUserAccount(ctx context.Context, in *FindEnabledUserAccountRequest, opts ...grpc.CallOption) (*FindEnabledUserAccountResponse, error) + // 修改用户账户 + UpdateUserAccount(ctx context.Context, in *UpdateUserAccountRequest, opts ...grpc.CallOption) (*RPCSuccess, error) +} + +type userAccountServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewUserAccountServiceClient(cc grpc.ClientConnInterface) UserAccountServiceClient { + return &userAccountServiceClient{cc} +} + +func (c *userAccountServiceClient) CountUserAccounts(ctx context.Context, in *CountUserAccountsRequest, opts ...grpc.CallOption) (*RPCCountResponse, error) { + out := new(RPCCountResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountService/countUserAccounts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userAccountServiceClient) ListUserAccounts(ctx context.Context, in *ListUserAccountsRequest, opts ...grpc.CallOption) (*ListUserAccountsResponse, error) { + out := new(ListUserAccountsResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountService/listUserAccounts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userAccountServiceClient) FindEnabledUserAccountWithUserId(ctx context.Context, in *FindEnabledUserAccountWithUserIdRequest, opts ...grpc.CallOption) (*FindEnabledUserAccountWithUserIdResponse, error) { + out := new(FindEnabledUserAccountWithUserIdResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountService/findEnabledUserAccountWithUserId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userAccountServiceClient) FindEnabledUserAccount(ctx context.Context, in *FindEnabledUserAccountRequest, opts ...grpc.CallOption) (*FindEnabledUserAccountResponse, error) { + out := new(FindEnabledUserAccountResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountService/findEnabledUserAccount", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userAccountServiceClient) UpdateUserAccount(ctx context.Context, in *UpdateUserAccountRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, "/pb.UserAccountService/updateUserAccount", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserAccountServiceServer is the server API for UserAccountService service. +type UserAccountServiceServer interface { + // 计算账户数量 + CountUserAccounts(context.Context, *CountUserAccountsRequest) (*RPCCountResponse, error) + // 列出单页账户 + ListUserAccounts(context.Context, *ListUserAccountsRequest) (*ListUserAccountsResponse, error) + // 根据用户ID查找单个账户 + FindEnabledUserAccountWithUserId(context.Context, *FindEnabledUserAccountWithUserIdRequest) (*FindEnabledUserAccountWithUserIdResponse, error) + // 查找单个账户 + FindEnabledUserAccount(context.Context, *FindEnabledUserAccountRequest) (*FindEnabledUserAccountResponse, error) + // 修改用户账户 + UpdateUserAccount(context.Context, *UpdateUserAccountRequest) (*RPCSuccess, error) +} + +// UnimplementedUserAccountServiceServer can be embedded to have forward compatible implementations. +type UnimplementedUserAccountServiceServer struct { +} + +func (*UnimplementedUserAccountServiceServer) CountUserAccounts(context.Context, *CountUserAccountsRequest) (*RPCCountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountUserAccounts not implemented") +} +func (*UnimplementedUserAccountServiceServer) ListUserAccounts(context.Context, *ListUserAccountsRequest) (*ListUserAccountsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUserAccounts not implemented") +} +func (*UnimplementedUserAccountServiceServer) FindEnabledUserAccountWithUserId(context.Context, *FindEnabledUserAccountWithUserIdRequest) (*FindEnabledUserAccountWithUserIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledUserAccountWithUserId not implemented") +} +func (*UnimplementedUserAccountServiceServer) FindEnabledUserAccount(context.Context, *FindEnabledUserAccountRequest) (*FindEnabledUserAccountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledUserAccount not implemented") +} +func (*UnimplementedUserAccountServiceServer) UpdateUserAccount(context.Context, *UpdateUserAccountRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUserAccount not implemented") +} + +func RegisterUserAccountServiceServer(s *grpc.Server, srv UserAccountServiceServer) { + s.RegisterService(&_UserAccountService_serviceDesc, srv) +} + +func _UserAccountService_CountUserAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountUserAccountsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountServiceServer).CountUserAccounts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountService/CountUserAccounts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountServiceServer).CountUserAccounts(ctx, req.(*CountUserAccountsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserAccountService_ListUserAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUserAccountsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountServiceServer).ListUserAccounts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountService/ListUserAccounts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountServiceServer).ListUserAccounts(ctx, req.(*ListUserAccountsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserAccountService_FindEnabledUserAccountWithUserId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledUserAccountWithUserIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountServiceServer).FindEnabledUserAccountWithUserId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountService/FindEnabledUserAccountWithUserId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountServiceServer).FindEnabledUserAccountWithUserId(ctx, req.(*FindEnabledUserAccountWithUserIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserAccountService_FindEnabledUserAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledUserAccountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountServiceServer).FindEnabledUserAccount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountService/FindEnabledUserAccount", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountServiceServer).FindEnabledUserAccount(ctx, req.(*FindEnabledUserAccountRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserAccountService_UpdateUserAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateUserAccountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountServiceServer).UpdateUserAccount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountService/UpdateUserAccount", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountServiceServer).UpdateUserAccount(ctx, req.(*UpdateUserAccountRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _UserAccountService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.UserAccountService", + HandlerType: (*UserAccountServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "countUserAccounts", + Handler: _UserAccountService_CountUserAccounts_Handler, + }, + { + MethodName: "listUserAccounts", + Handler: _UserAccountService_ListUserAccounts_Handler, + }, + { + MethodName: "findEnabledUserAccountWithUserId", + Handler: _UserAccountService_FindEnabledUserAccountWithUserId_Handler, + }, + { + MethodName: "findEnabledUserAccount", + Handler: _UserAccountService_FindEnabledUserAccount_Handler, + }, + { + MethodName: "updateUserAccount", + Handler: _UserAccountService_UpdateUserAccount_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_user_account.proto", +} diff --git a/pkg/rpc/pb/service_user_account_daily_stat.pb.go b/pkg/rpc/pb/service_user_account_daily_stat.pb.go new file mode 100644 index 0000000..c899749 --- /dev/null +++ b/pkg/rpc/pb/service_user_account_daily_stat.pb.go @@ -0,0 +1,674 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_user_account_daily_stat.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 列出按天统计 +type ListUserAccountDailyStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DayFrom string `protobuf:"bytes,1,opt,name=dayFrom,proto3" json:"dayFrom,omitempty"` + DayTo string `protobuf:"bytes,2,opt,name=dayTo,proto3" json:"dayTo,omitempty"` +} + +func (x *ListUserAccountDailyStatsRequest) Reset() { + *x = ListUserAccountDailyStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_daily_stat_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountDailyStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountDailyStatsRequest) ProtoMessage() {} + +func (x *ListUserAccountDailyStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_daily_stat_proto_msgTypes[0] + 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 ListUserAccountDailyStatsRequest.ProtoReflect.Descriptor instead. +func (*ListUserAccountDailyStatsRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_daily_stat_proto_rawDescGZIP(), []int{0} +} + +func (x *ListUserAccountDailyStatsRequest) GetDayFrom() string { + if x != nil { + return x.DayFrom + } + return "" +} + +func (x *ListUserAccountDailyStatsRequest) GetDayTo() string { + if x != nil { + return x.DayTo + } + return "" +} + +type ListUserAccountDailyStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stats []*ListUserAccountDailyStatsResponse_Stat `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"` +} + +func (x *ListUserAccountDailyStatsResponse) Reset() { + *x = ListUserAccountDailyStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_daily_stat_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountDailyStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountDailyStatsResponse) ProtoMessage() {} + +func (x *ListUserAccountDailyStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_daily_stat_proto_msgTypes[1] + 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 ListUserAccountDailyStatsResponse.ProtoReflect.Descriptor instead. +func (*ListUserAccountDailyStatsResponse) Descriptor() ([]byte, []int) { + return file_service_user_account_daily_stat_proto_rawDescGZIP(), []int{1} +} + +func (x *ListUserAccountDailyStatsResponse) GetStats() []*ListUserAccountDailyStatsResponse_Stat { + if x != nil { + return x.Stats + } + return nil +} + +// 列出按月统计 +type ListUserAccountMonthlyStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DayFrom string `protobuf:"bytes,1,opt,name=dayFrom,proto3" json:"dayFrom,omitempty"` + DayTo string `protobuf:"bytes,2,opt,name=dayTo,proto3" json:"dayTo,omitempty"` +} + +func (x *ListUserAccountMonthlyStatsRequest) Reset() { + *x = ListUserAccountMonthlyStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_daily_stat_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountMonthlyStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountMonthlyStatsRequest) ProtoMessage() {} + +func (x *ListUserAccountMonthlyStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_daily_stat_proto_msgTypes[2] + 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 ListUserAccountMonthlyStatsRequest.ProtoReflect.Descriptor instead. +func (*ListUserAccountMonthlyStatsRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_daily_stat_proto_rawDescGZIP(), []int{2} +} + +func (x *ListUserAccountMonthlyStatsRequest) GetDayFrom() string { + if x != nil { + return x.DayFrom + } + return "" +} + +func (x *ListUserAccountMonthlyStatsRequest) GetDayTo() string { + if x != nil { + return x.DayTo + } + return "" +} + +type ListUserAccountMonthlyStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stats []*ListUserAccountMonthlyStatsResponse_Stat `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"` +} + +func (x *ListUserAccountMonthlyStatsResponse) Reset() { + *x = ListUserAccountMonthlyStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_daily_stat_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountMonthlyStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountMonthlyStatsResponse) ProtoMessage() {} + +func (x *ListUserAccountMonthlyStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_daily_stat_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 ListUserAccountMonthlyStatsResponse.ProtoReflect.Descriptor instead. +func (*ListUserAccountMonthlyStatsResponse) Descriptor() ([]byte, []int) { + return file_service_user_account_daily_stat_proto_rawDescGZIP(), []int{3} +} + +func (x *ListUserAccountMonthlyStatsResponse) GetStats() []*ListUserAccountMonthlyStatsResponse_Stat { + if x != nil { + return x.Stats + } + return nil +} + +type ListUserAccountDailyStatsResponse_Stat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day string `protobuf:"bytes,1,opt,name=day,proto3" json:"day,omitempty"` // YYYYMMDD + Income float32 `protobuf:"fixed32,2,opt,name=income,proto3" json:"income,omitempty"` + Expense float32 `protobuf:"fixed32,3,opt,name=expense,proto3" json:"expense,omitempty"` +} + +func (x *ListUserAccountDailyStatsResponse_Stat) Reset() { + *x = ListUserAccountDailyStatsResponse_Stat{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_daily_stat_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountDailyStatsResponse_Stat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountDailyStatsResponse_Stat) ProtoMessage() {} + +func (x *ListUserAccountDailyStatsResponse_Stat) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_daily_stat_proto_msgTypes[4] + 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 ListUserAccountDailyStatsResponse_Stat.ProtoReflect.Descriptor instead. +func (*ListUserAccountDailyStatsResponse_Stat) Descriptor() ([]byte, []int) { + return file_service_user_account_daily_stat_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *ListUserAccountDailyStatsResponse_Stat) GetDay() string { + if x != nil { + return x.Day + } + return "" +} + +func (x *ListUserAccountDailyStatsResponse_Stat) GetIncome() float32 { + if x != nil { + return x.Income + } + return 0 +} + +func (x *ListUserAccountDailyStatsResponse_Stat) GetExpense() float32 { + if x != nil { + return x.Expense + } + return 0 +} + +type ListUserAccountMonthlyStatsResponse_Stat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Month string `protobuf:"bytes,1,opt,name=month,proto3" json:"month,omitempty"` // YYYYMM + Income float32 `protobuf:"fixed32,2,opt,name=income,proto3" json:"income,omitempty"` + Expense float32 `protobuf:"fixed32,3,opt,name=expense,proto3" json:"expense,omitempty"` +} + +func (x *ListUserAccountMonthlyStatsResponse_Stat) Reset() { + *x = ListUserAccountMonthlyStatsResponse_Stat{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_daily_stat_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountMonthlyStatsResponse_Stat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountMonthlyStatsResponse_Stat) ProtoMessage() {} + +func (x *ListUserAccountMonthlyStatsResponse_Stat) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_daily_stat_proto_msgTypes[5] + 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 ListUserAccountMonthlyStatsResponse_Stat.ProtoReflect.Descriptor instead. +func (*ListUserAccountMonthlyStatsResponse_Stat) Descriptor() ([]byte, []int) { + return file_service_user_account_daily_stat_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *ListUserAccountMonthlyStatsResponse_Stat) GetMonth() string { + if x != nil { + return x.Month + } + return "" +} + +func (x *ListUserAccountMonthlyStatsResponse_Stat) GetIncome() float32 { + if x != nil { + return x.Income + } + return 0 +} + +func (x *ListUserAccountMonthlyStatsResponse_Stat) GetExpense() float32 { + if x != nil { + return x.Expense + } + return 0 +} + +var File_service_user_account_daily_stat_proto protoreflect.FileDescriptor + +var file_service_user_account_daily_stat_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x52, 0x0a, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x64, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, + 0x54, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x22, + 0xb1, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x4a, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, + 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, + 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x78, 0x70, 0x65, + 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x79, + 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x79, 0x46, + 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x22, 0xb9, 0x01, 0x0a, 0x23, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x4e, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x06, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x78, + 0x70, 0x65, 0x6e, 0x73, 0x65, 0x32, 0xf7, 0x01, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x6c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x69, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6e, 0x0a, 0x1b, 0x6c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x26, + 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_user_account_daily_stat_proto_rawDescOnce sync.Once + file_service_user_account_daily_stat_proto_rawDescData = file_service_user_account_daily_stat_proto_rawDesc +) + +func file_service_user_account_daily_stat_proto_rawDescGZIP() []byte { + file_service_user_account_daily_stat_proto_rawDescOnce.Do(func() { + file_service_user_account_daily_stat_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_user_account_daily_stat_proto_rawDescData) + }) + return file_service_user_account_daily_stat_proto_rawDescData +} + +var file_service_user_account_daily_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_service_user_account_daily_stat_proto_goTypes = []interface{}{ + (*ListUserAccountDailyStatsRequest)(nil), // 0: pb.ListUserAccountDailyStatsRequest + (*ListUserAccountDailyStatsResponse)(nil), // 1: pb.ListUserAccountDailyStatsResponse + (*ListUserAccountMonthlyStatsRequest)(nil), // 2: pb.ListUserAccountMonthlyStatsRequest + (*ListUserAccountMonthlyStatsResponse)(nil), // 3: pb.ListUserAccountMonthlyStatsResponse + (*ListUserAccountDailyStatsResponse_Stat)(nil), // 4: pb.ListUserAccountDailyStatsResponse.Stat + (*ListUserAccountMonthlyStatsResponse_Stat)(nil), // 5: pb.ListUserAccountMonthlyStatsResponse.Stat +} +var file_service_user_account_daily_stat_proto_depIdxs = []int32{ + 4, // 0: pb.ListUserAccountDailyStatsResponse.stats:type_name -> pb.ListUserAccountDailyStatsResponse.Stat + 5, // 1: pb.ListUserAccountMonthlyStatsResponse.stats:type_name -> pb.ListUserAccountMonthlyStatsResponse.Stat + 0, // 2: pb.UserAccountDailyStatService.listUserAccountDailyStats:input_type -> pb.ListUserAccountDailyStatsRequest + 2, // 3: pb.UserAccountDailyStatService.listUserAccountMonthlyStats:input_type -> pb.ListUserAccountMonthlyStatsRequest + 1, // 4: pb.UserAccountDailyStatService.listUserAccountDailyStats:output_type -> pb.ListUserAccountDailyStatsResponse + 3, // 5: pb.UserAccountDailyStatService.listUserAccountMonthlyStats:output_type -> pb.ListUserAccountMonthlyStatsResponse + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_service_user_account_daily_stat_proto_init() } +func file_service_user_account_daily_stat_proto_init() { + if File_service_user_account_daily_stat_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_service_user_account_daily_stat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountDailyStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_daily_stat_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountDailyStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_daily_stat_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountMonthlyStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_daily_stat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountMonthlyStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_daily_stat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountDailyStatsResponse_Stat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_daily_stat_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountMonthlyStatsResponse_Stat); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_user_account_daily_stat_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_user_account_daily_stat_proto_goTypes, + DependencyIndexes: file_service_user_account_daily_stat_proto_depIdxs, + MessageInfos: file_service_user_account_daily_stat_proto_msgTypes, + }.Build() + File_service_user_account_daily_stat_proto = out.File + file_service_user_account_daily_stat_proto_rawDesc = nil + file_service_user_account_daily_stat_proto_goTypes = nil + file_service_user_account_daily_stat_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// UserAccountDailyStatServiceClient is the client API for UserAccountDailyStatService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserAccountDailyStatServiceClient interface { + // 列出按天统计 + ListUserAccountDailyStats(ctx context.Context, in *ListUserAccountDailyStatsRequest, opts ...grpc.CallOption) (*ListUserAccountDailyStatsResponse, error) + // 列出按月统计 + ListUserAccountMonthlyStats(ctx context.Context, in *ListUserAccountMonthlyStatsRequest, opts ...grpc.CallOption) (*ListUserAccountMonthlyStatsResponse, error) +} + +type userAccountDailyStatServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewUserAccountDailyStatServiceClient(cc grpc.ClientConnInterface) UserAccountDailyStatServiceClient { + return &userAccountDailyStatServiceClient{cc} +} + +func (c *userAccountDailyStatServiceClient) ListUserAccountDailyStats(ctx context.Context, in *ListUserAccountDailyStatsRequest, opts ...grpc.CallOption) (*ListUserAccountDailyStatsResponse, error) { + out := new(ListUserAccountDailyStatsResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountDailyStatService/listUserAccountDailyStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userAccountDailyStatServiceClient) ListUserAccountMonthlyStats(ctx context.Context, in *ListUserAccountMonthlyStatsRequest, opts ...grpc.CallOption) (*ListUserAccountMonthlyStatsResponse, error) { + out := new(ListUserAccountMonthlyStatsResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountDailyStatService/listUserAccountMonthlyStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserAccountDailyStatServiceServer is the server API for UserAccountDailyStatService service. +type UserAccountDailyStatServiceServer interface { + // 列出按天统计 + ListUserAccountDailyStats(context.Context, *ListUserAccountDailyStatsRequest) (*ListUserAccountDailyStatsResponse, error) + // 列出按月统计 + ListUserAccountMonthlyStats(context.Context, *ListUserAccountMonthlyStatsRequest) (*ListUserAccountMonthlyStatsResponse, error) +} + +// UnimplementedUserAccountDailyStatServiceServer can be embedded to have forward compatible implementations. +type UnimplementedUserAccountDailyStatServiceServer struct { +} + +func (*UnimplementedUserAccountDailyStatServiceServer) ListUserAccountDailyStats(context.Context, *ListUserAccountDailyStatsRequest) (*ListUserAccountDailyStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUserAccountDailyStats not implemented") +} +func (*UnimplementedUserAccountDailyStatServiceServer) ListUserAccountMonthlyStats(context.Context, *ListUserAccountMonthlyStatsRequest) (*ListUserAccountMonthlyStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUserAccountMonthlyStats not implemented") +} + +func RegisterUserAccountDailyStatServiceServer(s *grpc.Server, srv UserAccountDailyStatServiceServer) { + s.RegisterService(&_UserAccountDailyStatService_serviceDesc, srv) +} + +func _UserAccountDailyStatService_ListUserAccountDailyStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUserAccountDailyStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountDailyStatServiceServer).ListUserAccountDailyStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountDailyStatService/ListUserAccountDailyStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountDailyStatServiceServer).ListUserAccountDailyStats(ctx, req.(*ListUserAccountDailyStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserAccountDailyStatService_ListUserAccountMonthlyStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUserAccountMonthlyStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountDailyStatServiceServer).ListUserAccountMonthlyStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountDailyStatService/ListUserAccountMonthlyStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountDailyStatServiceServer).ListUserAccountMonthlyStats(ctx, req.(*ListUserAccountMonthlyStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _UserAccountDailyStatService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.UserAccountDailyStatService", + HandlerType: (*UserAccountDailyStatServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "listUserAccountDailyStats", + Handler: _UserAccountDailyStatService_ListUserAccountDailyStats_Handler, + }, + { + MethodName: "listUserAccountMonthlyStats", + Handler: _UserAccountDailyStatService_ListUserAccountMonthlyStats_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_user_account_daily_stat.proto", +} diff --git a/pkg/rpc/pb/service_user_account_log.pb.go b/pkg/rpc/pb/service_user_account_log.pb.go new file mode 100644 index 0000000..0cbfee7 --- /dev/null +++ b/pkg/rpc/pb/service_user_account_log.pb.go @@ -0,0 +1,488 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_user_account_log.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 计算日志数量 +type CountUserAccountLogsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccountId int64 `protobuf:"varint,1,opt,name=userAccountId,proto3" json:"userAccountId,omitempty"` + Keyword string `protobuf:"bytes,2,opt,name=keyword,proto3" json:"keyword,omitempty"` + EventType string `protobuf:"bytes,3,opt,name=eventType,proto3" json:"eventType,omitempty"` +} + +func (x *CountUserAccountLogsRequest) Reset() { + *x = CountUserAccountLogsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_log_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountUserAccountLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountUserAccountLogsRequest) ProtoMessage() {} + +func (x *CountUserAccountLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_log_proto_msgTypes[0] + 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 CountUserAccountLogsRequest.ProtoReflect.Descriptor instead. +func (*CountUserAccountLogsRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_log_proto_rawDescGZIP(), []int{0} +} + +func (x *CountUserAccountLogsRequest) GetUserAccountId() int64 { + if x != nil { + return x.UserAccountId + } + return 0 +} + +func (x *CountUserAccountLogsRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *CountUserAccountLogsRequest) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +// 列出单页日志 +type ListUserAccountLogsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccountId int64 `protobuf:"varint,1,opt,name=userAccountId,proto3" json:"userAccountId,omitempty"` + Keyword string `protobuf:"bytes,2,opt,name=keyword,proto3" json:"keyword,omitempty"` + EventType string `protobuf:"bytes,3,opt,name=eventType,proto3" json:"eventType,omitempty"` + Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` + Size int64 `protobuf:"varint,5,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListUserAccountLogsRequest) Reset() { + *x = ListUserAccountLogsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_log_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountLogsRequest) ProtoMessage() {} + +func (x *ListUserAccountLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_log_proto_msgTypes[1] + 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 ListUserAccountLogsRequest.ProtoReflect.Descriptor instead. +func (*ListUserAccountLogsRequest) Descriptor() ([]byte, []int) { + return file_service_user_account_log_proto_rawDescGZIP(), []int{1} +} + +func (x *ListUserAccountLogsRequest) GetUserAccountId() int64 { + if x != nil { + return x.UserAccountId + } + return 0 +} + +func (x *ListUserAccountLogsRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *ListUserAccountLogsRequest) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *ListUserAccountLogsRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ListUserAccountLogsRequest) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +type ListUserAccountLogsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserAccountLogs []*UserAccountLog `protobuf:"bytes,1,rep,name=userAccountLogs,proto3" json:"userAccountLogs,omitempty"` +} + +func (x *ListUserAccountLogsResponse) Reset() { + *x = ListUserAccountLogsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_account_log_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUserAccountLogsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUserAccountLogsResponse) ProtoMessage() {} + +func (x *ListUserAccountLogsResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_user_account_log_proto_msgTypes[2] + 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 ListUserAccountLogsResponse.ProtoReflect.Descriptor instead. +func (*ListUserAccountLogsResponse) Descriptor() ([]byte, []int) { + return file_service_user_account_log_proto_rawDescGZIP(), []int{2} +} + +func (x *ListUserAccountLogsResponse) GetUserAccountLogs() []*UserAccountLog { + if x != nil { + return x.UserAccountLogs + } + return nil +} + +var File_service_user_account_log_proto protoreflect.FileDescriptor + +var file_service_user_account_log_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x02, 0x70, 0x62, 0x1a, 0x23, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7b, 0x0a, 0x1b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x5b, 0x0a, 0x1b, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x32, 0xbe, 0x01, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, + 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x56, 0x0a, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_user_account_log_proto_rawDescOnce sync.Once + file_service_user_account_log_proto_rawDescData = file_service_user_account_log_proto_rawDesc +) + +func file_service_user_account_log_proto_rawDescGZIP() []byte { + file_service_user_account_log_proto_rawDescOnce.Do(func() { + file_service_user_account_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_user_account_log_proto_rawDescData) + }) + return file_service_user_account_log_proto_rawDescData +} + +var file_service_user_account_log_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_service_user_account_log_proto_goTypes = []interface{}{ + (*CountUserAccountLogsRequest)(nil), // 0: pb.CountUserAccountLogsRequest + (*ListUserAccountLogsRequest)(nil), // 1: pb.ListUserAccountLogsRequest + (*ListUserAccountLogsResponse)(nil), // 2: pb.ListUserAccountLogsResponse + (*UserAccountLog)(nil), // 3: pb.UserAccountLog + (*RPCCountResponse)(nil), // 4: pb.RPCCountResponse +} +var file_service_user_account_log_proto_depIdxs = []int32{ + 3, // 0: pb.ListUserAccountLogsResponse.userAccountLogs:type_name -> pb.UserAccountLog + 0, // 1: pb.UserAccountLogService.countUserAccountLogs:input_type -> pb.CountUserAccountLogsRequest + 1, // 2: pb.UserAccountLogService.listUserAccountLogs:input_type -> pb.ListUserAccountLogsRequest + 4, // 3: pb.UserAccountLogService.countUserAccountLogs:output_type -> pb.RPCCountResponse + 2, // 4: pb.UserAccountLogService.listUserAccountLogs:output_type -> pb.ListUserAccountLogsResponse + 3, // [3:5] is the sub-list for method output_type + 1, // [1:3] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_service_user_account_log_proto_init() } +func file_service_user_account_log_proto_init() { + if File_service_user_account_log_proto != nil { + return + } + file_models_model_user_account_log_proto_init() + file_models_rpc_messages_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_user_account_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountUserAccountLogsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_log_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountLogsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_account_log_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUserAccountLogsResponse); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_user_account_log_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_user_account_log_proto_goTypes, + DependencyIndexes: file_service_user_account_log_proto_depIdxs, + MessageInfos: file_service_user_account_log_proto_msgTypes, + }.Build() + File_service_user_account_log_proto = out.File + file_service_user_account_log_proto_rawDesc = nil + file_service_user_account_log_proto_goTypes = nil + file_service_user_account_log_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// UserAccountLogServiceClient is the client API for UserAccountLogService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserAccountLogServiceClient interface { + // 计算日志数量 + CountUserAccountLogs(ctx context.Context, in *CountUserAccountLogsRequest, opts ...grpc.CallOption) (*RPCCountResponse, error) + // 列出单页日志 + ListUserAccountLogs(ctx context.Context, in *ListUserAccountLogsRequest, opts ...grpc.CallOption) (*ListUserAccountLogsResponse, error) +} + +type userAccountLogServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewUserAccountLogServiceClient(cc grpc.ClientConnInterface) UserAccountLogServiceClient { + return &userAccountLogServiceClient{cc} +} + +func (c *userAccountLogServiceClient) CountUserAccountLogs(ctx context.Context, in *CountUserAccountLogsRequest, opts ...grpc.CallOption) (*RPCCountResponse, error) { + out := new(RPCCountResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountLogService/countUserAccountLogs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userAccountLogServiceClient) ListUserAccountLogs(ctx context.Context, in *ListUserAccountLogsRequest, opts ...grpc.CallOption) (*ListUserAccountLogsResponse, error) { + out := new(ListUserAccountLogsResponse) + err := c.cc.Invoke(ctx, "/pb.UserAccountLogService/listUserAccountLogs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserAccountLogServiceServer is the server API for UserAccountLogService service. +type UserAccountLogServiceServer interface { + // 计算日志数量 + CountUserAccountLogs(context.Context, *CountUserAccountLogsRequest) (*RPCCountResponse, error) + // 列出单页日志 + ListUserAccountLogs(context.Context, *ListUserAccountLogsRequest) (*ListUserAccountLogsResponse, error) +} + +// UnimplementedUserAccountLogServiceServer can be embedded to have forward compatible implementations. +type UnimplementedUserAccountLogServiceServer struct { +} + +func (*UnimplementedUserAccountLogServiceServer) CountUserAccountLogs(context.Context, *CountUserAccountLogsRequest) (*RPCCountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountUserAccountLogs not implemented") +} +func (*UnimplementedUserAccountLogServiceServer) ListUserAccountLogs(context.Context, *ListUserAccountLogsRequest) (*ListUserAccountLogsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUserAccountLogs not implemented") +} + +func RegisterUserAccountLogServiceServer(s *grpc.Server, srv UserAccountLogServiceServer) { + s.RegisterService(&_UserAccountLogService_serviceDesc, srv) +} + +func _UserAccountLogService_CountUserAccountLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountUserAccountLogsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountLogServiceServer).CountUserAccountLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountLogService/CountUserAccountLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountLogServiceServer).CountUserAccountLogs(ctx, req.(*CountUserAccountLogsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserAccountLogService_ListUserAccountLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUserAccountLogsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserAccountLogServiceServer).ListUserAccountLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserAccountLogService/ListUserAccountLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserAccountLogServiceServer).ListUserAccountLogs(ctx, req.(*ListUserAccountLogsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _UserAccountLogService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.UserAccountLogService", + HandlerType: (*UserAccountLogServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "countUserAccountLogs", + Handler: _UserAccountLogService_CountUserAccountLogs_Handler, + }, + { + MethodName: "listUserAccountLogs", + Handler: _UserAccountLogService_ListUserAccountLogs_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_user_account_log.proto", +} diff --git a/pkg/rpc/pb/service_user_plan.pb.go b/pkg/rpc/pb/service_user_plan.pb.go index ac3234d..e87ea02 100644 --- a/pkg/rpc/pb/service_user_plan.pb.go +++ b/pkg/rpc/pb/service_user_plan.pb.go @@ -30,18 +30,20 @@ const ( const _ = proto.ProtoPackageIsVersion4 // 添加已购套餐 -type CreateUserPlanRequest struct { +type BuyUserPlanRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` - PlanId int64 `protobuf:"varint,2,opt,name=planId,proto3" json:"planId,omitempty"` - DayTo string `protobuf:"bytes,3,opt,name=dayTo,proto3" json:"dayTo,omitempty"` + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + PlanId int64 `protobuf:"varint,2,opt,name=planId,proto3" json:"planId,omitempty"` + DayTo string `protobuf:"bytes,3,opt,name=dayTo,proto3" json:"dayTo,omitempty"` + Period string `protobuf:"bytes,4,opt,name=period,proto3" json:"period,omitempty"` + CountPeriod int32 `protobuf:"varint,5,opt,name=countPeriod,proto3" json:"countPeriod,omitempty"` } -func (x *CreateUserPlanRequest) Reset() { - *x = CreateUserPlanRequest{} +func (x *BuyUserPlanRequest) Reset() { + *x = BuyUserPlanRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_user_plan_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49,13 +51,13 @@ func (x *CreateUserPlanRequest) Reset() { } } -func (x *CreateUserPlanRequest) String() string { +func (x *BuyUserPlanRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateUserPlanRequest) ProtoMessage() {} +func (*BuyUserPlanRequest) ProtoMessage() {} -func (x *CreateUserPlanRequest) ProtoReflect() protoreflect.Message { +func (x *BuyUserPlanRequest) ProtoReflect() protoreflect.Message { mi := &file_service_user_plan_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67,33 +69,47 @@ func (x *CreateUserPlanRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateUserPlanRequest.ProtoReflect.Descriptor instead. -func (*CreateUserPlanRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use BuyUserPlanRequest.ProtoReflect.Descriptor instead. +func (*BuyUserPlanRequest) Descriptor() ([]byte, []int) { return file_service_user_plan_proto_rawDescGZIP(), []int{0} } -func (x *CreateUserPlanRequest) GetUserId() int64 { +func (x *BuyUserPlanRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } -func (x *CreateUserPlanRequest) GetPlanId() int64 { +func (x *BuyUserPlanRequest) GetPlanId() int64 { if x != nil { return x.PlanId } return 0 } -func (x *CreateUserPlanRequest) GetDayTo() string { +func (x *BuyUserPlanRequest) GetDayTo() string { if x != nil { return x.DayTo } return "" } -type CreateUserPlanResponse struct { +func (x *BuyUserPlanRequest) GetPeriod() string { + if x != nil { + return x.Period + } + return "" +} + +func (x *BuyUserPlanRequest) GetCountPeriod() int32 { + if x != nil { + return x.CountPeriod + } + return 0 +} + +type BuyUserPlanResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -101,8 +117,8 @@ type CreateUserPlanResponse struct { UserPlanId int64 `protobuf:"varint,1,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` } -func (x *CreateUserPlanResponse) Reset() { - *x = CreateUserPlanResponse{} +func (x *BuyUserPlanResponse) Reset() { + *x = BuyUserPlanResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_user_plan_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -110,13 +126,13 @@ func (x *CreateUserPlanResponse) Reset() { } } -func (x *CreateUserPlanResponse) String() string { +func (x *BuyUserPlanResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateUserPlanResponse) ProtoMessage() {} +func (*BuyUserPlanResponse) ProtoMessage() {} -func (x *CreateUserPlanResponse) ProtoReflect() protoreflect.Message { +func (x *BuyUserPlanResponse) ProtoReflect() protoreflect.Message { mi := &file_service_user_plan_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -128,18 +144,90 @@ func (x *CreateUserPlanResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateUserPlanResponse.ProtoReflect.Descriptor instead. -func (*CreateUserPlanResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use BuyUserPlanResponse.ProtoReflect.Descriptor instead. +func (*BuyUserPlanResponse) Descriptor() ([]byte, []int) { return file_service_user_plan_proto_rawDescGZIP(), []int{1} } -func (x *CreateUserPlanResponse) GetUserPlanId() int64 { +func (x *BuyUserPlanResponse) GetUserPlanId() int64 { if x != nil { return x.UserPlanId } return 0 } +// 续费套餐 +type RenewUserPlanRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserPlanId int64 `protobuf:"varint,1,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` + DayTo string `protobuf:"bytes,3,opt,name=dayTo,proto3" json:"dayTo,omitempty"` + Period string `protobuf:"bytes,4,opt,name=period,proto3" json:"period,omitempty"` + CountPeriod int32 `protobuf:"varint,5,opt,name=countPeriod,proto3" json:"countPeriod,omitempty"` +} + +func (x *RenewUserPlanRequest) Reset() { + *x = RenewUserPlanRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_user_plan_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RenewUserPlanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RenewUserPlanRequest) ProtoMessage() {} + +func (x *RenewUserPlanRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_user_plan_proto_msgTypes[2] + 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 RenewUserPlanRequest.ProtoReflect.Descriptor instead. +func (*RenewUserPlanRequest) Descriptor() ([]byte, []int) { + return file_service_user_plan_proto_rawDescGZIP(), []int{2} +} + +func (x *RenewUserPlanRequest) GetUserPlanId() int64 { + if x != nil { + return x.UserPlanId + } + return 0 +} + +func (x *RenewUserPlanRequest) GetDayTo() string { + if x != nil { + return x.DayTo + } + return "" +} + +func (x *RenewUserPlanRequest) GetPeriod() string { + if x != nil { + return x.Period + } + return "" +} + +func (x *RenewUserPlanRequest) GetCountPeriod() int32 { + if x != nil { + return x.CountPeriod + } + return 0 +} + // 查找单个已购套餐信息 type FindEnabledUserPlanRequest struct { state protoimpl.MessageState @@ -152,7 +240,7 @@ type FindEnabledUserPlanRequest struct { func (x *FindEnabledUserPlanRequest) Reset() { *x = FindEnabledUserPlanRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[2] + mi := &file_service_user_plan_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -165,7 +253,7 @@ func (x *FindEnabledUserPlanRequest) String() string { func (*FindEnabledUserPlanRequest) ProtoMessage() {} func (x *FindEnabledUserPlanRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[2] + mi := &file_service_user_plan_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -178,7 +266,7 @@ func (x *FindEnabledUserPlanRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FindEnabledUserPlanRequest.ProtoReflect.Descriptor instead. func (*FindEnabledUserPlanRequest) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{2} + return file_service_user_plan_proto_rawDescGZIP(), []int{3} } func (x *FindEnabledUserPlanRequest) GetUserPlanId() int64 { @@ -199,7 +287,7 @@ type FindEnabledUserPlanResponse struct { func (x *FindEnabledUserPlanResponse) Reset() { *x = FindEnabledUserPlanResponse{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[3] + mi := &file_service_user_plan_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -212,7 +300,7 @@ func (x *FindEnabledUserPlanResponse) String() string { func (*FindEnabledUserPlanResponse) ProtoMessage() {} func (x *FindEnabledUserPlanResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[3] + mi := &file_service_user_plan_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -225,7 +313,7 @@ func (x *FindEnabledUserPlanResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FindEnabledUserPlanResponse.ProtoReflect.Descriptor instead. func (*FindEnabledUserPlanResponse) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{3} + return file_service_user_plan_proto_rawDescGZIP(), []int{4} } func (x *FindEnabledUserPlanResponse) GetUserPlan() *UserPlan { @@ -250,7 +338,7 @@ type UpdateUserPlanRequest struct { func (x *UpdateUserPlanRequest) Reset() { *x = UpdateUserPlanRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[4] + mi := &file_service_user_plan_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -263,7 +351,7 @@ func (x *UpdateUserPlanRequest) String() string { func (*UpdateUserPlanRequest) ProtoMessage() {} func (x *UpdateUserPlanRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[4] + mi := &file_service_user_plan_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -276,7 +364,7 @@ func (x *UpdateUserPlanRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserPlanRequest.ProtoReflect.Descriptor instead. func (*UpdateUserPlanRequest) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{4} + return file_service_user_plan_proto_rawDescGZIP(), []int{5} } func (x *UpdateUserPlanRequest) GetUserPlanId() int64 { @@ -319,7 +407,7 @@ type DeleteUserPlanRequest struct { func (x *DeleteUserPlanRequest) Reset() { *x = DeleteUserPlanRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[5] + mi := &file_service_user_plan_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -332,7 +420,7 @@ func (x *DeleteUserPlanRequest) String() string { func (*DeleteUserPlanRequest) ProtoMessage() {} func (x *DeleteUserPlanRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[5] + mi := &file_service_user_plan_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -345,7 +433,7 @@ func (x *DeleteUserPlanRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserPlanRequest.ProtoReflect.Descriptor instead. func (*DeleteUserPlanRequest) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{5} + return file_service_user_plan_proto_rawDescGZIP(), []int{6} } func (x *DeleteUserPlanRequest) GetUserPlanId() int64 { @@ -370,7 +458,7 @@ type CountAllEnabledUserPlansRequest struct { func (x *CountAllEnabledUserPlansRequest) Reset() { *x = CountAllEnabledUserPlansRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[6] + mi := &file_service_user_plan_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -383,7 +471,7 @@ func (x *CountAllEnabledUserPlansRequest) String() string { func (*CountAllEnabledUserPlansRequest) ProtoMessage() {} func (x *CountAllEnabledUserPlansRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[6] + mi := &file_service_user_plan_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -396,7 +484,7 @@ func (x *CountAllEnabledUserPlansRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CountAllEnabledUserPlansRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledUserPlansRequest) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{6} + return file_service_user_plan_proto_rawDescGZIP(), []int{7} } func (x *CountAllEnabledUserPlansRequest) GetIsAvailable() bool { @@ -444,7 +532,7 @@ type ListEnabledUserPlansRequest struct { func (x *ListEnabledUserPlansRequest) Reset() { *x = ListEnabledUserPlansRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[7] + mi := &file_service_user_plan_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -457,7 +545,7 @@ func (x *ListEnabledUserPlansRequest) String() string { func (*ListEnabledUserPlansRequest) ProtoMessage() {} func (x *ListEnabledUserPlansRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[7] + mi := &file_service_user_plan_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -470,7 +558,7 @@ func (x *ListEnabledUserPlansRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEnabledUserPlansRequest.ProtoReflect.Descriptor instead. func (*ListEnabledUserPlansRequest) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{7} + return file_service_user_plan_proto_rawDescGZIP(), []int{8} } func (x *ListEnabledUserPlansRequest) GetIsAvailable() bool { @@ -526,7 +614,7 @@ type ListEnabledUserPlansResponse struct { func (x *ListEnabledUserPlansResponse) Reset() { *x = ListEnabledUserPlansResponse{} if protoimpl.UnsafeEnabled { - mi := &file_service_user_plan_proto_msgTypes[8] + mi := &file_service_user_plan_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -539,7 +627,7 @@ func (x *ListEnabledUserPlansResponse) String() string { func (*ListEnabledUserPlansResponse) ProtoMessage() {} func (x *ListEnabledUserPlansResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_user_plan_proto_msgTypes[8] + mi := &file_service_user_plan_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -552,7 +640,7 @@ func (x *ListEnabledUserPlansResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEnabledUserPlansResponse.ProtoReflect.Descriptor instead. func (*ListEnabledUserPlansResponse) Descriptor() ([]byte, []int) { - return file_service_user_plan_proto_rawDescGZIP(), []int{8} + return file_service_user_plan_proto_rawDescGZIP(), []int{9} } func (x *ListEnabledUserPlansResponse) GetUserPlans() []*UserPlan { @@ -570,69 +658,84 @@ var file_service_user_plan_proto_rawDesc = []byte{ 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5d, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x61, 0x79, 0x54, 0x6f, 0x22, 0x38, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, - 0x3c, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x42, 0x75, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, + 0x79, 0x54, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x35, 0x0a, + 0x13, 0x42, 0x75, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x47, 0x0a, - 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x22, 0x79, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x12, 0x12, 0x0a, - 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, - 0x6e, 0x22, 0x37, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x1f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x22, - 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, - 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x1b, 0x4c, - 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, - 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x22, 0x4a, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x32, 0xde, - 0x03, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x66, + 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, + 0x79, 0x54, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x3c, 0x0a, + 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, + 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x1b, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, + 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x6e, 0x22, 0x79, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, + 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x79, 0x54, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x73, 0x4f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x22, + 0x37, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x1f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, + 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x22, 0x4a, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2a, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, + 0x6e, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x32, 0x90, 0x04, 0x0a, + 0x0f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x3e, 0x0a, 0x0b, 0x62, 0x75, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x12, + 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x0d, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, + 0x6e, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, + 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, @@ -672,38 +775,41 @@ func file_service_user_plan_proto_rawDescGZIP() []byte { return file_service_user_plan_proto_rawDescData } -var file_service_user_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_service_user_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_service_user_plan_proto_goTypes = []interface{}{ - (*CreateUserPlanRequest)(nil), // 0: pb.CreateUserPlanRequest - (*CreateUserPlanResponse)(nil), // 1: pb.CreateUserPlanResponse - (*FindEnabledUserPlanRequest)(nil), // 2: pb.FindEnabledUserPlanRequest - (*FindEnabledUserPlanResponse)(nil), // 3: pb.FindEnabledUserPlanResponse - (*UpdateUserPlanRequest)(nil), // 4: pb.UpdateUserPlanRequest - (*DeleteUserPlanRequest)(nil), // 5: pb.DeleteUserPlanRequest - (*CountAllEnabledUserPlansRequest)(nil), // 6: pb.CountAllEnabledUserPlansRequest - (*ListEnabledUserPlansRequest)(nil), // 7: pb.ListEnabledUserPlansRequest - (*ListEnabledUserPlansResponse)(nil), // 8: pb.ListEnabledUserPlansResponse - (*UserPlan)(nil), // 9: pb.UserPlan - (*RPCSuccess)(nil), // 10: pb.RPCSuccess - (*RPCCountResponse)(nil), // 11: pb.RPCCountResponse + (*BuyUserPlanRequest)(nil), // 0: pb.BuyUserPlanRequest + (*BuyUserPlanResponse)(nil), // 1: pb.BuyUserPlanResponse + (*RenewUserPlanRequest)(nil), // 2: pb.RenewUserPlanRequest + (*FindEnabledUserPlanRequest)(nil), // 3: pb.FindEnabledUserPlanRequest + (*FindEnabledUserPlanResponse)(nil), // 4: pb.FindEnabledUserPlanResponse + (*UpdateUserPlanRequest)(nil), // 5: pb.UpdateUserPlanRequest + (*DeleteUserPlanRequest)(nil), // 6: pb.DeleteUserPlanRequest + (*CountAllEnabledUserPlansRequest)(nil), // 7: pb.CountAllEnabledUserPlansRequest + (*ListEnabledUserPlansRequest)(nil), // 8: pb.ListEnabledUserPlansRequest + (*ListEnabledUserPlansResponse)(nil), // 9: pb.ListEnabledUserPlansResponse + (*UserPlan)(nil), // 10: pb.UserPlan + (*RPCSuccess)(nil), // 11: pb.RPCSuccess + (*RPCCountResponse)(nil), // 12: pb.RPCCountResponse } var file_service_user_plan_proto_depIdxs = []int32{ - 9, // 0: pb.FindEnabledUserPlanResponse.userPlan:type_name -> pb.UserPlan - 9, // 1: pb.ListEnabledUserPlansResponse.userPlans:type_name -> pb.UserPlan - 0, // 2: pb.UserPlanService.createUserPlan:input_type -> pb.CreateUserPlanRequest - 2, // 3: pb.UserPlanService.findEnabledUserPlan:input_type -> pb.FindEnabledUserPlanRequest - 4, // 4: pb.UserPlanService.updateUserPlan:input_type -> pb.UpdateUserPlanRequest - 5, // 5: pb.UserPlanService.deleteUserPlan:input_type -> pb.DeleteUserPlanRequest - 6, // 6: pb.UserPlanService.countAllEnabledUserPlans:input_type -> pb.CountAllEnabledUserPlansRequest - 7, // 7: pb.UserPlanService.listEnabledUserPlans:input_type -> pb.ListEnabledUserPlansRequest - 1, // 8: pb.UserPlanService.createUserPlan:output_type -> pb.CreateUserPlanResponse - 3, // 9: pb.UserPlanService.findEnabledUserPlan:output_type -> pb.FindEnabledUserPlanResponse - 10, // 10: pb.UserPlanService.updateUserPlan:output_type -> pb.RPCSuccess - 10, // 11: pb.UserPlanService.deleteUserPlan:output_type -> pb.RPCSuccess - 11, // 12: pb.UserPlanService.countAllEnabledUserPlans:output_type -> pb.RPCCountResponse - 8, // 13: pb.UserPlanService.listEnabledUserPlans:output_type -> pb.ListEnabledUserPlansResponse - 8, // [8:14] is the sub-list for method output_type - 2, // [2:8] is the sub-list for method input_type + 10, // 0: pb.FindEnabledUserPlanResponse.userPlan:type_name -> pb.UserPlan + 10, // 1: pb.ListEnabledUserPlansResponse.userPlans:type_name -> pb.UserPlan + 0, // 2: pb.UserPlanService.buyUserPlan:input_type -> pb.BuyUserPlanRequest + 2, // 3: pb.UserPlanService.renewUserPlan:input_type -> pb.RenewUserPlanRequest + 3, // 4: pb.UserPlanService.findEnabledUserPlan:input_type -> pb.FindEnabledUserPlanRequest + 5, // 5: pb.UserPlanService.updateUserPlan:input_type -> pb.UpdateUserPlanRequest + 6, // 6: pb.UserPlanService.deleteUserPlan:input_type -> pb.DeleteUserPlanRequest + 7, // 7: pb.UserPlanService.countAllEnabledUserPlans:input_type -> pb.CountAllEnabledUserPlansRequest + 8, // 8: pb.UserPlanService.listEnabledUserPlans:input_type -> pb.ListEnabledUserPlansRequest + 1, // 9: pb.UserPlanService.buyUserPlan:output_type -> pb.BuyUserPlanResponse + 11, // 10: pb.UserPlanService.renewUserPlan:output_type -> pb.RPCSuccess + 4, // 11: pb.UserPlanService.findEnabledUserPlan:output_type -> pb.FindEnabledUserPlanResponse + 11, // 12: pb.UserPlanService.updateUserPlan:output_type -> pb.RPCSuccess + 11, // 13: pb.UserPlanService.deleteUserPlan:output_type -> pb.RPCSuccess + 12, // 14: pb.UserPlanService.countAllEnabledUserPlans:output_type -> pb.RPCCountResponse + 9, // 15: pb.UserPlanService.listEnabledUserPlans:output_type -> pb.ListEnabledUserPlansResponse + 9, // [9:16] is the sub-list for method output_type + 2, // [2:9] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name @@ -718,7 +824,7 @@ func file_service_user_plan_proto_init() { file_models_model_user_plan_proto_init() if !protoimpl.UnsafeEnabled { file_service_user_plan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateUserPlanRequest); i { + switch v := v.(*BuyUserPlanRequest); i { case 0: return &v.state case 1: @@ -730,7 +836,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateUserPlanResponse); i { + switch v := v.(*BuyUserPlanResponse); i { case 0: return &v.state case 1: @@ -742,7 +848,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindEnabledUserPlanRequest); i { + switch v := v.(*RenewUserPlanRequest); i { case 0: return &v.state case 1: @@ -754,7 +860,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindEnabledUserPlanResponse); i { + switch v := v.(*FindEnabledUserPlanRequest); i { case 0: return &v.state case 1: @@ -766,7 +872,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserPlanRequest); i { + switch v := v.(*FindEnabledUserPlanResponse); i { case 0: return &v.state case 1: @@ -778,7 +884,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserPlanRequest); i { + switch v := v.(*UpdateUserPlanRequest); i { case 0: return &v.state case 1: @@ -790,7 +896,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountAllEnabledUserPlansRequest); i { + switch v := v.(*DeleteUserPlanRequest); i { case 0: return &v.state case 1: @@ -802,7 +908,7 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListEnabledUserPlansRequest); i { + switch v := v.(*CountAllEnabledUserPlansRequest); i { case 0: return &v.state case 1: @@ -814,6 +920,18 @@ func file_service_user_plan_proto_init() { } } file_service_user_plan_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledUserPlansRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_user_plan_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledUserPlansResponse); i { case 0: return &v.state @@ -832,7 +950,7 @@ func file_service_user_plan_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_user_plan_proto_rawDesc, NumEnums: 0, - NumMessages: 9, + NumMessages: 10, NumExtensions: 0, NumServices: 1, }, @@ -858,8 +976,10 @@ const _ = grpc.SupportPackageIsVersion6 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type UserPlanServiceClient interface { - // 添加已购套餐 - CreateUserPlan(ctx context.Context, in *CreateUserPlanRequest, opts ...grpc.CallOption) (*CreateUserPlanResponse, error) + // 购买套餐 + BuyUserPlan(ctx context.Context, in *BuyUserPlanRequest, opts ...grpc.CallOption) (*BuyUserPlanResponse, error) + // 续费套餐 + RenewUserPlan(ctx context.Context, in *RenewUserPlanRequest, opts ...grpc.CallOption) (*RPCSuccess, error) // 查找单个已购套餐信息 FindEnabledUserPlan(ctx context.Context, in *FindEnabledUserPlanRequest, opts ...grpc.CallOption) (*FindEnabledUserPlanResponse, error) // 修改已购套餐 @@ -880,9 +1000,18 @@ func NewUserPlanServiceClient(cc grpc.ClientConnInterface) UserPlanServiceClient return &userPlanServiceClient{cc} } -func (c *userPlanServiceClient) CreateUserPlan(ctx context.Context, in *CreateUserPlanRequest, opts ...grpc.CallOption) (*CreateUserPlanResponse, error) { - out := new(CreateUserPlanResponse) - err := c.cc.Invoke(ctx, "/pb.UserPlanService/createUserPlan", in, out, opts...) +func (c *userPlanServiceClient) BuyUserPlan(ctx context.Context, in *BuyUserPlanRequest, opts ...grpc.CallOption) (*BuyUserPlanResponse, error) { + out := new(BuyUserPlanResponse) + err := c.cc.Invoke(ctx, "/pb.UserPlanService/buyUserPlan", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userPlanServiceClient) RenewUserPlan(ctx context.Context, in *RenewUserPlanRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, "/pb.UserPlanService/renewUserPlan", in, out, opts...) if err != nil { return nil, err } @@ -936,8 +1065,10 @@ func (c *userPlanServiceClient) ListEnabledUserPlans(ctx context.Context, in *Li // UserPlanServiceServer is the server API for UserPlanService service. type UserPlanServiceServer interface { - // 添加已购套餐 - CreateUserPlan(context.Context, *CreateUserPlanRequest) (*CreateUserPlanResponse, error) + // 购买套餐 + BuyUserPlan(context.Context, *BuyUserPlanRequest) (*BuyUserPlanResponse, error) + // 续费套餐 + RenewUserPlan(context.Context, *RenewUserPlanRequest) (*RPCSuccess, error) // 查找单个已购套餐信息 FindEnabledUserPlan(context.Context, *FindEnabledUserPlanRequest) (*FindEnabledUserPlanResponse, error) // 修改已购套餐 @@ -954,8 +1085,11 @@ type UserPlanServiceServer interface { type UnimplementedUserPlanServiceServer struct { } -func (*UnimplementedUserPlanServiceServer) CreateUserPlan(context.Context, *CreateUserPlanRequest) (*CreateUserPlanResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateUserPlan not implemented") +func (*UnimplementedUserPlanServiceServer) BuyUserPlan(context.Context, *BuyUserPlanRequest) (*BuyUserPlanResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BuyUserPlan not implemented") +} +func (*UnimplementedUserPlanServiceServer) RenewUserPlan(context.Context, *RenewUserPlanRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method RenewUserPlan not implemented") } func (*UnimplementedUserPlanServiceServer) FindEnabledUserPlan(context.Context, *FindEnabledUserPlanRequest) (*FindEnabledUserPlanResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FindEnabledUserPlan not implemented") @@ -977,20 +1111,38 @@ func RegisterUserPlanServiceServer(s *grpc.Server, srv UserPlanServiceServer) { s.RegisterService(&_UserPlanService_serviceDesc, srv) } -func _UserPlanService_CreateUserPlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateUserPlanRequest) +func _UserPlanService_BuyUserPlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BuyUserPlanRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserPlanServiceServer).CreateUserPlan(ctx, in) + return srv.(UserPlanServiceServer).BuyUserPlan(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/pb.UserPlanService/CreateUserPlan", + FullMethod: "/pb.UserPlanService/BuyUserPlan", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserPlanServiceServer).CreateUserPlan(ctx, req.(*CreateUserPlanRequest)) + return srv.(UserPlanServiceServer).BuyUserPlan(ctx, req.(*BuyUserPlanRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserPlanService_RenewUserPlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RenewUserPlanRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserPlanServiceServer).RenewUserPlan(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.UserPlanService/RenewUserPlan", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserPlanServiceServer).RenewUserPlan(ctx, req.(*RenewUserPlanRequest)) } return interceptor(ctx, in, info, handler) } @@ -1090,8 +1242,12 @@ var _UserPlanService_serviceDesc = grpc.ServiceDesc{ HandlerType: (*UserPlanServiceServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "createUserPlan", - Handler: _UserPlanService_CreateUserPlan_Handler, + MethodName: "buyUserPlan", + Handler: _UserPlanService_BuyUserPlan_Handler, + }, + { + MethodName: "renewUserPlan", + Handler: _UserPlanService_RenewUserPlan_Handler, }, { MethodName: "findEnabledUserPlan", diff --git a/pkg/rpc/protos/models/model_user_account.proto b/pkg/rpc/protos/models/model_user_account.proto new file mode 100644 index 0000000..e13375d --- /dev/null +++ b/pkg/rpc/protos/models/model_user_account.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_user.proto"; + +message UserAccount { + int64 id = 1; + int64 userId = 2; + float total = 3; + float totalFrozen = 4; + + User user = 30; +} \ No newline at end of file diff --git a/pkg/rpc/protos/models/model_user_account_daily_stat.proto b/pkg/rpc/protos/models/model_user_account_daily_stat.proto new file mode 100644 index 0000000..8439e0d --- /dev/null +++ b/pkg/rpc/protos/models/model_user_account_daily_stat.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +message UserAccountDailyStat { + int64 id = 1; + string day = 2; + string month = 3; + float income = 4; + float expense = 5; +} \ No newline at end of file diff --git a/pkg/rpc/protos/models/model_user_account_log.proto b/pkg/rpc/protos/models/model_user_account_log.proto new file mode 100644 index 0000000..de667a0 --- /dev/null +++ b/pkg/rpc/protos/models/model_user_account_log.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_user.proto"; +import "models/model_user_account.proto"; + +message UserAccountLog { + int64 id = 1; + int64 userId = 2; + int64 userAccountId = 3; + float delta = 4; + float deltaFrozen = 5; + float total = 6; + float totalFrozen = 7; + string eventType = 8; + string description = 9; + int64 createdAt = 10; + bytes paramsJSON = 11; + + User user = 30; + UserAccount userAccount = 31; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_user_account.proto b/pkg/rpc/protos/service_user_account.proto new file mode 100644 index 0000000..1281f12 --- /dev/null +++ b/pkg/rpc/protos/service_user_account.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_user_account.proto"; +import "models/rpc_messages.proto"; + +// 用户账户服务 +service UserAccountService { + // 计算账户数量 + rpc countUserAccounts(CountUserAccountsRequest) returns (RPCCountResponse); + + // 列出单页账户 + rpc listUserAccounts(ListUserAccountsRequest) returns (ListUserAccountsResponse); + + // 根据用户ID查找单个账户 + rpc findEnabledUserAccountWithUserId(FindEnabledUserAccountWithUserIdRequest) returns (FindEnabledUserAccountWithUserIdResponse); + + // 查找单个账户 + rpc findEnabledUserAccount(FindEnabledUserAccountRequest) returns (FindEnabledUserAccountResponse); + + // 修改用户账户 + rpc updateUserAccount(UpdateUserAccountRequest) returns (RPCSuccess); +} + +// 计算账户数量 +message CountUserAccountsRequest { + string keyword = 1; +} + +// 列出单页账户 +message ListUserAccountsRequest { + string keyword = 1; + int64 offset = 2; + int64 size = 3; +} + +message ListUserAccountsResponse { + repeated UserAccount userAccounts = 1; +} + +// 根据用户ID查找单个账户 +message FindEnabledUserAccountWithUserIdRequest { + int64 userId = 1; +} + +message FindEnabledUserAccountWithUserIdResponse { + UserAccount userAccount = 1; +} + +// 查找单个账户 +message FindEnabledUserAccountRequest { + int64 userAccountId = 1; +} + +message FindEnabledUserAccountResponse { + UserAccount userAccount = 1; +} + +// 修改用户账户 +message UpdateUserAccountRequest { + int64 userAccountId = 1; + float delta = 2; + string eventType = 3; + string description = 4; + bytes paramsJSON = 5; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_user_account_daily_stat.proto b/pkg/rpc/protos/service_user_account_daily_stat.proto new file mode 100644 index 0000000..8092da2 --- /dev/null +++ b/pkg/rpc/protos/service_user_account_daily_stat.proto @@ -0,0 +1,45 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +// 用户账户统计服务 +service UserAccountDailyStatService { + // 列出按天统计 + rpc listUserAccountDailyStats(ListUserAccountDailyStatsRequest) returns (ListUserAccountDailyStatsResponse); + + // 列出按月统计 + rpc listUserAccountMonthlyStats(ListUserAccountMonthlyStatsRequest) returns (ListUserAccountMonthlyStatsResponse); +} + +// 列出按天统计 +message ListUserAccountDailyStatsRequest { + string dayFrom = 1; + string dayTo = 2; +} + +message ListUserAccountDailyStatsResponse { + repeated Stat stats = 1; + + message Stat { + string day = 1; // YYYYMMDD + float income = 2; + float expense = 3; + } +} + +// 列出按月统计 +message ListUserAccountMonthlyStatsRequest { + string dayFrom = 1; + string dayTo = 2; +} + +message ListUserAccountMonthlyStatsResponse { + repeated Stat stats = 1; + + message Stat { + string month = 1; // YYYYMM + float income = 2; + float expense = 3; + } +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_user_account_log.proto b/pkg/rpc/protos/service_user_account_log.proto new file mode 100644 index 0000000..126cfae --- /dev/null +++ b/pkg/rpc/protos/service_user_account_log.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_user_account_log.proto"; +import "models/rpc_messages.proto"; + +// 用户账户日志服务 +service UserAccountLogService { + // 计算日志数量 + rpc countUserAccountLogs(CountUserAccountLogsRequest) returns (RPCCountResponse); + + // 列出单页日志 + rpc listUserAccountLogs(ListUserAccountLogsRequest) returns (ListUserAccountLogsResponse); +} + +// 计算日志数量 +message CountUserAccountLogsRequest { + int64 userAccountId = 1; + string keyword = 2; + string eventType = 3; +} + +// 列出单页日志 +message ListUserAccountLogsRequest { + int64 userAccountId = 1; + string keyword = 2; + string eventType = 3; + int64 offset = 4; + int64 size = 5; +} + +message ListUserAccountLogsResponse { + repeated UserAccountLog userAccountLogs = 1; +} + diff --git a/pkg/rpc/protos/service_user_plan.proto b/pkg/rpc/protos/service_user_plan.proto index 6f41921..53a7a12 100644 --- a/pkg/rpc/protos/service_user_plan.proto +++ b/pkg/rpc/protos/service_user_plan.proto @@ -8,8 +8,11 @@ import "models/model_user_plan.proto"; // 用户购买的套餐 service UserPlanService { - // 添加已购套餐 - rpc createUserPlan(CreateUserPlanRequest) returns (CreateUserPlanResponse); + // 购买套餐 + rpc buyUserPlan(BuyUserPlanRequest) returns (BuyUserPlanResponse); + + // 续费套餐 + rpc renewUserPlan(RenewUserPlanRequest) returns (RPCSuccess); // 查找单个已购套餐信息 rpc findEnabledUserPlan(FindEnabledUserPlanRequest) returns (FindEnabledUserPlanResponse); @@ -28,16 +31,26 @@ service UserPlanService { } // 添加已购套餐 -message CreateUserPlanRequest{ +message BuyUserPlanRequest{ int64 userId = 1; int64 planId = 2; string dayTo = 3; + string period = 4; + int32 countPeriod = 5; } -message CreateUserPlanResponse { +message BuyUserPlanResponse { int64 userPlanId = 1; } +// 续费套餐 +message RenewUserPlanRequest { + int64 userPlanId = 1; + string dayTo = 3; + string period = 4; + int32 countPeriod = 5; +} + // 查找单个已购套餐信息 message FindEnabledUserPlanRequest { int64 userPlanId = 1; diff --git a/pkg/userconfigs/account_events.go b/pkg/userconfigs/account_events.go new file mode 100644 index 0000000..e529855 --- /dev/null +++ b/pkg/userconfigs/account_events.go @@ -0,0 +1,78 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package userconfigs + +// 所有账户相关的事件类型 + +type AccountEventType = string + +const ( + AccountEventTypeCharge AccountEventType = "charge" // 充值 + AccountEventTypeAward AccountEventType = "award" // 赠送 + AccountEventTypeBuyPlan AccountEventType = "buyPlan" // 购买套餐 + AccountEventTypePayBill AccountEventType = "payBill" // 支付账单 + AccountEventTypeRefund AccountEventType = "refund" // 退款 + AccountEventTypeWithdraw AccountEventType = "withdraw" // 提现 +) + +type AccountEvent struct { + Name string `json:"name"` // 名称 + Code AccountEventType `json:"code"` // 代号 + Description string `json:"description"` // 描述 + IsPositive bool `json:"isPositive"` // 是否为正向 +} + +var AccountIncomeEventTypes = []AccountEventType{AccountEventTypeCharge} // 收入 +var AccountExpenseEventTypes = []AccountEventType{AccountEventTypeWithdraw} // 支出 + +// FindAllAccountEventTypes 查找所有的事件类型 +func FindAllAccountEventTypes() []*AccountEvent { + return []*AccountEvent{ + { + Name: "充值", + Code: AccountEventTypeCharge, + Description: "为用户账户充值。", + IsPositive: true, + }, + { + Name: "赠送", + Code: AccountEventTypeAward, + Description: "为用户账户赠送余额。", + IsPositive: true, + }, + { + Name: "购买套餐", + Code: AccountEventTypeBuyPlan, + Description: "购买套餐支出。", + IsPositive: false, + }, + { + Name: "支付账单", + Code: AccountEventTypePayBill, + Description: "支付账单支出。", + IsPositive: false, + }, + { + Name: "退款", + Code: AccountEventTypeRefund, + Description: "退款到用户账户。", + IsPositive: true, + }, + { + Name: "提现", + Code: AccountEventTypeWithdraw, + Description: "用户从账户提现。", + IsPositive: false, + }, + } +} + +// FindAccountEvent 根据事件类型查找事件定义 +func FindAccountEvent(eventType AccountEventType) *AccountEvent { + for _, e := range FindAllAccountEventTypes() { + if e.Code == eventType { + return e + } + } + return nil +}