wfz 3 years ago
parent
commit
ead7811ab0

+ 9 - 9
api/account/account.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: account.proto
 
 package account
@@ -67,7 +67,7 @@ func (x *StatisticsSubscribeMessageRequest) GetIdList() []string {
 	if x != nil {
 		return x.IdList
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type FindIdentifyByAccountIDAndIsSubscribeRequest struct {
@@ -114,7 +114,7 @@ func (x *FindIdentifyByAccountIDAndIsSubscribeRequest) GetAccountIds() []int64 {
 	if x != nil {
 		return x.AccountIds
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 type FindIdentifyByAccountIDAndIsSubscribeReply struct {
@@ -161,7 +161,7 @@ func (x *FindIdentifyByAccountIDAndIsSubscribeReply) GetList() []*FindIdentifyBy
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*FindIdentifyByAccountIDInfo, 0)
 }
 
 type FindIdentifyByAccountIDInfo struct {
@@ -326,21 +326,21 @@ func (x *GetGetGzhConfigReply) GetNoteSubscribeTemplateIds() []string {
 	if x != nil {
 		return x.NoteSubscribeTemplateIds
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *GetGetGzhConfigReply) GetChatSubscribeTemplateIds() []string {
 	if x != nil {
 		return x.ChatSubscribeTemplateIds
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *GetGetGzhConfigReply) GetRegisterSubscribeTemplateIds() []string {
 	if x != nil {
 		return x.RegisterSubscribeTemplateIds
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *GetGetGzhConfigReply) GetContactUrl() string {
@@ -822,7 +822,7 @@ func (x *RandomAvatarListReply) GetList() []string {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type OpenIDAndAppIDRequest struct {

+ 341 - 69
api/activity/activity.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: activity.proto
 
 package activity
@@ -22,6 +22,195 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
+type TaskRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` // 任务ID
+}
+
+func (x *TaskRequest) Reset() {
+	*x = TaskRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_activity_proto_msgTypes[0]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *TaskRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskRequest) ProtoMessage() {}
+
+func (x *TaskRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_activity_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 TaskRequest.ProtoReflect.Descriptor instead.
+func (*TaskRequest) Descriptor() ([]byte, []int) {
+	return file_activity_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *TaskRequest) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+type FindTaskListReply struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	List []*TaskInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"`
+}
+
+func (x *FindTaskListReply) Reset() {
+	*x = FindTaskListReply{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_activity_proto_msgTypes[1]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *FindTaskListReply) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FindTaskListReply) ProtoMessage() {}
+
+func (x *FindTaskListReply) ProtoReflect() protoreflect.Message {
+	mi := &file_activity_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 FindTaskListReply.ProtoReflect.Descriptor instead.
+func (*FindTaskListReply) Descriptor() ([]byte, []int) {
+	return file_activity_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *FindTaskListReply) GetList() []*TaskInfo {
+	if x != nil {
+		return x.List
+	}
+	return make([]*TaskInfo, 0)
+}
+
+type TaskInfo struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Id           int64  `protobuf:"varint,1,opt,name=id,proto3" json:"id"`                     // 任务ID
+	Type         string `protobuf:"bytes,2,opt,name=type,proto3" json:"type"`                  // 任务类型
+	Detail       string `protobuf:"bytes,3,opt,name=detail,proto3" json:"detail"`              // 任务要求
+	Credit       int64  `protobuf:"varint,4,opt,name=credit,proto3" json:"credit"`             // 完成任务获取的积分
+	CanFinishNum int64  `protobuf:"varint,5,opt,name=canFinishNum,proto3" json:"canFinishNum"` // 可完成任务的总次数
+	FinishNum    int64  `protobuf:"varint,6,opt,name=finishNum,proto3" json:"finishNum"`       // 已完成任务的次数
+	GetCreditNum int64  `protobuf:"varint,7,opt,name=getCreditNum,proto3" json:"getCreditNum"` // 已获取奖励的次数
+}
+
+func (x *TaskInfo) Reset() {
+	*x = TaskInfo{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_activity_proto_msgTypes[2]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *TaskInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TaskInfo) ProtoMessage() {}
+
+func (x *TaskInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_activity_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 TaskInfo.ProtoReflect.Descriptor instead.
+func (*TaskInfo) Descriptor() ([]byte, []int) {
+	return file_activity_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *TaskInfo) GetId() int64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *TaskInfo) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *TaskInfo) GetDetail() string {
+	if x != nil {
+		return x.Detail
+	}
+	return ""
+}
+
+func (x *TaskInfo) GetCredit() int64 {
+	if x != nil {
+		return x.Credit
+	}
+	return 0
+}
+
+func (x *TaskInfo) GetCanFinishNum() int64 {
+	if x != nil {
+		return x.CanFinishNum
+	}
+	return 0
+}
+
+func (x *TaskInfo) GetFinishNum() int64 {
+	if x != nil {
+		return x.FinishNum
+	}
+	return 0
+}
+
+func (x *TaskInfo) GetGetCreditNum() int64 {
+	if x != nil {
+		return x.GetCreditNum
+	}
+	return 0
+}
+
 type FindSignInListReply struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -33,7 +222,7 @@ type FindSignInListReply struct {
 func (x *FindSignInListReply) Reset() {
 	*x = FindSignInListReply{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_activity_proto_msgTypes[0]
+		mi := &file_activity_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -46,7 +235,7 @@ func (x *FindSignInListReply) String() string {
 func (*FindSignInListReply) ProtoMessage() {}
 
 func (x *FindSignInListReply) ProtoReflect() protoreflect.Message {
-	mi := &file_activity_proto_msgTypes[0]
+	mi := &file_activity_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -59,14 +248,14 @@ func (x *FindSignInListReply) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FindSignInListReply.ProtoReflect.Descriptor instead.
 func (*FindSignInListReply) Descriptor() ([]byte, []int) {
-	return file_activity_proto_rawDescGZIP(), []int{0}
+	return file_activity_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *FindSignInListReply) GetList() []*SignInInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*SignInInfo, 0)
 }
 
 type SignInInfo struct {
@@ -83,7 +272,7 @@ type SignInInfo struct {
 func (x *SignInInfo) Reset() {
 	*x = SignInInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_activity_proto_msgTypes[1]
+		mi := &file_activity_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -96,7 +285,7 @@ func (x *SignInInfo) String() string {
 func (*SignInInfo) ProtoMessage() {}
 
 func (x *SignInInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_activity_proto_msgTypes[1]
+	mi := &file_activity_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -109,7 +298,7 @@ func (x *SignInInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SignInInfo.ProtoReflect.Descriptor instead.
 func (*SignInInfo) Descriptor() ([]byte, []int) {
-	return file_activity_proto_rawDescGZIP(), []int{1}
+	return file_activity_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *SignInInfo) GetDay() int64 {
@@ -151,7 +340,7 @@ type SignRequest struct {
 func (x *SignRequest) Reset() {
 	*x = SignRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_activity_proto_msgTypes[2]
+		mi := &file_activity_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -164,7 +353,7 @@ func (x *SignRequest) String() string {
 func (*SignRequest) ProtoMessage() {}
 
 func (x *SignRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_activity_proto_msgTypes[2]
+	mi := &file_activity_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -177,7 +366,7 @@ func (x *SignRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SignRequest.ProtoReflect.Descriptor instead.
 func (*SignRequest) Descriptor() ([]byte, []int) {
-	return file_activity_proto_rawDescGZIP(), []int{2}
+	return file_activity_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *SignRequest) GetIsDouble() bool {
@@ -195,44 +384,81 @@ 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, 0x43, 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, 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, 0xa0, 0x02, 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,
+	0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x43, 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, 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, 0xc3, 0x04, 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, 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, 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,
+	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, 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 (
@@ -247,26 +473,36 @@ func file_activity_proto_rawDescGZIP() []byte {
 	return file_activity_proto_rawDescData
 }
 
-var file_activity_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_activity_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
 var file_activity_proto_goTypes = []interface{}{
-	(*FindSignInListReply)(nil), // 0: api.activity.FindSignInListReply
-	(*SignInInfo)(nil),          // 1: api.activity.SignInInfo
-	(*SignRequest)(nil),         // 2: api.activity.SignRequest
-	(*emptypb.Empty)(nil),       // 3: google.protobuf.Empty
+	(*TaskRequest)(nil),         // 0: api.activity.TaskRequest
+	(*FindTaskListReply)(nil),   // 1: api.activity.FindTaskListReply
+	(*TaskInfo)(nil),            // 2: api.activity.TaskInfo
+	(*FindSignInListReply)(nil), // 3: api.activity.FindSignInListReply
+	(*SignInInfo)(nil),          // 4: api.activity.SignInInfo
+	(*SignRequest)(nil),         // 5: api.activity.SignRequest
+	(*emptypb.Empty)(nil),       // 6: google.protobuf.Empty
 }
 var file_activity_proto_depIdxs = []int32{
-	1, // 0: api.activity.FindSignInListReply.list:type_name -> api.activity.SignInInfo
-	3, // 1: api.activity.Activity.FindSignInList:input_type -> google.protobuf.Empty
-	2, // 2: api.activity.Activity.Sign:input_type -> api.activity.SignRequest
-	3, // 3: api.activity.Activity.GetSignDouble:input_type -> google.protobuf.Empty
-	0, // 4: api.activity.Activity.FindSignInList:output_type -> api.activity.FindSignInListReply
-	3, // 5: api.activity.Activity.Sign:output_type -> google.protobuf.Empty
-	3, // 6: api.activity.Activity.GetSignDouble:output_type -> google.protobuf.Empty
-	4, // [4:7] is the sub-list for method output_type
-	1, // [1:4] 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
+	2, // 0: api.activity.FindTaskListReply.list:type_name -> api.activity.TaskInfo
+	4, // 1: api.activity.FindSignInListReply.list:type_name -> api.activity.SignInInfo
+	6, // 2: api.activity.Activity.FindSignInList:input_type -> google.protobuf.Empty
+	5, // 3: api.activity.Activity.Sign:input_type -> api.activity.SignRequest
+	6, // 4: api.activity.Activity.GetSignDouble:input_type -> google.protobuf.Empty
+	6, // 5: api.activity.Activity.FindTaskList:input_type -> google.protobuf.Empty
+	0, // 6: api.activity.Activity.FinishTask:input_type -> api.activity.TaskRequest
+	0, // 7: api.activity.Activity.GetTaskCredit:input_type -> api.activity.TaskRequest
+	3, // 8: api.activity.Activity.FindSignInList:output_type -> api.activity.FindSignInListReply
+	6, // 9: api.activity.Activity.Sign:output_type -> google.protobuf.Empty
+	6, // 10: api.activity.Activity.GetSignDouble:output_type -> google.protobuf.Empty
+	1, // 11: api.activity.Activity.FindTaskList:output_type -> api.activity.FindTaskListReply
+	6, // 12: api.activity.Activity.FinishTask:output_type -> google.protobuf.Empty
+	6, // 13: api.activity.Activity.GetTaskCredit:output_type -> google.protobuf.Empty
+	8, // [8:14] is the sub-list for method output_type
+	2, // [2:8] 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_activity_proto_init() }
@@ -276,7 +512,7 @@ func file_activity_proto_init() {
 	}
 	if !protoimpl.UnsafeEnabled {
 		file_activity_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FindSignInListReply); i {
+			switch v := v.(*TaskRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -288,7 +524,7 @@ func file_activity_proto_init() {
 			}
 		}
 		file_activity_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SignInInfo); i {
+			switch v := v.(*FindTaskListReply); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -300,6 +536,42 @@ func file_activity_proto_init() {
 			}
 		}
 		file_activity_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*TaskInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_activity_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*FindSignInListReply); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_activity_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SignInInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_activity_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*SignRequest); i {
 			case 0:
 				return &v.state
@@ -318,7 +590,7 @@ func file_activity_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_activity_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   3,
+			NumMessages:   6,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 43 - 0
api/activity/activity.proto

@@ -11,24 +11,67 @@ option java_multiple_files = true;
 option java_package = "api.activity";
 
 service Activity {
+  // 签到列表
   rpc FindSignInList (google.protobuf.Empty) returns (FindSignInListReply){
     option (google.api.http) = {
       post: "/api/sign/list",
       body:"*"
     };
   };
+  // 签到
   rpc Sign (SignRequest) returns (google.protobuf.Empty){
     option (google.api.http) = {
       post: "/api/sign",
       body:"*"
     };
   };
+  // 补签双倍
   rpc GetSignDouble (google.protobuf.Empty) returns (google.protobuf.Empty){
     option (google.api.http) = {
       post: "/api/sign/again",
       body:"*"
     };
   };
+
+  // 查询任务列表
+  rpc FindTaskList (google.protobuf.Empty) returns (FindTaskListReply){
+    option (google.api.http) = {
+      post: "/api/task/list",
+      body:"*"
+    };
+  };
+  // 完成任务
+  rpc FinishTask (TaskRequest) returns (google.protobuf.Empty){
+    option (google.api.http) = {
+      post: "/api/task/finish",
+      body:"*"
+    };
+  };
+  // 获取任务奖励
+  rpc GetTaskCredit (TaskRequest) returns (google.protobuf.Empty){
+    option (google.api.http) = {
+      post: "/api/task/credit",
+      body:"*"
+    };
+  };
+}
+
+message TaskRequest{
+  int64 id = 1;// 任务ID
+}
+
+message FindTaskListReply{
+  repeated TaskInfo list = 1;
+}
+
+message TaskInfo{
+  int64 id = 1;// 任务ID
+  string type = 2;// 任务类型
+  string detail = 3;// 任务要求
+  int64 credit = 4;// 完成任务获取的积分
+  int64 canFinishNum = 5;// 可完成任务的总次数
+  int64 finishNum  = 6;// 已完成任务的次数
+  int64 getCreditNum = 7;// 已获取奖励的次数
 }
 
 message FindSignInListReply{

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

@@ -19,9 +19,18 @@ const _ = grpc.SupportPackageIsVersion7
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type ActivityClient interface {
+	// 签到列表
 	FindSignInList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FindSignInListReply, error)
+	// 签到
 	Sign(ctx context.Context, in *SignRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 补签双倍
 	GetSignDouble(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 查询任务列表
+	FindTaskList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FindTaskListReply, error)
+	// 完成任务
+	FinishTask(ctx context.Context, in *TaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 获取任务奖励
+	GetTaskCredit(ctx context.Context, in *TaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 }
 
 type activityClient struct {
@@ -59,13 +68,49 @@ func (c *activityClient) GetSignDouble(ctx context.Context, in *emptypb.Empty, o
 	return out, nil
 }
 
+func (c *activityClient) FindTaskList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FindTaskListReply, error) {
+	out := new(FindTaskListReply)
+	err := c.cc.Invoke(ctx, "/api.activity.Activity/FindTaskList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *activityClient) FinishTask(ctx context.Context, in *TaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.activity.Activity/FinishTask", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *activityClient) GetTaskCredit(ctx context.Context, in *TaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.activity.Activity/GetTaskCredit", 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
 type ActivityServer interface {
+	// 签到列表
 	FindSignInList(context.Context, *emptypb.Empty) (*FindSignInListReply, error)
+	// 签到
 	Sign(context.Context, *SignRequest) (*emptypb.Empty, error)
+	// 补签双倍
 	GetSignDouble(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
+	// 查询任务列表
+	FindTaskList(context.Context, *emptypb.Empty) (*FindTaskListReply, error)
+	// 完成任务
+	FinishTask(context.Context, *TaskRequest) (*emptypb.Empty, error)
+	// 获取任务奖励
+	GetTaskCredit(context.Context, *TaskRequest) (*emptypb.Empty, error)
 	mustEmbedUnimplementedActivityServer()
 }
 
@@ -82,6 +127,15 @@ func (UnimplementedActivityServer) Sign(context.Context, *SignRequest) (*emptypb
 func (UnimplementedActivityServer) GetSignDouble(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetSignDouble not implemented")
 }
+func (UnimplementedActivityServer) FindTaskList(context.Context, *emptypb.Empty) (*FindTaskListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method FindTaskList not implemented")
+}
+func (UnimplementedActivityServer) FinishTask(context.Context, *TaskRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method FinishTask not implemented")
+}
+func (UnimplementedActivityServer) GetTaskCredit(context.Context, *TaskRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetTaskCredit not implemented")
+}
 func (UnimplementedActivityServer) mustEmbedUnimplementedActivityServer() {}
 
 // UnsafeActivityServer may be embedded to opt out of forward compatibility for this service.
@@ -149,6 +203,60 @@ func _Activity_GetSignDouble_Handler(srv interface{}, ctx context.Context, dec f
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Activity_FindTaskList_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).FindTaskList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.activity.Activity/FindTaskList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ActivityServer).FindTaskList(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Activity_FinishTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TaskRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ActivityServer).FinishTask(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.activity.Activity/FinishTask",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ActivityServer).FinishTask(ctx, req.(*TaskRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Activity_GetTaskCredit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TaskRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ActivityServer).GetTaskCredit(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.activity.Activity/GetTaskCredit",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ActivityServer).GetTaskCredit(ctx, req.(*TaskRequest))
+	}
+	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)
@@ -168,6 +276,18 @@ var Activity_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "GetSignDouble",
 			Handler:    _Activity_GetSignDouble_Handler,
 		},
+		{
+			MethodName: "FindTaskList",
+			Handler:    _Activity_FindTaskList_Handler,
+		},
+		{
+			MethodName: "FinishTask",
+			Handler:    _Activity_FinishTask_Handler,
+		},
+		{
+			MethodName: "GetTaskCredit",
+			Handler:    _Activity_GetTaskCredit_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "activity.proto",

+ 129 - 0
api/activity/activity_http.pb.go

@@ -28,7 +28,10 @@ const _ = http.SupportPackageIsVersion1
 
 type ActivityHTTPServer interface {
 	FindSignInList(context.Context, *emptypb.Empty) (*FindSignInListReply, error)
+	FindTaskList(context.Context, *emptypb.Empty) (*FindTaskListReply, error)
+	FinishTask(context.Context, *TaskRequest) (*emptypb.Empty, error)
 	GetSignDouble(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
+	GetTaskCredit(context.Context, *TaskRequest) (*emptypb.Empty, error)
 	Sign(context.Context, *SignRequest) (*emptypb.Empty, error)
 }
 
@@ -37,6 +40,9 @@ func RegisterActivityHTTPServer(s *http.Server, srv ActivityHTTPServer) {
 	r.POST("/api/sign/list", _Activity_FindSignInList0_HTTP_Handler(srv))
 	r.POST("/api/sign", _Activity_Sign0_HTTP_Handler(srv))
 	r.POST("/api/sign/again", _Activity_GetSignDouble0_HTTP_Handler(srv))
+	r.POST("/api/task/list", _Activity_FindTaskList0_HTTP_Handler(srv))
+	r.POST("/api/task/finish", _Activity_FinishTask0_HTTP_Handler(srv))
+	r.POST("/api/task/credit", _Activity_GetTaskCredit0_HTTP_Handler(srv))
 }
 
 func _Activity_FindSignInList0_HTTP_Handler(srv ActivityHTTPServer) func(ctx http.Context) error {
@@ -120,9 +126,93 @@ func _Activity_GetSignDouble0_HTTP_Handler(srv ActivityHTTPServer) func(ctx http
 	}
 }
 
+func _Activity_FindTaskList0_HTTP_Handler(srv ActivityHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in emptypb.Empty
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.activity.Activity/FindTaskList")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.FindTaskList(ctx, req.(*emptypb.Empty))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
+func _Activity_FinishTask0_HTTP_Handler(srv ActivityHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in TaskRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.activity.Activity/FinishTask")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.FinishTask(ctx, req.(*TaskRequest))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
+func _Activity_GetTaskCredit0_HTTP_Handler(srv ActivityHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in TaskRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.activity.Activity/GetTaskCredit")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.GetTaskCredit(ctx, req.(*TaskRequest))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
 type ActivityHTTPClient interface {
 	FindSignInList(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *FindSignInListReply, err error)
+	FindTaskList(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *FindTaskListReply, err error)
+	FinishTask(ctx context.Context, req *TaskRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	GetSignDouble(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
+	GetTaskCredit(ctx context.Context, req *TaskRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	Sign(ctx context.Context, req *SignRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 }
 
@@ -147,6 +237,32 @@ func (c *ActivityHTTPClientImpl) FindSignInList(ctx context.Context, in *emptypb
 	return &out, err
 }
 
+func (c *ActivityHTTPClientImpl) FindTaskList(ctx context.Context, in *emptypb.Empty, opts ...http.CallOption) (*FindTaskListReply, error) {
+	var out FindTaskListReply
+	pattern := "/api/task/list"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.activity.Activity/FindTaskList"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
+func (c *ActivityHTTPClientImpl) FinishTask(ctx context.Context, in *TaskRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
+	var out emptypb.Empty
+	pattern := "/api/task/finish"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.activity.Activity/FinishTask"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *ActivityHTTPClientImpl) GetSignDouble(ctx context.Context, in *emptypb.Empty, opts ...http.CallOption) (*emptypb.Empty, error) {
 	var out emptypb.Empty
 	pattern := "/api/sign/again"
@@ -160,6 +276,19 @@ func (c *ActivityHTTPClientImpl) GetSignDouble(ctx context.Context, in *emptypb.
 	return &out, err
 }
 
+func (c *ActivityHTTPClientImpl) GetTaskCredit(ctx context.Context, in *TaskRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
+	var out emptypb.Empty
+	pattern := "/api/task/credit"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.activity.Activity/GetTaskCredit"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *ActivityHTTPClientImpl) Sign(ctx context.Context, in *SignRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
 	var out emptypb.Empty
 	pattern := "/api/sign"

+ 9 - 9
api/chat/chat.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: chat.proto
 
 package chat
@@ -74,10 +74,10 @@ func (x *SendMessageRequest) GetRoomId() int64 {
 }
 
 func (x *SendMessageRequest) GetMessage() *common.Message {
-	if x != nil {
+	if x != nil && x.Message != nil {
 		return x.Message
 	}
-	return nil
+	return &common.Message{}
 }
 
 func (x *SendMessageRequest) GetMsgType() string {
@@ -367,7 +367,7 @@ func (x *PartnerCollectIDsRequest) GetChatRecordIds() []int64 {
 	if x != nil {
 		return x.ChatRecordIds
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 func (x *PartnerCollectIDsRequest) GetPersonId() string {
@@ -996,7 +996,7 @@ func (x *UserFindRoomListReply) GetList() []*UserRoomInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*UserRoomInfo, 0)
 }
 
 func (x *UserFindRoomListReply) GetNextId() int64 {
@@ -1138,7 +1138,7 @@ func (x *PartnerFindRoomListReply) GetList() []*PartnerRoomInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*PartnerRoomInfo, 0)
 }
 
 func (x *PartnerFindRoomListReply) GetNextId() int64 {
@@ -1472,7 +1472,7 @@ func (x *ReceiveRequest) GetData() []byte {
 	if x != nil {
 		return x.Data
 	}
-	return nil
+	return make([]byte, 0)
 }
 
 func (x *ReceiveRequest) GetId() string {
@@ -1854,7 +1854,7 @@ func (x *WindowInfo) GetReply() []string {
 	if x != nil {
 		return x.Reply
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type ReminderInfo struct {

+ 50 - 50
api/common/common.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: common.proto
 
 package common
@@ -542,7 +542,7 @@ func (x *ChatCardInfo) GetList() []string {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ChatCardInfo) GetIntroduceVoice() string {
@@ -850,7 +850,7 @@ func (x *HomeInfo) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *HomeInfo) GetAge() int64 {
@@ -871,7 +871,7 @@ func (x *HomeInfo) GetTagList() []*TagList {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]*TagList, 0)
 }
 
 func (x *HomeInfo) GetSignature() string {
@@ -1033,7 +1033,7 @@ func (x *PersonMsg) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *PersonMsg) GetAge() int64 {
@@ -1054,7 +1054,7 @@ func (x *PersonMsg) GetTagList() []int64 {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 func (x *PersonMsg) GetSignature() string {
@@ -1279,7 +1279,7 @@ func (x *AddFriendMessageInfo) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *AddFriendMessageInfo) GetFromOpenId() string {
@@ -1410,7 +1410,7 @@ func (x *PersonIDList) GetPersonIds() []string {
 	if x != nil {
 		return x.PersonIds
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type PersonDBReply struct {
@@ -1457,7 +1457,7 @@ func (x *PersonDBReply) GetList() []*PersonDB {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*PersonDB, 0)
 }
 
 type PersonDB struct {
@@ -1546,7 +1546,7 @@ func (x *PersonDB) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *PersonDB) GetAge() int64 {
@@ -1609,7 +1609,7 @@ func (x *PersonDB) GetTagList() []int64 {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 func (x *PersonDB) GetPersonId() int64 {
@@ -2252,7 +2252,7 @@ func (x *Ids) GetIds() []int64 {
 	if x != nil {
 		return x.Ids
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 type TagListReply struct {
@@ -2299,7 +2299,7 @@ func (x *TagListReply) GetList() []*TagList {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*TagList, 0)
 }
 
 type TagList struct {
@@ -2612,7 +2612,7 @@ func (x *UpdateInformationRequest) GetTagList() []int64 {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 func (x *UpdateInformationRequest) GetIntroduceVoice() string {
@@ -2633,7 +2633,7 @@ func (x *UpdateInformationRequest) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *UpdateInformationRequest) GetProvince() string {
@@ -2702,7 +2702,7 @@ func (x *ChatRecordListReply) GetList() []*ChatRecordInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ChatRecordInfo, 0)
 }
 
 func (x *ChatRecordListReply) GetNextId() int64 {
@@ -2763,17 +2763,17 @@ func (x *ChatRoomMsg) GetRoomId() int64 {
 }
 
 func (x *ChatRoomMsg) GetSelf() *ChatPersonMsg {
-	if x != nil {
+	if x != nil && x.Self != nil {
 		return x.Self
 	}
-	return nil
+	return &ChatPersonMsg{}
 }
 
 func (x *ChatRoomMsg) GetOther() *ChatPersonMsg {
-	if x != nil {
+	if x != nil && x.Other != nil {
 		return x.Other
 	}
-	return nil
+	return &ChatPersonMsg{}
 }
 
 func (x *ChatRoomMsg) GetLikeability() int64 {
@@ -2917,10 +2917,10 @@ func (x *ChatRecordInfo) GetMsgType() string {
 }
 
 func (x *ChatRecordInfo) GetMessage() *Message {
-	if x != nil {
+	if x != nil && x.Message != nil {
 		return x.Message
 	}
-	return nil
+	return &Message{}
 }
 
 func (x *ChatRecordInfo) GetRoomId() int64 {
@@ -3567,7 +3567,7 @@ func (x *CommonTextList) GetList() []string {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type MemeTitleList struct {
@@ -3614,7 +3614,7 @@ func (x *MemeTitleList) GetList() []*MemeTitle {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*MemeTitle, 0)
 }
 
 type MemeTitle struct {
@@ -3717,7 +3717,7 @@ func (x *MemeList) GetList() []string {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *MemeList) GetNextId() int64 {
@@ -3771,7 +3771,7 @@ func (x *ChatTopicList) GetList() []string {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type ReportChatRequest struct {
@@ -3859,14 +3859,14 @@ func (x *ReportChatRequest) GetPicture() []string {
 	if x != nil {
 		return x.Picture
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ReportChatRequest) GetCategory() []string {
 	if x != nil {
 		return x.Category
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type ReportRequest struct {
@@ -3955,14 +3955,14 @@ func (x *ReportRequest) GetPicture() []string {
 	if x != nil {
 		return x.Picture
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ReportRequest) GetCategory() []string {
 	if x != nil {
 		return x.Category
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ReportRequest) GetReportMsg() string {
@@ -4128,14 +4128,14 @@ func (x *RecommendPersonListReply) GetManList() []*RecommendPersonInfo {
 	if x != nil {
 		return x.ManList
 	}
-	return nil
+	return make([]*RecommendPersonInfo, 0)
 }
 
 func (x *RecommendPersonListReply) GetWomanList() []*RecommendPersonInfo {
 	if x != nil {
 		return x.WomanList
 	}
-	return nil
+	return make([]*RecommendPersonInfo, 0)
 }
 
 type RecommendPersonInfo struct {
@@ -4271,7 +4271,7 @@ func (x *RecommendPersonInfo) GetTagList() []string {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *RecommendPersonInfo) GetIsOnline() bool {
@@ -4396,7 +4396,7 @@ func (x *FindOverSevenDayAvatarReply) GetList() []string {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type PersonLookScripRequest struct {
@@ -4633,7 +4633,7 @@ func (x *ScripReply) GetList() []*ScripInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ScripInfo, 0)
 }
 
 func (x *ScripReply) GetNextId() int64 {
@@ -4766,10 +4766,10 @@ func (x *ScripInfo) GetIsCanReply() bool {
 }
 
 func (x *ScripInfo) GetMyReply() *ScripReplyMessage {
-	if x != nil {
+	if x != nil && x.MyReply != nil {
 		return x.MyReply
 	}
-	return nil
+	return &ScripReplyMessage{}
 }
 
 func (x *ScripInfo) GetCreateTime() int64 {
@@ -5072,10 +5072,10 @@ func (x *ReplyScripRequest) GetScripId() int64 {
 }
 
 func (x *ReplyScripRequest) GetMessage() *Message {
-	if x != nil {
+	if x != nil && x.Message != nil {
 		return x.Message
 	}
-	return nil
+	return &Message{}
 }
 
 func (x *ReplyScripRequest) GetMsgType() string {
@@ -5351,7 +5351,7 @@ func (x *ManagerFindPersonListReply) GetList() []*ManagerFindPersonInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ManagerFindPersonInfo, 0)
 }
 
 func (x *ManagerFindPersonListReply) GetNextId() string {
@@ -5416,7 +5416,7 @@ func (x *ManagerFindPersonListReply2) GetList() []*ManagerFindPersonInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ManagerFindPersonInfo, 0)
 }
 
 func (x *ManagerFindPersonListReply2) GetLast() bool {
@@ -5655,7 +5655,7 @@ func (x *ManagerFindPersonInfo) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ManagerFindPersonInfo) GetAge() int64 {
@@ -5856,7 +5856,7 @@ func (x *ManagerUpdatePersonPicturesRequest) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type ManagerUpdatePersonSignatureRequest struct {
@@ -6250,7 +6250,7 @@ func (x *ManagerFindRoomListReply) GetList() []*RoomInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*RoomInfo, 0)
 }
 
 func (x *ManagerFindRoomListReply) GetNextId() int64 {
@@ -6756,7 +6756,7 @@ func (x *ManagerScripReply) GetList() []*ManagerScripInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ManagerScripInfo, 0)
 }
 
 func (x *ManagerScripReply) GetNextId() int64 {
@@ -7001,7 +7001,7 @@ func (x *ManagerFindReportListReply) GetList() []*ManagerFindReportInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ManagerFindReportInfo, 0)
 }
 
 func (x *ManagerFindReportListReply) GetNextId() int64 {
@@ -7214,7 +7214,7 @@ func (x *ManagerFindReportDetailsListReply) GetList() []*ManagerFindReportDetail
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ManagerFindReportDetailsInfo, 0)
 }
 
 func (x *ManagerFindReportDetailsListReply) GetNextId() int64 {
@@ -7351,14 +7351,14 @@ func (x *ManagerFindReportDetailsInfo) GetReportPicture() []string {
 	if x != nil {
 		return x.ReportPicture
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ManagerFindReportDetailsInfo) GetCategory() []string {
 	if x != nil {
 		return x.Category
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ManagerFindReportDetailsInfo) GetCreateTime() int64 {

+ 16 - 16
api/partner/partner.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: partner.proto
 
 package partner
@@ -146,7 +146,7 @@ func (x *SendOverOneMinuteUnreadMessageMessageRequest) GetNameList() []string {
 	if x != nil {
 		return x.NameList
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type GetRecommendPartnerDBRequest struct {
@@ -209,7 +209,7 @@ func (x *GetRecommendPartnerDBRequest) GetIdentifyIds() []string {
 	if x != nil {
 		return x.IdentifyIds
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type FindExamineRecordListRequest struct {
@@ -335,7 +335,7 @@ func (x *FindExamineRecordListReply) GetList() []*ExamineRecordInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ExamineRecordInfo, 0)
 }
 
 type ExamineRecordInfo struct {
@@ -429,7 +429,7 @@ func (x *ExamineRecordInfo) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ExamineRecordInfo) GetSex() int64 {
@@ -533,7 +533,7 @@ func (x *FindExamineListReply) GetList() []*ExamineInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*ExamineInfo, 0)
 }
 
 type ExamineInfo struct {
@@ -626,7 +626,7 @@ func (x *ExamineInfo) GetPictures() []string {
 	if x != nil {
 		return x.Pictures
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *ExamineInfo) GetSex() int64 {
@@ -826,7 +826,7 @@ func (x *PartnerCollectIDsRequest) GetChatRecordIds() []int64 {
 	if x != nil {
 		return x.ChatRecordIds
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 func (x *PartnerCollectIDsRequest) GetRoomId() int64 {
@@ -988,10 +988,10 @@ func (x *ReplyScripRequest) GetScripId() int64 {
 }
 
 func (x *ReplyScripRequest) GetMessage() *common.Message {
-	if x != nil {
+	if x != nil && x.Message != nil {
 		return x.Message
 	}
-	return nil
+	return &common.Message{}
 }
 
 func (x *ReplyScripRequest) GetMsgType() string {
@@ -1053,7 +1053,7 @@ func (x *PartnerWithdrawRecordListReply) GetList() []*WithdrawInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*WithdrawInfo, 0)
 }
 
 type WithdrawInfo struct {
@@ -1195,7 +1195,7 @@ func (x *PartnerWithdrawTemplateListReply) GetList() []*PartnerWithdrawTemplateI
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*PartnerWithdrawTemplateInfo, 0)
 }
 
 type PartnerWithdrawTemplateInfo struct {
@@ -1423,7 +1423,7 @@ func (x *LevelTable) GetList() []*LevelInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*LevelInfo, 0)
 }
 
 type LevelInfo struct {
@@ -1661,7 +1661,7 @@ func (x *PartnerInfo) GetTagList() []int64 {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]int64, 0)
 }
 
 func (x *PartnerInfo) GetSignature() string {
@@ -1828,7 +1828,7 @@ func (x *PartnerMessage) GetAvatarUrlList() []string {
 	if x != nil {
 		return x.AvatarUrlList
 	}
-	return nil
+	return make([]string, 0)
 }
 
 func (x *PartnerMessage) GetLikeNum() int64 {

+ 5 - 5
api/statistics/statistics.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: statistics.proto
 
 package statistics
@@ -405,7 +405,7 @@ func (x *LookAndLikeListReply) GetList() []*LookAndLikeListInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*LookAndLikeListInfo, 0)
 }
 
 func (x *LookAndLikeListReply) GetNextId() int64 {
@@ -555,7 +555,7 @@ func (x *LookAndLikeListInfo) GetTagList() []string {
 	if x != nil {
 		return x.TagList
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type GetLookAndLikeListRequest struct {
@@ -705,7 +705,7 @@ func (x *LookAndLikeMessageReply) GetAvatarUrlList() []string {
 	if x != nil {
 		return x.AvatarUrlList
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type LookMessageReply struct {

File diff suppressed because it is too large
+ 169 - 106
api/user/user.pb.go


+ 11 - 2
api/user/user.proto

@@ -621,9 +621,18 @@ service User {
   rpc GetRecommendUserDB(GetRecommendUserDBRequest) returns(common.PersonDB){}
   // 举报超过3次拉黑用户
   rpc ReportUserBlack (ReportUserBlackRequest) returns (google.protobuf.Empty){};
-  // 用户签到加积分
-  rpc SignAddCredit (UserBalance) returns (google.protobuf.Empty){};
+  // 用户加积分
+  rpc AddUserCredit (AddUserCreditRequest) returns (google.protobuf.Empty){};
+  // 用户完善情况
+  rpc UserInformationStatusDB (common.PersonIDParam) returns (InformationStatus){};
+}
+
+message AddUserCreditRequest{
+  string id = 1; // id
+  int64 credit = 2;// 积分
+  string detail = 3;
 }
+
 message ReportUserBlackRequest{
   string personId = 1;
   string result = 2;

+ 53 - 15
api/user/user_grpc.pb.go

@@ -223,8 +223,10 @@ type UserClient interface {
 	GetRecommendUserDB(ctx context.Context, in *GetRecommendUserDBRequest, opts ...grpc.CallOption) (*common.PersonDB, error)
 	// 举报超过3次拉黑用户
 	ReportUserBlack(ctx context.Context, in *ReportUserBlackRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
-	// 用户签到加积分
-	SignAddCredit(ctx context.Context, in *UserBalance, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 用户加积分
+	AddUserCredit(ctx context.Context, in *AddUserCreditRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 用户完善情况
+	UserInformationStatusDB(ctx context.Context, in *common.PersonIDParam, opts ...grpc.CallOption) (*InformationStatus, error)
 }
 
 type userClient struct {
@@ -1117,9 +1119,18 @@ func (c *userClient) ReportUserBlack(ctx context.Context, in *ReportUserBlackReq
 	return out, nil
 }
 
-func (c *userClient) SignAddCredit(ctx context.Context, in *UserBalance, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+func (c *userClient) AddUserCredit(ctx context.Context, in *AddUserCreditRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/api.user.User/SignAddCredit", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/api.user.User/AddUserCredit", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *userClient) UserInformationStatusDB(ctx context.Context, in *common.PersonIDParam, opts ...grpc.CallOption) (*InformationStatus, error) {
+	out := new(InformationStatus)
+	err := c.cc.Invoke(ctx, "/api.user.User/UserInformationStatusDB", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -1331,8 +1342,10 @@ type UserServer interface {
 	GetRecommendUserDB(context.Context, *GetRecommendUserDBRequest) (*common.PersonDB, error)
 	// 举报超过3次拉黑用户
 	ReportUserBlack(context.Context, *ReportUserBlackRequest) (*emptypb.Empty, error)
-	// 用户签到加积分
-	SignAddCredit(context.Context, *UserBalance) (*emptypb.Empty, error)
+	// 用户加积分
+	AddUserCredit(context.Context, *AddUserCreditRequest) (*emptypb.Empty, error)
+	// 用户完善情况
+	UserInformationStatusDB(context.Context, *common.PersonIDParam) (*InformationStatus, error)
 	mustEmbedUnimplementedUserServer()
 }
 
@@ -1634,8 +1647,11 @@ func (UnimplementedUserServer) GetRecommendUserDB(context.Context, *GetRecommend
 func (UnimplementedUserServer) ReportUserBlack(context.Context, *ReportUserBlackRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ReportUserBlack not implemented")
 }
-func (UnimplementedUserServer) SignAddCredit(context.Context, *UserBalance) (*emptypb.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SignAddCredit not implemented")
+func (UnimplementedUserServer) AddUserCredit(context.Context, *AddUserCreditRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AddUserCredit not implemented")
+}
+func (UnimplementedUserServer) UserInformationStatusDB(context.Context, *common.PersonIDParam) (*InformationStatus, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserInformationStatusDB not implemented")
 }
 func (UnimplementedUserServer) mustEmbedUnimplementedUserServer() {}
 
@@ -3414,20 +3430,38 @@ func _User_ReportUserBlack_Handler(srv interface{}, ctx context.Context, dec fun
 	return interceptor(ctx, in, info, handler)
 }
 
-func _User_SignAddCredit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(UserBalance)
+func _User_AddUserCredit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(AddUserCreditRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(UserServer).AddUserCredit(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.user.User/AddUserCredit",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(UserServer).AddUserCredit(ctx, req.(*AddUserCreditRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _User_UserInformationStatusDB_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.PersonIDParam)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(UserServer).SignAddCredit(ctx, in)
+		return srv.(UserServer).UserInformationStatusDB(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.user.User/SignAddCredit",
+		FullMethod: "/api.user.User/UserInformationStatusDB",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(UserServer).SignAddCredit(ctx, req.(*UserBalance))
+		return srv.(UserServer).UserInformationStatusDB(ctx, req.(*common.PersonIDParam))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -3832,8 +3866,12 @@ var User_ServiceDesc = grpc.ServiceDesc{
 			Handler:    _User_ReportUserBlack_Handler,
 		},
 		{
-			MethodName: "SignAddCredit",
-			Handler:    _User_SignAddCredit_Handler,
+			MethodName: "AddUserCredit",
+			Handler:    _User_AddUserCredit_Handler,
+		},
+		{
+			MethodName: "UserInformationStatusDB",
+			Handler:    _User_UserInformationStatusDB_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},

+ 6 - 6
api/websocket/websocket.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.26.0-devel
-// 	protoc        v3.15.8
+// 	protoc-gen-go v1.28.1-devel
+// 	protoc        v3.21.8
 // source: websocket.proto
 
 package websocket
@@ -65,7 +65,7 @@ func (x *FindOnlineCanMatchingPersonReply) GetList() []*FindOnlineCanMatchingPer
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*FindOnlineCanMatchingPersonInfo, 0)
 }
 
 type FindOnlineCanMatchingPersonInfo struct {
@@ -301,7 +301,7 @@ func (x *CheckIsOnlineByIDsParam) GetUserIds() []string {
 	if x != nil {
 		return x.UserIds
 	}
-	return nil
+	return make([]string, 0)
 }
 
 type CheckIsOnlineReply struct {
@@ -642,7 +642,7 @@ func (x *SendMsgRequest) GetData() []byte {
 	if x != nil {
 		return x.Data
 	}
-	return nil
+	return make([]byte, 0)
 }
 
 func (x *SendMsgRequest) GetCode() int32 {
@@ -748,7 +748,7 @@ func (x *FindOnlinePersonReply) GetList() []*OnlinePersonInfo {
 	if x != nil {
 		return x.List
 	}
-	return nil
+	return make([]*OnlinePersonInfo, 0)
 }
 
 type OnlinePersonInfo struct {

+ 1 - 0
define/lock.go

@@ -8,4 +8,5 @@ var (
 	LockUserCredit          = "user_credit"          // 用户积分锁
 	LockCreateIdentify      = "create_identify"      // 身份创建锁
 	LockStatisticsSubscribe = "statistics_subscribe" // 统计订阅消息锁
+	LockUserTask            = "task"                 // 任务完成锁
 )

+ 7 - 0
define/user.go

@@ -29,3 +29,10 @@ var (
 	CreditDetailActivity = "activity"
 	CreditDetailConsume  = "consume"
 )
+
+var (
+	TaskWatchVideo        = "video"
+	TaskFinishInformation = "information"
+	TaskSendScrip         = "scrip"
+	TaskFindFriend        = "friend"
+)

+ 6 - 2
errors/activity.go

@@ -3,6 +3,10 @@ package errors
 import "git.ikuban.com/server/kratos-utils/codes"
 
 var (
-	ErrorSignFinish = codes.Error(50001, "今日已完成签到")
-	ErrorSignDouble = codes.Error(50002, "今日已领取过双倍奖励")
+	ErrorSignFinish      = codes.Error(50001, "今日已完成签到")
+	ErrorSignDouble      = codes.Error(50002, "今日已领取过双倍奖励")
+	ErrorTaskNotExist    = codes.Error(50003, "任务不存在")
+	ErrorTaskOverNum     = codes.Error(50004, "完成任务的次数超过上限")
+	ErrorTaskNotFinish   = codes.Error(50005, "任务未完成")
+	ErrorTaskIsGetCredit = codes.Error(50006, "已领取过奖励")
 )

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

@@ -1,20 +1,38 @@
 // @ts-ignore
 import request from '@/libs/request';
-import {FindSignInListReply,SignRequest} from "./activity_pb";
+import {FindSignInListReply,SignRequest,FindTaskListReply,TaskRequest} from "./activity_pb";
 
 const ActivityService = {
+  /**  签到列表 */
   FindSignInList: async (req?: undefined) => {
 	const res = await request.post<{ data: FindSignInListReply, code: string, message: string }>('/api/sign/list', req);
     return res.data.data;
   },
+  /**  签到 */
   Sign: async (req?: SignRequest) => {
 	const res = await request.post('/api/sign', req);
     return res.data.data;
   },
+  /**  补签双倍 */
   GetSignDouble: async (req?: undefined) => {
 	const res = await request.post('/api/sign/again', req);
     return res.data.data;
   },
+  /**  查询任务列表 */
+  FindTaskList: async (req?: undefined) => {
+	const res = await request.post<{ data: FindTaskListReply, code: string, message: string }>('/api/task/list', req);
+    return res.data.data;
+  },
+  /**  完成任务 */
+  FinishTask: async (req?: TaskRequest) => {
+	const res = await request.post('/api/task/finish', req);
+    return res.data.data;
+  },
+  /**  获取任务奖励 */
+  GetTaskCredit: async (req?: TaskRequest) => {
+	const res = await request.post('/api/task/credit', req);
+    return res.data.data;
+  },
 
 };
 

+ 23 - 0
js/api/activity/activity_pb.ts

@@ -1,3 +1,26 @@
+export interface TaskRequest{
+    /**  任务ID */
+    id?:number;
+}
+export interface FindTaskListReply{
+    list?:Array<TaskInfo>;
+}
+export interface TaskInfo{
+    /**  任务ID */
+    id?:number;
+    /**  任务类型 */
+    type?:string;
+    /**  任务要求 */
+    detail?:string;
+    /**  完成任务获取的积分 */
+    credit?:number;
+    /**  可完成任务的总次数 */
+    canFinishNum?:number;
+    /**  已完成任务的次数 */
+    finishNum?:number;
+    /**  已获取奖励的次数 */
+    getCreditNum?:number;
+}
 export interface FindSignInListReply{
     list?:Array<SignInInfo>;
 }

+ 1 - 1
js/api/user/user_http_pb.ts

@@ -1,6 +1,6 @@
 // @ts-ignore
 import request from '@/libs/request';
-import {UserInfo,UserBalance,UserFindChatListReply,CreateScripRequest,DeleteScripRequest,UserFindScripRequest,PersonLookScripRequest,ReplyScripRequest,KeyRequest,InformationStatus,UserRechargeRequest,PayInfo,RechargeList,FindPayOrderListRequest,PayOrderList,FindMatchingAvatarAndNumReply,UserFreeNum,SendMessageRequest,ManagerFindIsCheckQualityUserListRequest,ManagerMarkHighQualityUserRequest,ManagerUpdateUserCreditRequest,FindRecommendHighQualityUserRequest,FindRecommendHighQualityUserReply,GetUserDBMsgFromWebsocketReply,SendNewMessageUnreadReminderRequest,UpdateUserMatchedNumRequest,UpdateUserMatchedNumAndReturnUserMsgReply,GetRecommendUserDBRequest,ReportUserBlackRequest} from "./user_pb";
+import {UserInfo,UserBalance,UserFindChatListReply,CreateScripRequest,DeleteScripRequest,UserFindScripRequest,PersonLookScripRequest,ReplyScripRequest,KeyRequest,InformationStatus,UserRechargeRequest,PayInfo,RechargeList,FindPayOrderListRequest,PayOrderList,FindMatchingAvatarAndNumReply,UserFreeNum,SendMessageRequest,ManagerFindIsCheckQualityUserListRequest,ManagerMarkHighQualityUserRequest,ManagerUpdateUserCreditRequest,FindRecommendHighQualityUserRequest,FindRecommendHighQualityUserReply,GetUserDBMsgFromWebsocketReply,SendNewMessageUnreadReminderRequest,UpdateUserMatchedNumRequest,UpdateUserMatchedNumAndReturnUserMsgReply,GetRecommendUserDBRequest,ReportUserBlackRequest,AddUserCreditRequest} from "./user_pb";
 import {SendPhoneCodeRequest,CheckPhoneCodeRequest,UpdateInformationRequest,CreateChatRoomParam,PersonParam,HomeInfo,LookedAndLikedNum,ListPageRequest,WxConfReq,WxConfResponse,SexReq,TagListReply,ListPage2Request,RecommendPersonListReply,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList,ChatCardInfo,ReportChatRequest,FindOverSevenDayAvatarReply,UpdateLastScripIDRequest,ScripID,ScripReply,FindScripRequest,ScripInfo,ChatRecordInfo,RoomIDRequest,PartnerIDParam,AddFriendMessageInfo,SendMessageReply,ManagerFindPersonListRequest,ManagerFindPersonListReply,ManagerFindPersonListReply2,PersonIDParam,PersonIDList,ManagerUpdatePersonVoiceRequest,ManagerUpdatePersonPicturesRequest,ManagerUpdatePersonSignatureRequest,ManagerUpdatePersonAvatarRequest,ManagerUpdatePersonNameRequest,ManagerUpdatePersonWeightRequest,ManagerUpdatePersonIsBlackRequest,PersonMsg,PersonDBReply,UpdateLastScripIDDBRequest,FindRecommendRequest,IDParam,PersonDB} from "../common/common_pb";
 import {RoomReply,UnreadNumReply,UserRoomInfo,CheckUserPartnerIsRelationshipReply,WindowInfo,GetRandomMatchingReply} from "../chat/chat_pb";
 import {LookAndLikeListReply,LookAndLikeMessageReply,LookMessageReply} from "../statistics/statistics_pb";

+ 7 - 0
js/api/user/user_pb.ts

@@ -1,5 +1,12 @@
 import {Message} from "../common/common_pb";
 
+export interface AddUserCreditRequest{
+    /**  id */
+    id?:string;
+    /**  积分 */
+    credit?:number;
+    detail?:string;
+}
 export interface ReportUserBlackRequest{
     personId?:string;
     result?:string;

Some files were not shown because too many files changed in this diff