فهرست منبع

每日签到提醒

wfz 3 سال پیش
والد
کامیت
687d707b78

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 456 - 377
api/account/account.pb.go


+ 11 - 0
api/account/account.proto

@@ -57,6 +57,10 @@ service Account {
       body:"*"
     };
   };
+  // 减少订阅消息
+  rpc ReduceSubscribeMessage (ReduceSubscribeMessageRequest) returns (google.protobuf.Empty){};
+  // 获取订阅了签到的人
+  rpc GetSignUser (google.protobuf.Empty) returns (common.PersonIDList){};
   rpc RandomAvatarList (common.SexReq) returns (RandomAvatarListReply){};
   // 通过openID和appID查询
   rpc GetIdentityByOpenIDAndAppID (OpenIDAndAppIDRequest) returns (IdentityInfo);
@@ -102,6 +106,8 @@ service Account {
   // 通过accountID获取Identify信息
   rpc GetIdentifyByAccountIDAndIsSubscribe (GetIdentifyByAccountIDRequest) returns (GetIdentifyByAccountIDReply){};
   // 通过accountID获取Identify信息
+  rpc GetIdentifyByAccountIDAndIsSubscribeByMiniProgram (GetIdentifyByAccountIDRequest) returns (GetIdentifyByAccountIDReply){};
+  // 通过accountID获取Identify信息
   rpc FindIdentifyByAccountIDAndIsSubscribe (FindIdentifyByAccountIDAndIsSubscribeRequest) returns (FindIdentifyByAccountIDAndIsSubscribeReply){};
   // 用户关注
   rpc UserSubscribe (OpenIDAndAppIDRequest) returns (google.protobuf.Empty){};
@@ -109,6 +115,11 @@ service Account {
   rpc UserUnsubscribe (OpenIDAndAppIDRequest) returns (google.protobuf.Empty){};
 }
 
+message ReduceSubscribeMessageRequest{
+  repeated string idList = 1;
+  string userId = 2;
+}
+
 message StatisticsSubscribeMessageRequest{
   repeated string idList = 1;
 }

+ 114 - 0
api/account/account_grpc.pb.go

@@ -29,6 +29,10 @@ type AccountClient interface {
 	GetGetGzhConfig(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetGetGzhConfigReply, error)
 	// 统计订阅消息
 	StatisticsSubscribeMessage(ctx context.Context, in *StatisticsSubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 减少订阅消息
+	ReduceSubscribeMessage(ctx context.Context, in *ReduceSubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 获取订阅了签到的人
+	GetSignUser(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.PersonIDList, error)
 	RandomAvatarList(ctx context.Context, in *common.SexReq, opts ...grpc.CallOption) (*RandomAvatarListReply, error)
 	// 通过openID和appID查询
 	GetIdentityByOpenIDAndAppID(ctx context.Context, in *OpenIDAndAppIDRequest, opts ...grpc.CallOption) (*IdentityInfo, error)
@@ -59,6 +63,8 @@ type AccountClient interface {
 	// 通过accountID获取Identify信息
 	GetIdentifyByAccountIDAndIsSubscribe(ctx context.Context, in *GetIdentifyByAccountIDRequest, opts ...grpc.CallOption) (*GetIdentifyByAccountIDReply, error)
 	// 通过accountID获取Identify信息
+	GetIdentifyByAccountIDAndIsSubscribeByMiniProgram(ctx context.Context, in *GetIdentifyByAccountIDRequest, opts ...grpc.CallOption) (*GetIdentifyByAccountIDReply, error)
+	// 通过accountID获取Identify信息
 	FindIdentifyByAccountIDAndIsSubscribe(ctx context.Context, in *FindIdentifyByAccountIDAndIsSubscribeRequest, opts ...grpc.CallOption) (*FindIdentifyByAccountIDAndIsSubscribeReply, error)
 	// 用户关注
 	UserSubscribe(ctx context.Context, in *OpenIDAndAppIDRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
@@ -137,6 +143,24 @@ func (c *accountClient) StatisticsSubscribeMessage(ctx context.Context, in *Stat
 	return out, nil
 }
 
+func (c *accountClient) ReduceSubscribeMessage(ctx context.Context, in *ReduceSubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.account.Account/ReduceSubscribeMessage", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accountClient) GetSignUser(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.PersonIDList, error) {
+	out := new(common.PersonIDList)
+	err := c.cc.Invoke(ctx, "/api.account.Account/GetSignUser", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *accountClient) RandomAvatarList(ctx context.Context, in *common.SexReq, opts ...grpc.CallOption) (*RandomAvatarListReply, error) {
 	out := new(RandomAvatarListReply)
 	err := c.cc.Invoke(ctx, "/api.account.Account/RandomAvatarList", in, out, opts...)
@@ -272,6 +296,15 @@ func (c *accountClient) GetIdentifyByAccountIDAndIsSubscribe(ctx context.Context
 	return out, nil
 }
 
+func (c *accountClient) GetIdentifyByAccountIDAndIsSubscribeByMiniProgram(ctx context.Context, in *GetIdentifyByAccountIDRequest, opts ...grpc.CallOption) (*GetIdentifyByAccountIDReply, error) {
+	out := new(GetIdentifyByAccountIDReply)
+	err := c.cc.Invoke(ctx, "/api.account.Account/GetIdentifyByAccountIDAndIsSubscribeByMiniProgram", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *accountClient) FindIdentifyByAccountIDAndIsSubscribe(ctx context.Context, in *FindIdentifyByAccountIDAndIsSubscribeRequest, opts ...grpc.CallOption) (*FindIdentifyByAccountIDAndIsSubscribeReply, error) {
 	out := new(FindIdentifyByAccountIDAndIsSubscribeReply)
 	err := c.cc.Invoke(ctx, "/api.account.Account/FindIdentifyByAccountIDAndIsSubscribe", in, out, opts...)
@@ -312,6 +345,10 @@ type AccountServer interface {
 	GetGetGzhConfig(context.Context, *emptypb.Empty) (*GetGetGzhConfigReply, error)
 	// 统计订阅消息
 	StatisticsSubscribeMessage(context.Context, *StatisticsSubscribeMessageRequest) (*emptypb.Empty, error)
+	// 减少订阅消息
+	ReduceSubscribeMessage(context.Context, *ReduceSubscribeMessageRequest) (*emptypb.Empty, error)
+	// 获取订阅了签到的人
+	GetSignUser(context.Context, *emptypb.Empty) (*common.PersonIDList, error)
 	RandomAvatarList(context.Context, *common.SexReq) (*RandomAvatarListReply, error)
 	// 通过openID和appID查询
 	GetIdentityByOpenIDAndAppID(context.Context, *OpenIDAndAppIDRequest) (*IdentityInfo, error)
@@ -342,6 +379,8 @@ type AccountServer interface {
 	// 通过accountID获取Identify信息
 	GetIdentifyByAccountIDAndIsSubscribe(context.Context, *GetIdentifyByAccountIDRequest) (*GetIdentifyByAccountIDReply, error)
 	// 通过accountID获取Identify信息
+	GetIdentifyByAccountIDAndIsSubscribeByMiniProgram(context.Context, *GetIdentifyByAccountIDRequest) (*GetIdentifyByAccountIDReply, error)
+	// 通过accountID获取Identify信息
 	FindIdentifyByAccountIDAndIsSubscribe(context.Context, *FindIdentifyByAccountIDAndIsSubscribeRequest) (*FindIdentifyByAccountIDAndIsSubscribeReply, error)
 	// 用户关注
 	UserSubscribe(context.Context, *OpenIDAndAppIDRequest) (*emptypb.Empty, error)
@@ -375,6 +414,12 @@ func (UnimplementedAccountServer) GetGetGzhConfig(context.Context, *emptypb.Empt
 func (UnimplementedAccountServer) StatisticsSubscribeMessage(context.Context, *StatisticsSubscribeMessageRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method StatisticsSubscribeMessage not implemented")
 }
+func (UnimplementedAccountServer) ReduceSubscribeMessage(context.Context, *ReduceSubscribeMessageRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ReduceSubscribeMessage not implemented")
+}
+func (UnimplementedAccountServer) GetSignUser(context.Context, *emptypb.Empty) (*common.PersonIDList, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetSignUser not implemented")
+}
 func (UnimplementedAccountServer) RandomAvatarList(context.Context, *common.SexReq) (*RandomAvatarListReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RandomAvatarList not implemented")
 }
@@ -420,6 +465,9 @@ func (UnimplementedAccountServer) GetIdentifyByAccountID(context.Context, *GetId
 func (UnimplementedAccountServer) GetIdentifyByAccountIDAndIsSubscribe(context.Context, *GetIdentifyByAccountIDRequest) (*GetIdentifyByAccountIDReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetIdentifyByAccountIDAndIsSubscribe not implemented")
 }
+func (UnimplementedAccountServer) GetIdentifyByAccountIDAndIsSubscribeByMiniProgram(context.Context, *GetIdentifyByAccountIDRequest) (*GetIdentifyByAccountIDReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetIdentifyByAccountIDAndIsSubscribeByMiniProgram not implemented")
+}
 func (UnimplementedAccountServer) FindIdentifyByAccountIDAndIsSubscribe(context.Context, *FindIdentifyByAccountIDAndIsSubscribeRequest) (*FindIdentifyByAccountIDAndIsSubscribeReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method FindIdentifyByAccountIDAndIsSubscribe not implemented")
 }
@@ -568,6 +616,42 @@ func _Account_StatisticsSubscribeMessage_Handler(srv interface{}, ctx context.Co
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Account_ReduceSubscribeMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ReduceSubscribeMessageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccountServer).ReduceSubscribeMessage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.account.Account/ReduceSubscribeMessage",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccountServer).ReduceSubscribeMessage(ctx, req.(*ReduceSubscribeMessageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Account_GetSignUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccountServer).GetSignUser(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.account.Account/GetSignUser",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccountServer).GetSignUser(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Account_RandomAvatarList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(common.SexReq)
 	if err := dec(in); err != nil {
@@ -838,6 +922,24 @@ func _Account_GetIdentifyByAccountIDAndIsSubscribe_Handler(srv interface{}, ctx
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Account_GetIdentifyByAccountIDAndIsSubscribeByMiniProgram_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetIdentifyByAccountIDRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccountServer).GetIdentifyByAccountIDAndIsSubscribeByMiniProgram(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.account.Account/GetIdentifyByAccountIDAndIsSubscribeByMiniProgram",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccountServer).GetIdentifyByAccountIDAndIsSubscribeByMiniProgram(ctx, req.(*GetIdentifyByAccountIDRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Account_FindIdentifyByAccountIDAndIsSubscribe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(FindIdentifyByAccountIDAndIsSubscribeRequest)
 	if err := dec(in); err != nil {
@@ -927,6 +1029,14 @@ var Account_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "StatisticsSubscribeMessage",
 			Handler:    _Account_StatisticsSubscribeMessage_Handler,
 		},
+		{
+			MethodName: "ReduceSubscribeMessage",
+			Handler:    _Account_ReduceSubscribeMessage_Handler,
+		},
+		{
+			MethodName: "GetSignUser",
+			Handler:    _Account_GetSignUser_Handler,
+		},
 		{
 			MethodName: "RandomAvatarList",
 			Handler:    _Account_RandomAvatarList_Handler,
@@ -987,6 +1097,10 @@ var Account_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "GetIdentifyByAccountIDAndIsSubscribe",
 			Handler:    _Account_GetIdentifyByAccountIDAndIsSubscribe_Handler,
 		},
+		{
+			MethodName: "GetIdentifyByAccountIDAndIsSubscribeByMiniProgram",
+			Handler:    _Account_GetIdentifyByAccountIDAndIsSubscribeByMiniProgram_Handler,
+		},
 		{
 			MethodName: "FindIdentifyByAccountIDAndIsSubscribe",
 			Handler:    _Account_FindIdentifyByAccountIDAndIsSubscribe_Handler,

+ 111 - 101
api/activity/activity.pb.go

@@ -7,6 +7,7 @@
 package activity
 
 import (
+	common "git.ikuban.com/server/pw-protobuf/api/common"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
@@ -447,99 +448,105 @@ var file_activity_proto_rawDesc = []byte{
 	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
 	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f,
 	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d,
-	0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x49, 0x0a, 0x1b, 0x46, 0x69, 0x6e,
-	0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x54, 0x79, 0x70,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72,
-	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
-	0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
-	0x74, 0x79, 0x70, 0x65, 0x22, 0x1d, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x02, 0x69, 0x64, 0x22, 0x3f, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74,
-	0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04,
-	0x6c, 0x69, 0x73, 0x74, 0x22, 0xc4, 0x01, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66,
-	0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
-	0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a,
-	0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63,
-	0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x46, 0x69, 0x6e, 0x69,
-	0x73, 0x68, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x61, 0x6e,
-	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6e,
-	0x69, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69,
-	0x6e, 0x69, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x43, 0x72,
-	0x65, 0x64, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67,
-	0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x13, 0x46,
-	0x69, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70,
-	0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e,
-	0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
-	0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69,
-	0x67, 0x6e, 0x22, 0x6a, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
-	0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x64,
-	0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73,
-	0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73,
-	0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0x29,
-	0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a,
-	0x08, 0x69, 0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x08, 0x69, 0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x32, 0xfd, 0x05, 0x0a, 0x08, 0x41, 0x63,
-	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x66, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x69,
-	0x67, 0x6e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
-	0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e,
-	0x46, 0x69, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x70, 0x6c, 0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70,
-	0x69, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4f,
-	0x0a, 0x04, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74,
-	0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x0e, 0x22, 0x09, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x01, 0x2a, 0x12,
-	0x5b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
-	0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
-	0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73,
-	0x69, 0x67, 0x6e, 0x2f, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x0c,
-	0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
-	0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76,
-	0x69, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f,
-	0x61, 0x70, 0x69, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a,
-	0x12, 0x5c, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x61,
-	0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
-	0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x74, 0x61, 0x73, 0x6b, 0x2f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x5f,
-	0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12,
-	0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x54,
-	0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+	0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x70, 0x69, 0x2f, 0x63,
+	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x22, 0x49, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65,
+	0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x1d, 0x0a,
+	0x0b, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02,
+	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3f, 0x0a, 0x11,
+	0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c,
+	0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x54,
+	0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xc4, 0x01,
+	0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
+	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16,
+	0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+	0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x22,
+	0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x18, 0x05,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4e,
+	0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x18,
+	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4e, 0x75, 0x6d,
+	0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4e, 0x75, 0x6d,
+	0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69,
+	0x74, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e,
+	0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x04, 0x6c,
+	0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x49,
+	0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x54,
+	0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
+	0x69, 0x73, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x22, 0x6a, 0x0a, 0x0a, 0x53,
+	0x69, 0x67, 0x6e, 0x49, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69,
+	0x73, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53,
+	0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12,
+	0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0x29, 0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x44, 0x6f, 0x75, 0x62,
+	0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x44, 0x6f, 0x75, 0x62,
+	0x6c, 0x65, 0x32, 0xc6, 0x06, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12,
+	0x66, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x4c, 0x69, 0x73,
+	0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x69, 0x67,
+	0x6e, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19, 0x82, 0xd3,
+	0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x2f,
+	0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x4f, 0x0a, 0x04, 0x53, 0x69, 0x67, 0x6e, 0x12,
+	0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x53,
+	0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
 	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
-	0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69,
-	0x2f, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x01, 0x2a, 0x12,
-	0x5b, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65, 0x54, 0x61, 0x73,
-	0x6b, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63,
-	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63,
-	0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x74, 0x79, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, 0x09, 0x2f, 0x61, 0x70, 0x69,
+	0x2f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x5b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53,
+	0x69, 0x67, 0x6e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+	0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+	0x14, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x2f, 0x61, 0x67, 0x61,
+	0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x73,
+	0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x6e,
+	0x64, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x61, 0x73,
+	0x6b, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x0a, 0x46, 0x69, 0x6e,
+	0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63,
+	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
 	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14,
-	0x53, 0x79, 0x6e, 0x63, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
-	0x63, 0x6f, 0x72, 0x64, 0x12, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76,
-	0x69, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65, 0x54, 0x61,
-	0x73, 0x6b, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
-	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x49, 0x0a, 0x0c, 0x61, 0x70, 0x69,
-	0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74,
-	0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76,
-	0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61,
-	0x70, 0x69, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3b, 0x61, 0x63, 0x74, 0x69,
-	0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93,
+	0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x66, 0x69,
+	0x6e, 0x69, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x61,
+	0x73, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61,
+	0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4,
+	0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x63,
+	0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5b, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x69,
+	0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65,
+	0x12, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e,
+	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79,
+	0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
+	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
+	0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x69, 0x6e,
+	0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x29, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x6e,
+	0x69, 0x73, 0x68, 0x4f, 0x6e, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x54, 0x79, 0x70,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+	0x22, 0x00, 0x12, 0x47, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53,
+	0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
+	0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72,
+	0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x42, 0x49, 0x0a, 0x0c, 0x61,
+	0x70, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x01, 0x5a, 0x37, 0x67,
+	0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65,
+	0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3b, 0x61, 0x63,
+	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -564,6 +571,7 @@ var file_activity_proto_goTypes = []interface{}{
 	(*SignInInfo)(nil),                  // 5: api.activity.SignInInfo
 	(*SignRequest)(nil),                 // 6: api.activity.SignRequest
 	(*emptypb.Empty)(nil),               // 7: google.protobuf.Empty
+	(*common.PersonIDList)(nil),         // 8: api.common.PersonIDList
 }
 var file_activity_proto_depIdxs = []int32{
 	3,  // 0: api.activity.FindTaskListReply.list:type_name -> api.activity.TaskInfo
@@ -576,16 +584,18 @@ var file_activity_proto_depIdxs = []int32{
 	1,  // 7: api.activity.Activity.GetTaskCredit:input_type -> api.activity.TaskRequest
 	0,  // 8: api.activity.Activity.FinishOnceTaskByType:input_type -> api.activity.FinishOnceTaskByTypeRequest
 	0,  // 9: api.activity.Activity.SyncFinishTaskRecord:input_type -> api.activity.FinishOnceTaskByTypeRequest
-	4,  // 10: api.activity.Activity.FindSignInList:output_type -> api.activity.FindSignInListReply
-	7,  // 11: api.activity.Activity.Sign:output_type -> google.protobuf.Empty
-	7,  // 12: api.activity.Activity.GetSignDouble:output_type -> google.protobuf.Empty
-	2,  // 13: api.activity.Activity.FindTaskList:output_type -> api.activity.FindTaskListReply
-	7,  // 14: api.activity.Activity.FinishTask:output_type -> google.protobuf.Empty
-	7,  // 15: api.activity.Activity.GetTaskCredit:output_type -> google.protobuf.Empty
-	7,  // 16: api.activity.Activity.FinishOnceTaskByType:output_type -> google.protobuf.Empty
-	7,  // 17: api.activity.Activity.SyncFinishTaskRecord:output_type -> google.protobuf.Empty
-	10, // [10:18] is the sub-list for method output_type
-	2,  // [2:10] is the sub-list for method input_type
+	7,  // 10: api.activity.Activity.FindTodaySignUser:input_type -> google.protobuf.Empty
+	4,  // 11: api.activity.Activity.FindSignInList:output_type -> api.activity.FindSignInListReply
+	7,  // 12: api.activity.Activity.Sign:output_type -> google.protobuf.Empty
+	7,  // 13: api.activity.Activity.GetSignDouble:output_type -> google.protobuf.Empty
+	2,  // 14: api.activity.Activity.FindTaskList:output_type -> api.activity.FindTaskListReply
+	7,  // 15: api.activity.Activity.FinishTask:output_type -> google.protobuf.Empty
+	7,  // 16: api.activity.Activity.GetTaskCredit:output_type -> google.protobuf.Empty
+	7,  // 17: api.activity.Activity.FinishOnceTaskByType:output_type -> google.protobuf.Empty
+	7,  // 18: api.activity.Activity.SyncFinishTaskRecord:output_type -> google.protobuf.Empty
+	8,  // 19: api.activity.Activity.FindTodaySignUser:output_type -> api.common.PersonIDList
+	11, // [11:20] is the sub-list for method output_type
+	2,  // [2:11] 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

+ 3 - 0
api/activity/activity.proto

@@ -5,6 +5,7 @@ package api.activity;
 import "google/api/annotations.proto";
 //import "google/protobuf/struct.proto";
 import "google/protobuf/empty.proto";
+import "api/common/common.proto";
 
 option go_package = "git.ikuban.com/server/pw-protobuf/api/activity;activity";
 option java_multiple_files = true;
@@ -58,6 +59,8 @@ service Activity {
   rpc FinishOnceTaskByType (FinishOnceTaskByTypeRequest) returns (google.protobuf.Empty){};
   // 用户在领取奖励后会在这里同步记录
   rpc SyncFinishTaskRecord (FinishOnceTaskByTypeRequest) returns (google.protobuf.Empty){};
+  // 获取今日已签到的用户
+  rpc FindTodaySignUser (google.protobuf.Empty) returns (common.PersonIDList){};
 }
 
 message FinishOnceTaskByTypeRequest{

+ 39 - 0
api/activity/activity_grpc.pb.go

@@ -4,6 +4,7 @@ package activity
 
 import (
 	context "context"
+	common "git.ikuban.com/server/pw-protobuf/api/common"
 	grpc "google.golang.org/grpc"
 	codes "google.golang.org/grpc/codes"
 	status "google.golang.org/grpc/status"
@@ -35,6 +36,8 @@ type ActivityClient interface {
 	FinishOnceTaskByType(ctx context.Context, in *FinishOnceTaskByTypeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	// 用户在领取奖励后会在这里同步记录
 	SyncFinishTaskRecord(ctx context.Context, in *FinishOnceTaskByTypeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 获取今日已签到的用户
+	FindTodaySignUser(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.PersonIDList, error)
 }
 
 type activityClient struct {
@@ -117,6 +120,15 @@ func (c *activityClient) SyncFinishTaskRecord(ctx context.Context, in *FinishOnc
 	return out, nil
 }
 
+func (c *activityClient) FindTodaySignUser(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.PersonIDList, error) {
+	out := new(common.PersonIDList)
+	err := c.cc.Invoke(ctx, "/api.activity.Activity/FindTodaySignUser", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // ActivityServer is the server API for Activity service.
 // All implementations must embed UnimplementedActivityServer
 // for forward compatibility
@@ -137,6 +149,8 @@ type ActivityServer interface {
 	FinishOnceTaskByType(context.Context, *FinishOnceTaskByTypeRequest) (*emptypb.Empty, error)
 	// 用户在领取奖励后会在这里同步记录
 	SyncFinishTaskRecord(context.Context, *FinishOnceTaskByTypeRequest) (*emptypb.Empty, error)
+	// 获取今日已签到的用户
+	FindTodaySignUser(context.Context, *emptypb.Empty) (*common.PersonIDList, error)
 	mustEmbedUnimplementedActivityServer()
 }
 
@@ -168,6 +182,9 @@ func (UnimplementedActivityServer) FinishOnceTaskByType(context.Context, *Finish
 func (UnimplementedActivityServer) SyncFinishTaskRecord(context.Context, *FinishOnceTaskByTypeRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SyncFinishTaskRecord not implemented")
 }
+func (UnimplementedActivityServer) FindTodaySignUser(context.Context, *emptypb.Empty) (*common.PersonIDList, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method FindTodaySignUser not implemented")
+}
 func (UnimplementedActivityServer) mustEmbedUnimplementedActivityServer() {}
 
 // UnsafeActivityServer may be embedded to opt out of forward compatibility for this service.
@@ -325,6 +342,24 @@ func _Activity_SyncFinishTaskRecord_Handler(srv interface{}, ctx context.Context
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Activity_FindTodaySignUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ActivityServer).FindTodaySignUser(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.activity.Activity/FindTodaySignUser",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ActivityServer).FindTodaySignUser(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // Activity_ServiceDesc is the grpc.ServiceDesc for Activity service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -364,6 +399,10 @@ var Activity_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "SyncFinishTaskRecord",
 			Handler:    _Activity_SyncFinishTaskRecord_Handler,
 		},
+		{
+			MethodName: "FindTodaySignUser",
+			Handler:    _Activity_FindTodaySignUser_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "activity.proto",

+ 2 - 2
js/api/account/account_http_pb.ts

@@ -1,7 +1,7 @@
 // @ts-ignore
 import request from '@/libs/request';
-import {DebugLoginRequest,TokenReply,AuthorizationRequest,AuthorizationMiniProgramRequest,MiniProgramTokenReply,RandomNicknameReply,RandomAvatarReply,GetGetGzhConfigReply,StatisticsSubscribeMessageRequest,RandomAvatarListReply,OpenIDAndAppIDRequest,IdentityInfo,MediaID,MaterialLink,CheckTextRequest,CheckTextReply,GetIdentifyByAccountIDRequest,GetIdentifyByAccountIDReply,FindIdentifyByAccountIDAndIsSubscribeRequest,FindIdentifyByAccountIDAndIsSubscribeReply} from "./account_pb";
-import {SexReq,TagListReply,Ids,RandomIntroduceReply,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,GetLoginConfigRequest,GetLoginConfigReply} from "../common/common_pb";
+import {DebugLoginRequest,TokenReply,AuthorizationRequest,AuthorizationMiniProgramRequest,MiniProgramTokenReply,RandomNicknameReply,RandomAvatarReply,GetGetGzhConfigReply,StatisticsSubscribeMessageRequest,ReduceSubscribeMessageRequest,RandomAvatarListReply,OpenIDAndAppIDRequest,IdentityInfo,MediaID,MaterialLink,CheckTextRequest,CheckTextReply,GetIdentifyByAccountIDRequest,GetIdentifyByAccountIDReply,FindIdentifyByAccountIDAndIsSubscribeRequest,FindIdentifyByAccountIDAndIsSubscribeReply} from "./account_pb";
+import {SexReq,PersonIDList,TagListReply,Ids,RandomIntroduceReply,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,GetLoginConfigRequest,GetLoginConfigReply} from "../common/common_pb";
 
 const AccountService = {
   DebugLogin: async (req?: DebugLoginRequest) => {

+ 4 - 0
js/api/account/account_pb.ts

@@ -1,3 +1,7 @@
+export interface ReduceSubscribeMessageRequest{
+    idList?:Array<string>;
+    userId?:string;
+}
 export interface StatisticsSubscribeMessageRequest{
     idList?:Array<string>;
 }

+ 1 - 0
js/api/activity/activity_http_pb.ts

@@ -1,6 +1,7 @@
 // @ts-ignore
 import request from '@/libs/request';
 import {FindSignInListReply,SignRequest,FindTaskListReply,TaskRequest,FinishOnceTaskByTypeRequest} from "./activity_pb";
+import {PersonIDList} from "../common/common_pb";
 
 const ActivityService = {
   /**  签到列表 */

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است