diff --git a/cmd/internal/controller/contract.go b/cmd/internal/controller/contract.go index e83856c..175bfaa 100644 --- a/cmd/internal/controller/contract.go +++ b/cmd/internal/controller/contract.go @@ -53,6 +53,14 @@ func (c *ArtistInfoContractProvider) FinishContract(ctx context.Context, req *co return rep, nil } +func (c *ArtistInfoContractProvider) GetContractInfoByContractUid(ctx context.Context, req *contract.GetContractInfoByContractUidRequest) (rep *contract.GetContractInfoByContractUidRespond, err error) { + fmt.Println("第一处") + if rep, err = c.contractLogic.GetContractInfoByContractUid(req); err != nil { + return nil, err + } + return rep, nil +} + // func (c *ContractProvider) ContractTxList(ctx context.Context, req *contract.ContractTxListRequest) (rep *contract.ContractTxListRespond, err error) { // fmt.Println("第一处") // if rep, err = c.contractLogic.ContractTxList(req); err != nil { diff --git a/cmd/internal/logic/contract.go b/cmd/internal/logic/contract.go index e60cc2f..12293cd 100644 --- a/cmd/internal/logic/contract.go +++ b/cmd/internal/logic/contract.go @@ -27,6 +27,7 @@ type IContract interface { ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) SignContract(req *contract.SignContractRequest) (rep *contract.SignContractRespond, err error) FinishContract(req *contract.FinishContractRequest) (rep *contract.FinishContractRespond, err error) + GetContractInfoByContractUid(req *contract.GetContractInfoByContractUidRequest) (rep *contract.GetContractInfoByContractUidRespond, err error) // ContractTxList(req *contract.ContractTxListRequest) (rep *contract.ContractTxListRespond, err error) // ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) @@ -221,6 +222,21 @@ func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contrac return } + var ( + realName string + address string + idNum string + telNum string + ) + if artistDetailResponse.RealNameInfo != nil { + realName = artistDetailResponse.RealNameInfo.Name + address = artistDetailResponse.RealNameInfo.Address + idNum = artistDetailResponse.RealNameInfo.IdNum + telNum = artistDetailResponse.RealNameInfo.TelNum + } else { + fmt.Printf("用户%s 实名信息为空", artistDetailResponse.MgmtArtistUid) + } + if contractInfo.Type != 4 && contractInfo.Type != 7 { switch contractInfo.Type { @@ -228,18 +244,7 @@ func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contrac var ContractNo = fmt.Sprintf("TF_%d", time.Now().UnixNano()) endTime := time.Now().AddDate(1, 0, -1) parameterMap := make((map[string]string), 0) - var ( - realName string - address string - idNum string - ) - if artistDetailResponse.RealNameInfo != nil { - realName = artistDetailResponse.RealNameInfo.Name - address = artistDetailResponse.RealNameInfo.Address - idNum = artistDetailResponse.RealNameInfo.IdNum - } else { - fmt.Printf("用户%s 实名信息为空", artistDetailResponse.MgmtArtistUid) - } + // 一、 模板填充 parameterMap["PartyAName"] = realName parameterMap["PartyAAddress"] = address @@ -270,6 +275,8 @@ func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contrac ContractId: ContractNo, ParameterMap: string(parameterMapType), } + + fmt.Println("合同111") generateContractResponse, err := service.ContractImpl.GenerateContract(context.Background(), generateContractRequest) if err != nil { return rep, err @@ -287,16 +294,19 @@ func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contrac KeyY: "0", } + fmt.Println("合同11") _, err = service.ContractImpl.ExtSignAuto(context.Background(), extSignAutoRequest) if err != nil { return rep, err } + fmt.Println("合同1") //更新合同表,将合同的下载、在线、id保存 err = dao.UpdateContract(tx, contractInfo.Uid, generateContractResponse.ViewPdfUrl, generateContractResponse.DownloadUrl, ContractNo) if err != nil { return rep, err } + fmt.Println("合同2") case 2: @@ -304,10 +314,10 @@ func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contrac var parameterMap = make(map[string]string) endTime := time.Now().AddDate(1, 0, -1) parameterMap["ContractNo"] = ContractNo - parameterMap["PartyAName"] = artistDetailResponse.RealNameInfo.Name - parameterMap["PartyAAddress"] = artistDetailResponse.RealNameInfo.Address - parameterMap["PartyAIdentityCard"] = artistDetailResponse.RealNameInfo.IdNum - parameterMap["PartyATelNum"] = artistDetailResponse.RealNameInfo.TelNum + parameterMap["PartyAName"] = realName + parameterMap["PartyAAddress"] = address + parameterMap["PartyAIdentityCard"] = idNum + parameterMap["PartyATelNum"] = telNum parameterMap["SettleNum"] = "2" parameterMap["SettleSecOne"] = "0" parameterMap["SettleSecTwo"] = "100" @@ -371,8 +381,8 @@ func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contrac } var parameterMap = make(map[string]string) - parameterMap["PartyAName"] = artistDetailResponse.RealNameInfo.Name - parameterMap["PartyAIdCard"] = artistDetailResponse.RealNameInfo.IdNum + parameterMap["PartyAName"] = realName + parameterMap["PartyAIdCard"] = idNum parameterMap["ArtworkName"] = artworkDetailResponse.ProfileInfo.ArtworkName parameterMap["Year"] = fmt.Sprintf("%d", time.Now().Year()) parameterMap["Month"] = fmt.Sprintf("%d", time.Now().Month()) @@ -639,6 +649,34 @@ func (a *Contract) FinishContract(req *contract.FinishContractRequest) (rep *con return } +func (a *Contract) GetContractInfoByContractUid(req *contract.GetContractInfoByContractUidRequest) (rep *contract.GetContractInfoByContractUidRespond, err error) { + + rep = &contract.GetContractInfoByContractUidRespond{} + + contractInfo, err := dao.GetContractInfo(req.ContractUid) + if err != nil { + return + } + contract := &contract.Contracts{ + ContractUid: contractInfo.Uid, + ArtistUid: contractInfo.ArtistUid, + ArtworkUid: contractInfo.ArtworkUid, + ContractId: contractInfo.ContractId, + TransactionId: contractInfo.TransactionId, + Type: contractInfo.Type, + ViewUrl: contractInfo.ViewUrl, + DownloadUrl: contractInfo.DownloadUrl, + State: contractInfo.State, + Status: contractInfo.Status, + LockTime: contractInfo.LockTime, + SignTime: contractInfo.SignTime, + } + + rep.Data = contract + + return +} + // func (a *Contract) ContractTxList(req *contract.ContractTxListRequest) (rep *contract.ContractTxListRespond, err error) { // rep = &contract.ContractTxListRespond{} diff --git a/pb/contract/contract.pb.go b/pb/contract/contract.pb.go index 0563dd4..fd13153 100644 --- a/pb/contract/contract.pb.go +++ b/pb/contract/contract.pb.go @@ -879,6 +879,108 @@ func (x *ContractTxListRespond) GetMsg() string { return "" } +type GetContractInfoByContractUidRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ContractUid string `protobuf:"bytes,1,opt,name=ContractUid,json=contract_name,proto3" json:"ContractUid,omitempty"` +} + +func (x *GetContractInfoByContractUidRequest) Reset() { + *x = GetContractInfoByContractUidRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_contract_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetContractInfoByContractUidRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetContractInfoByContractUidRequest) ProtoMessage() {} + +func (x *GetContractInfoByContractUidRequest) ProtoReflect() protoreflect.Message { + mi := &file_contract_proto_msgTypes[13] + 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 GetContractInfoByContractUidRequest.ProtoReflect.Descriptor instead. +func (*GetContractInfoByContractUidRequest) Descriptor() ([]byte, []int) { + return file_contract_proto_rawDescGZIP(), []int{13} +} + +func (x *GetContractInfoByContractUidRequest) GetContractUid() string { + if x != nil { + return x.ContractUid + } + return "" +} + +type GetContractInfoByContractUidRespond struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *Contracts `protobuf:"bytes,1,opt,name=Data,json=data,proto3" json:"Data,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` +} + +func (x *GetContractInfoByContractUidRespond) Reset() { + *x = GetContractInfoByContractUidRespond{} + if protoimpl.UnsafeEnabled { + mi := &file_contract_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetContractInfoByContractUidRespond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetContractInfoByContractUidRespond) ProtoMessage() {} + +func (x *GetContractInfoByContractUidRespond) ProtoReflect() protoreflect.Message { + mi := &file_contract_proto_msgTypes[14] + 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 GetContractInfoByContractUidRespond.ProtoReflect.Descriptor instead. +func (*GetContractInfoByContractUidRespond) Descriptor() ([]byte, []int) { + return file_contract_proto_rawDescGZIP(), []int{14} +} + +func (x *GetContractInfoByContractUidRespond) GetData() *Contracts { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetContractInfoByContractUidRespond) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + type GetContractRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -890,7 +992,7 @@ type GetContractRequest struct { func (x *GetContractRequest) Reset() { *x = GetContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[13] + mi := &file_contract_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -903,7 +1005,7 @@ func (x *GetContractRequest) String() string { func (*GetContractRequest) ProtoMessage() {} func (x *GetContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[13] + mi := &file_contract_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -916,7 +1018,7 @@ func (x *GetContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetContractRequest.ProtoReflect.Descriptor instead. func (*GetContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{13} + return file_contract_proto_rawDescGZIP(), []int{15} } func (x *GetContractRequest) GetId() int64 { @@ -953,7 +1055,7 @@ type UpdateContractRequest struct { func (x *UpdateContractRequest) Reset() { *x = UpdateContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[14] + mi := &file_contract_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -966,7 +1068,7 @@ func (x *UpdateContractRequest) String() string { func (*UpdateContractRequest) ProtoMessage() {} func (x *UpdateContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[14] + mi := &file_contract_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -979,7 +1081,7 @@ func (x *UpdateContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractRequest.ProtoReflect.Descriptor instead. func (*UpdateContractRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{14} + return file_contract_proto_rawDescGZIP(), []int{16} } func (x *UpdateContractRequest) GetID() uint64 { @@ -1110,7 +1212,7 @@ type UpdateContractRespond struct { func (x *UpdateContractRespond) Reset() { *x = UpdateContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[15] + mi := &file_contract_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1123,7 +1225,7 @@ func (x *UpdateContractRespond) String() string { func (*UpdateContractRespond) ProtoMessage() {} func (x *UpdateContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[15] + mi := &file_contract_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1136,7 +1238,7 @@ func (x *UpdateContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractRespond.ProtoReflect.Descriptor instead. func (*UpdateContractRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{15} + return file_contract_proto_rawDescGZIP(), []int{17} } type UpdateContractTxRequest struct { @@ -1151,7 +1253,7 @@ type UpdateContractTxRequest struct { func (x *UpdateContractTxRequest) Reset() { *x = UpdateContractTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[16] + mi := &file_contract_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1164,7 +1266,7 @@ func (x *UpdateContractTxRequest) String() string { func (*UpdateContractTxRequest) ProtoMessage() {} func (x *UpdateContractTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[16] + mi := &file_contract_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1177,7 +1279,7 @@ func (x *UpdateContractTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractTxRequest.ProtoReflect.Descriptor instead. func (*UpdateContractTxRequest) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{16} + return file_contract_proto_rawDescGZIP(), []int{18} } func (x *UpdateContractTxRequest) GetID() int64 { @@ -1203,7 +1305,7 @@ type UpdateContractTxRespond struct { func (x *UpdateContractTxRespond) Reset() { *x = UpdateContractTxRespond{} if protoimpl.UnsafeEnabled { - mi := &file_contract_proto_msgTypes[17] + mi := &file_contract_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1216,7 +1318,7 @@ func (x *UpdateContractTxRespond) String() string { func (*UpdateContractTxRespond) ProtoMessage() {} func (x *UpdateContractTxRespond) ProtoReflect() protoreflect.Message { - mi := &file_contract_proto_msgTypes[17] + mi := &file_contract_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1229,7 +1331,7 @@ func (x *UpdateContractTxRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractTxRespond.ProtoReflect.Descriptor instead. func (*UpdateContractTxRespond) Descriptor() ([]byte, []int) { - return file_contract_proto_rawDescGZIP(), []int{17} + return file_contract_proto_rawDescGZIP(), []int{19} } var File_contract_proto protoreflect.FileDescriptor @@ -1334,87 +1436,107 @@ var file_contract_proto_rawDesc = []byte{ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x03, - 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x67, 0x6d, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x67, 0x6d, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x69, 0x65, 0x77, 0x55, - 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, - 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x70, - 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x17, 0x0a, - 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x32, 0xd6, 0x04, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x49, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, + 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, + 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, + 0x22, 0xfd, 0x03, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x67, + 0x6d, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6d, 0x67, 0x6d, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x69, + 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, + 0x77, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x32, 0xe3, 0x05, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x10, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x27, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x53, - 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, + 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, + 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x8a, + 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x12, + 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, + 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } @@ -1431,49 +1553,54 @@ func file_contract_proto_rawDescGZIP() []byte { return file_contract_proto_rawDescData } -var file_contract_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_contract_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_contract_proto_goTypes = []interface{}{ - (*Contracts)(nil), // 0: artistContract.Contracts - (*CreateContractRequest)(nil), // 1: artistContract.CreateContractRequest - (*CreateContractRespond)(nil), // 2: artistContract.CreateContractRespond - (*ContractListMgmtRequest)(nil), // 3: artistContract.ContractListMgmtRequest - (*ContractListMgmtRespond)(nil), // 4: artistContract.ContractListMgmtRespond - (*ContractListRequest)(nil), // 5: artistContract.ContractListRequest - (*ContractListRespond)(nil), // 6: artistContract.ContractListRespond - (*SignContractRequest)(nil), // 7: artistContract.SignContractRequest - (*SignContractRespond)(nil), // 8: artistContract.SignContractRespond - (*FinishContractRequest)(nil), // 9: artistContract.FinishContractRequest - (*FinishContractRespond)(nil), // 10: artistContract.FinishContractRespond - (*ContractTxListRequest)(nil), // 11: artistContract.ContractTxListRequest - (*ContractTxListRespond)(nil), // 12: artistContract.ContractTxListRespond - (*GetContractRequest)(nil), // 13: artistContract.GetContractRequest - (*UpdateContractRequest)(nil), // 14: artistContract.UpdateContractRequest - (*UpdateContractRespond)(nil), // 15: artistContract.UpdateContractRespond - (*UpdateContractTxRequest)(nil), // 16: artistContract.UpdateContractTxRequest - (*UpdateContractTxRespond)(nil), // 17: artistContract.UpdateContractTxRespond + (*Contracts)(nil), // 0: artistContract.Contracts + (*CreateContractRequest)(nil), // 1: artistContract.CreateContractRequest + (*CreateContractRespond)(nil), // 2: artistContract.CreateContractRespond + (*ContractListMgmtRequest)(nil), // 3: artistContract.ContractListMgmtRequest + (*ContractListMgmtRespond)(nil), // 4: artistContract.ContractListMgmtRespond + (*ContractListRequest)(nil), // 5: artistContract.ContractListRequest + (*ContractListRespond)(nil), // 6: artistContract.ContractListRespond + (*SignContractRequest)(nil), // 7: artistContract.SignContractRequest + (*SignContractRespond)(nil), // 8: artistContract.SignContractRespond + (*FinishContractRequest)(nil), // 9: artistContract.FinishContractRequest + (*FinishContractRespond)(nil), // 10: artistContract.FinishContractRespond + (*ContractTxListRequest)(nil), // 11: artistContract.ContractTxListRequest + (*ContractTxListRespond)(nil), // 12: artistContract.ContractTxListRespond + (*GetContractInfoByContractUidRequest)(nil), // 13: artistContract.GetContractInfoByContractUidRequest + (*GetContractInfoByContractUidRespond)(nil), // 14: artistContract.GetContractInfoByContractUidRespond + (*GetContractRequest)(nil), // 15: artistContract.GetContractRequest + (*UpdateContractRequest)(nil), // 16: artistContract.UpdateContractRequest + (*UpdateContractRespond)(nil), // 17: artistContract.UpdateContractRespond + (*UpdateContractTxRequest)(nil), // 18: artistContract.UpdateContractTxRequest + (*UpdateContractTxRespond)(nil), // 19: artistContract.UpdateContractTxRespond } var file_contract_proto_depIdxs = []int32{ 0, // 0: artistContract.ContractListMgmtRespond.Data:type_name -> artistContract.Contracts 0, // 1: artistContract.ContractListRespond.Data:type_name -> artistContract.Contracts 0, // 2: artistContract.FinishContractRespond.Contract:type_name -> artistContract.Contracts 0, // 3: artistContract.ContractTxListRespond.Data:type_name -> artistContract.Contracts - 1, // 4: artistContract.ArtistContract.CreateContract:input_type -> artistContract.CreateContractRequest - 3, // 5: artistContract.ArtistContract.ContractListMgmt:input_type -> artistContract.ContractListMgmtRequest - 5, // 6: artistContract.ArtistContract.ContractList:input_type -> artistContract.ContractListRequest - 7, // 7: artistContract.ArtistContract.SignContract:input_type -> artistContract.SignContractRequest - 9, // 8: artistContract.ArtistContract.FinishContract:input_type -> artistContract.FinishContractRequest - 11, // 9: artistContract.ArtistContract.ContractTxList:input_type -> artistContract.ContractTxListRequest - 2, // 10: artistContract.ArtistContract.CreateContract:output_type -> artistContract.CreateContractRespond - 4, // 11: artistContract.ArtistContract.ContractListMgmt:output_type -> artistContract.ContractListMgmtRespond - 6, // 12: artistContract.ArtistContract.ContractList:output_type -> artistContract.ContractListRespond - 8, // 13: artistContract.ArtistContract.SignContract:output_type -> artistContract.SignContractRespond - 10, // 14: artistContract.ArtistContract.FinishContract:output_type -> artistContract.FinishContractRespond - 12, // 15: artistContract.ArtistContract.ContractTxList:output_type -> artistContract.ContractTxListRespond - 10, // [10:16] is the sub-list for method output_type - 4, // [4:10] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 0, // 4: artistContract.GetContractInfoByContractUidRespond.Data:type_name -> artistContract.Contracts + 1, // 5: artistContract.ArtistContract.CreateContract:input_type -> artistContract.CreateContractRequest + 3, // 6: artistContract.ArtistContract.ContractListMgmt:input_type -> artistContract.ContractListMgmtRequest + 5, // 7: artistContract.ArtistContract.ContractList:input_type -> artistContract.ContractListRequest + 7, // 8: artistContract.ArtistContract.SignContract:input_type -> artistContract.SignContractRequest + 9, // 9: artistContract.ArtistContract.FinishContract:input_type -> artistContract.FinishContractRequest + 11, // 10: artistContract.ArtistContract.ContractTxList:input_type -> artistContract.ContractTxListRequest + 13, // 11: artistContract.ArtistContract.GetContractInfoByContractUid:input_type -> artistContract.GetContractInfoByContractUidRequest + 2, // 12: artistContract.ArtistContract.CreateContract:output_type -> artistContract.CreateContractRespond + 4, // 13: artistContract.ArtistContract.ContractListMgmt:output_type -> artistContract.ContractListMgmtRespond + 6, // 14: artistContract.ArtistContract.ContractList:output_type -> artistContract.ContractListRespond + 8, // 15: artistContract.ArtistContract.SignContract:output_type -> artistContract.SignContractRespond + 10, // 16: artistContract.ArtistContract.FinishContract:output_type -> artistContract.FinishContractRespond + 12, // 17: artistContract.ArtistContract.ContractTxList:output_type -> artistContract.ContractTxListRespond + 14, // 18: artistContract.ArtistContract.GetContractInfoByContractUid:output_type -> artistContract.GetContractInfoByContractUidRespond + 12, // [12:19] is the sub-list for method output_type + 5, // [5:12] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_contract_proto_init() } @@ -1639,7 +1766,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetContractRequest); i { + switch v := v.(*GetContractInfoByContractUidRequest); i { case 0: return &v.state case 1: @@ -1651,7 +1778,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractRequest); i { + switch v := v.(*GetContractInfoByContractUidRespond); i { case 0: return &v.state case 1: @@ -1663,7 +1790,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractRespond); i { + switch v := v.(*GetContractRequest); i { case 0: return &v.state case 1: @@ -1675,7 +1802,7 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractTxRequest); i { + switch v := v.(*UpdateContractRequest); i { case 0: return &v.state case 1: @@ -1687,6 +1814,30 @@ func file_contract_proto_init() { } } file_contract_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateContractRespond); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contract_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateContractTxRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contract_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateContractTxRespond); i { case 0: return &v.state @@ -1705,7 +1856,7 @@ func file_contract_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_contract_proto_rawDesc, NumEnums: 0, - NumMessages: 18, + NumMessages: 20, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/contract/contract.proto b/pb/contract/contract.proto index a9f37f9..b8e0964 100644 --- a/pb/contract/contract.proto +++ b/pb/contract/contract.proto @@ -9,6 +9,7 @@ service ArtistContract { rpc SignContract (SignContractRequest) returns (SignContractRespond) {} rpc FinishContract (FinishContractRequest) returns (FinishContractRespond) {} rpc ContractTxList (ContractTxListRequest) returns (ContractTxListRespond) {} + rpc GetContractInfoByContractUid (GetContractInfoByContractUidRequest) returns (GetContractInfoByContractUidRespond) {} // rpc GetContract (GetContractRequest) returns (ContractData) {} @@ -101,6 +102,17 @@ message ContractTxListRespond { string Msg = 2 [json_name = "msg"]; } + + +message GetContractInfoByContractUidRequest { + string ContractUid = 1 [json_name = "contract_name"]; +} + +message GetContractInfoByContractUidRespond { + Contracts Data = 1 [json_name = "data"]; + string Msg = 2 [json_name = "msg"]; +} + message GetContractRequest { int64 Id = 1 [json_name="id"]; } diff --git a/pb/contract/contract.validator.pb.go b/pb/contract/contract.validator.pb.go index 47b88f0..0fa8cde 100644 --- a/pb/contract/contract.validator.pb.go +++ b/pb/contract/contract.validator.pb.go @@ -80,6 +80,17 @@ func (this *ContractTxListRespond) Validate() error { } return nil } +func (this *GetContractInfoByContractUidRequest) Validate() error { + return nil +} +func (this *GetContractInfoByContractUidRespond) Validate() error { + if this.Data != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + return nil +} func (this *GetContractRequest) Validate() error { return nil } diff --git a/pb/contract/contract_triple.pb.go b/pb/contract/contract_triple.pb.go index dc5935a..95a2e87 100644 --- a/pb/contract/contract_triple.pb.go +++ b/pb/contract/contract_triple.pb.go @@ -34,6 +34,7 @@ type ArtistContractClient interface { SignContract(ctx context.Context, in *SignContractRequest, opts ...grpc_go.CallOption) (*SignContractRespond, common.ErrorWithAttachment) FinishContract(ctx context.Context, in *FinishContractRequest, opts ...grpc_go.CallOption) (*FinishContractRespond, common.ErrorWithAttachment) ContractTxList(ctx context.Context, in *ContractTxListRequest, opts ...grpc_go.CallOption) (*ContractTxListRespond, common.ErrorWithAttachment) + GetContractInfoByContractUid(ctx context.Context, in *GetContractInfoByContractUidRequest, opts ...grpc_go.CallOption) (*GetContractInfoByContractUidRespond, common.ErrorWithAttachment) } type artistContractClient struct { @@ -41,12 +42,13 @@ type artistContractClient struct { } type ArtistContractClientImpl struct { - CreateContract func(ctx context.Context, in *CreateContractRequest) (*CreateContractRespond, error) - ContractListMgmt func(ctx context.Context, in *ContractListMgmtRequest) (*ContractListMgmtRespond, error) - ContractList func(ctx context.Context, in *ContractListRequest) (*ContractListRespond, error) - SignContract func(ctx context.Context, in *SignContractRequest) (*SignContractRespond, error) - FinishContract func(ctx context.Context, in *FinishContractRequest) (*FinishContractRespond, error) - ContractTxList func(ctx context.Context, in *ContractTxListRequest) (*ContractTxListRespond, error) + CreateContract func(ctx context.Context, in *CreateContractRequest) (*CreateContractRespond, error) + ContractListMgmt func(ctx context.Context, in *ContractListMgmtRequest) (*ContractListMgmtRespond, error) + ContractList func(ctx context.Context, in *ContractListRequest) (*ContractListRespond, error) + SignContract func(ctx context.Context, in *SignContractRequest) (*SignContractRespond, error) + FinishContract func(ctx context.Context, in *FinishContractRequest) (*FinishContractRespond, error) + ContractTxList func(ctx context.Context, in *ContractTxListRequest) (*ContractTxListRespond, error) + GetContractInfoByContractUid func(ctx context.Context, in *GetContractInfoByContractUidRequest) (*GetContractInfoByContractUidRespond, error) } func (c *ArtistContractClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistContractClient { @@ -97,6 +99,12 @@ func (c *artistContractClient) ContractTxList(ctx context.Context, in *ContractT return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ContractTxList", in, out) } +func (c *artistContractClient) GetContractInfoByContractUid(ctx context.Context, in *GetContractInfoByContractUidRequest, opts ...grpc_go.CallOption) (*GetContractInfoByContractUidRespond, common.ErrorWithAttachment) { + out := new(GetContractInfoByContractUidRespond) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetContractInfoByContractUid", in, out) +} + // ArtistContractServer is the server API for ArtistContract service. // All implementations must embed UnimplementedArtistContractServer // for forward compatibility @@ -107,6 +115,7 @@ type ArtistContractServer interface { SignContract(context.Context, *SignContractRequest) (*SignContractRespond, error) FinishContract(context.Context, *FinishContractRequest) (*FinishContractRespond, error) ContractTxList(context.Context, *ContractTxListRequest) (*ContractTxListRespond, error) + GetContractInfoByContractUid(context.Context, *GetContractInfoByContractUidRequest) (*GetContractInfoByContractUidRespond, error) mustEmbedUnimplementedArtistContractServer() } @@ -133,6 +142,9 @@ func (UnimplementedArtistContractServer) FinishContract(context.Context, *Finish func (UnimplementedArtistContractServer) ContractTxList(context.Context, *ContractTxListRequest) (*ContractTxListRespond, error) { return nil, status.Errorf(codes.Unimplemented, "method ContractTxList not implemented") } +func (UnimplementedArtistContractServer) GetContractInfoByContractUid(context.Context, *GetContractInfoByContractUidRequest) (*GetContractInfoByContractUidRespond, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetContractInfoByContractUid not implemented") +} func (s *UnimplementedArtistContractServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -335,6 +347,35 @@ func _ArtistContract_ContractTxList_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _ArtistContract_GetContractInfoByContractUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetContractInfoByContractUidRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetContractInfoByContractUid", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // ArtistContract_ServiceDesc is the grpc_go.ServiceDesc for ArtistContract service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -366,6 +407,10 @@ var ArtistContract_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ContractTxList", Handler: _ArtistContract_ContractTxList_Handler, }, + { + MethodName: "GetContractInfoByContractUid", + Handler: _ArtistContract_GetContractInfoByContractUid_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "contract.proto",