From d70ee9256499ba79bed555e62fc0371a0ff6cb67 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 11:42:51 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/contract.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/model/contract.go b/cmd/model/contract.go index 1dab317..da5806d 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -19,24 +19,24 @@ type Contract struct { SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - BatchId int32 `gorm:"column:batch_id;comment:批次ID" json:"batch_id"` - ArtworkInfo []ArtworkStatementDetail `gorm:"column:artwork_info;foreignKey:BatchId;references:ID"` //当前批次的委托单详情 + ArtworkInfo []ArtworkStatementDetail `gorm:"column:artwork_info;foreignKey:Uid;references:BatchUid"` //当前批次的委托单详情 CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt } -// 对账单画作委托详情 +// 对账单画作物权委托详情 type ArtworkStatementDetail struct { Model - Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作详情表的唯一表示;NOT NULL" json:"uid"` - BatchId int64 `gorm:"column:batch_id;unqiueIndex:batchid_tfnum_idx;comment:批次id;"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` + BatchUid int64 `gorm:"column:batch_id;unqiueIndex:batchid_tfnum_idx;comment:批次id;"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` Ruler string `gorm:"column:ruler;comment:平尺"` SaleNo string `gorm:"column:sale_no;comment:销售单号"` CompleteDate string `gorm:"column:complete_date;comment:成交日期"` MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` + SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` } From 376674825b7d51a3daa63f45daabbb01f688ee05 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 11:52:18 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/artworkStatement.go | 39 ----------------------------- cmd/model/contract.go | 47 +++++++++++++++++++---------------- pkg/db/init.go | 2 +- 3 files changed, 26 insertions(+), 62 deletions(-) delete mode 100644 cmd/model/artworkStatement.go diff --git a/cmd/model/artworkStatement.go b/cmd/model/artworkStatement.go deleted file mode 100644 index a5f23fb..0000000 --- a/cmd/model/artworkStatement.go +++ /dev/null @@ -1,39 +0,0 @@ -package model - -// 对账单委托画作批次 -type StatementBatch struct { - Model - Uid string `gorm:"column:uid;type:varchar(100);comment:对账单表的唯一表示;NOT NULL" json:"uid"` - StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtistUid string `gorm:"column:artist_uid;unqiueIndex:sttype_uid_batchtime_idx;comment:画家uid"` - ArtistName string `gorm:"column:artist_name;comment:画家姓名;"` - BatchTime string `gorm:"column:batch_time;unqiueIndex:sttype_uid_batchtime_idx;comment:批次时间;"` - FlowStatus int32 `gorm:"column:flow_status;default:1;comment:流程状态 1=未生成 2=已生成未签署 3=已签署"` - - ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看对账单链接" json:"view_url"` - DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:对账单下载链接" json:"download_url"` - BatchId int64 `gorm:"column:batch_id;unqiueIndex:batchid_tfnum_idx;comment:批次id;"` - EntrustList []ArtworkStatementDetail `gorm:"foreignKey:BatchId;references:ID"` //当前批次的委托单详情 -} - -func (StatementBatch) TableName() string { - return "statement_batch" -} - -// // 对账单画作委托详情 -// type ArtworkStatementDetail struct { -// Model -// Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作详情表的唯一表示;NOT NULL" json:"uid"` -// BatchId int64 `gorm:"column:batch_id;unqiueIndex:batchid_tfnum_idx;comment:批次id;"` -// TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` -// ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` -// Ruler string `gorm:"column:ruler;comment:平尺"` -// SaleNo string `gorm:"column:sale_no;comment:销售单号"` -// CompleteDate string `gorm:"column:complete_date;comment:成交日期"` -// MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` -// GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` -// } - -// func (ArtworkStatementDetail) TableName() string { -// return "artwork_statement_detail" -// } diff --git a/cmd/model/contract.go b/cmd/model/contract.go index da5806d..d46c4db 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -4,30 +4,30 @@ import "gorm.io/plugin/soft_delete" // Contract 用户模型 type Contract struct { - ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` - ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` - ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` - ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` - TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` - Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` - ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` - DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` - State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 - Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 - LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` - SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` - StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtworkInfo []ArtworkStatementDetail `gorm:"column:artwork_info;foreignKey:Uid;references:BatchUid"` //当前批次的委托单详情 - CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` - UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` + ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` + ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` + TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` + Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` + ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` + DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` + State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 + Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 + LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` + SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` + BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` + ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:Uid;references:BatchUid"` //当前批次的物权委托单详情 + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt } // 对账单画作物权委托详情 -type ArtworkStatementDetail struct { - Model +type ArtworkTxDetail struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` BatchUid int64 `gorm:"column:batch_id;unqiueIndex:batchid_tfnum_idx;comment:批次id;"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` @@ -38,8 +38,11 @@ type ArtworkStatementDetail struct { MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt } -func (ArtworkStatementDetail) TableName() string { - return "artwork_statement_detail" +func (ArtworkTxDetail) TableName() string { + return "artwork_tx_detail" } diff --git a/pkg/db/init.go b/pkg/db/init.go index 60089f3..abcf49c 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -123,7 +123,7 @@ func migration() { &model.ArtshowArtistIndex{}, //画展-画家指数 &model.ArtshowArtistSupplement{}, //画展-画家补充信息 &model.Contract{}, //合同 - &model.ArtworkStatementDetail{}, //对账单详情 + &model.ArtworkTxDetail{}, //对账单详情 // &model.StatementBatch{}, //对账单批次 // &model.ArtworkEntrustDetail{}, // // &model.ArtworkSalesDetail{}, // From ea2953dd093758cdb48e7ecb4f5bb1fc25e239a5 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 13:22:07 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/contract.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/model/contract.go b/cmd/model/contract.go index d46c4db..a62d5ba 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -18,8 +18,9 @@ type Contract struct { LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + BatchID string `gorm:"column:batch_id;comment:批次ID" json:"batch_id"` StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:Uid;references:BatchUid"` //当前批次的物权委托单详情 + ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:BatchID;references:Uid"` //当前批次的物权委托单详情 CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt From f5f466c04d683786ecf5c8172e09629c63d55f22 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 13:59:32 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/contract.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cmd/model/contract.go b/cmd/model/contract.go index a62d5ba..c2f052c 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -17,20 +17,31 @@ type Contract struct { Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` - BatchID string `gorm:"column:batch_id;comment:批次ID" json:"batch_id"` + BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:BatchID;references:Uid"` //当前批次的物权委托单详情 + ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt } +//对账单画作物权 +type ArtworkTx struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"` + ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"` + BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt +} + // 对账单画作物权委托详情 type ArtworkTxDetail struct { ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` - BatchUid int64 `gorm:"column:batch_id;unqiueIndex:batchid_tfnum_idx;comment:批次id;"` + BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"batch_uid"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` Ruler string `gorm:"column:ruler;comment:平尺"` From 33c4db9cab859a1ff1d39df7028f80bc3471bdb0 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 14:01:06 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E8=A1=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/model/contract.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/model/contract.go b/cmd/model/contract.go index c2f052c..05cb8d6 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -17,6 +17,7 @@ type Contract struct { Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` + BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 From e4e298d9210e7797d1cb4c4e52ae6595d84da32d Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 17:17:29 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/controller/statement.go | 8 + cmd/internal/dao/statement.go | 20 + cmd/internal/logic/statement.go | 32 ++ cmd/model/contract.go | 75 +-- cmd/model/statement.go | 37 ++ pb/artistinfoStatement/statement.pb.go | 521 +++++++++++++++++- pb/artistinfoStatement/statement.proto | 38 +- .../statement.validator.pb.go | 22 + pb/artistinfoStatement/statement_triple.pb.go | 92 +++- 9 files changed, 760 insertions(+), 85 deletions(-) create mode 100644 cmd/model/statement.go diff --git a/cmd/internal/controller/statement.go b/cmd/internal/controller/statement.go index 13b3cf5..45df472 100644 --- a/cmd/internal/controller/statement.go +++ b/cmd/internal/controller/statement.go @@ -20,3 +20,11 @@ func (c *ArtistInfoStatementProvider) StatementList(ctx context.Context, req *st } return rep, nil } + +func (c *ArtistInfoStatementProvider) GetTxInfoByBatchUid(ctx context.Context, req *statement.GetTxInfoByBatchUidRequest) (rep *statement.GetTxInfoByBatchUidRespond, err error) { + fmt.Println("第一处") + if rep, err = c.statementLogic.GetTxInfoByBatchUid(req); err != nil { + return nil, err + } + return rep, nil +} diff --git a/cmd/internal/dao/statement.go b/cmd/internal/dao/statement.go index 19af27f..df515cf 100644 --- a/cmd/internal/dao/statement.go +++ b/cmd/internal/dao/statement.go @@ -39,3 +39,23 @@ func StatementList(artistUid string, state int32) (contractData []*statement.Con return } + +func GetArtistNameByBatchUid(batchUid string) (artworkTx model.ArtworkTx, err error) { + if err = db.DB.Where("uid = ?", batchUid).Find(&artworkTx).Error; err != nil { + zap.L().Error("get artworkTx info err", zap.Error(err)) + err = errors.New(m.ERROR_SELECT) + return + } + + return +} + +func GetArtworkTxDetailByBatchUid(batchUid string) (artworkTxDetail []model.ArtworkTxDetail, err error) { + if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkTxDetail).Error; err != nil { + zap.L().Error("get artworkTxDetail infos err", zap.Error(err)) + err = errors.New(m.ERROR_SELECT) + return + } + + return +} diff --git a/cmd/internal/logic/statement.go b/cmd/internal/logic/statement.go index 94c760c..fe09b11 100644 --- a/cmd/internal/logic/statement.go +++ b/cmd/internal/logic/statement.go @@ -9,6 +9,7 @@ import ( type IStatement interface { StatementList(req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error) + GetTxInfoByBatchUid(req *statement.GetTxInfoByBatchUidRequest) (rep *statement.GetTxInfoByBatchUidRespond, err error) } func NewStatement() IStatement { @@ -38,3 +39,34 @@ func (a *Statement) StatementList(req *statement.StatementListRequest) (rep *sta return } + +func (a *Statement) GetTxInfoByBatchUid(req *statement.GetTxInfoByBatchUidRequest) (rep *statement.GetTxInfoByBatchUidRespond, err error) { + + rep = &statement.GetTxInfoByBatchUidRespond{} + + //获取画家名 + artworkTx, err := dao.GetArtistNameByBatchUid(req.BatchUid) + if err != nil { + return + } + rep.ArtistName = artworkTx.ArtistName + + //获取物权画作详细信息 + artworkTxDetails, err := dao.GetArtworkTxDetailByBatchUid(req.BatchUid) + + artworkTxDetail := new(statement.ArtworkTxDetail) + + for _, v := range artworkTxDetails { + artworkTxDetail.TfNum = v.TfNum + artworkTxDetail.ArtworkName = v.ArtworkName + artworkTxDetail.Ruler = v.Ruler + artworkTxDetail.SaleNo = v.SaleNo + artworkTxDetail.CompleteDate = v.CompleteDate + artworkTxDetail.MinPrice = v.MinPrice + artworkTxDetail.SalePrice = v.SalePrice + artworkTxDetail.GuaranteePrice = v.GuaranteePrice + rep.ArtworkTxDetail = append(rep.ArtworkTxDetail, artworkTxDetail) + } + + return +} diff --git a/cmd/model/contract.go b/cmd/model/contract.go index 05cb8d6..00eee13 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -4,58 +4,25 @@ import "gorm.io/plugin/soft_delete" // Contract 用户模型 type Contract struct { - ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` - ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` - ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` - ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` - TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` - Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` - ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` - DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` - State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 - Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 - LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` - SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` - BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` - StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtworkInfo []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 - CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` - UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` - DeletedAt soft_delete.DeletedAt -} - -//对账单画作物权 -type ArtworkTx struct { - ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"uid"` - ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"` - ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` - CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` - UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` - DeletedAt soft_delete.DeletedAt -} - -// 对账单画作物权委托详情 -type ArtworkTxDetail struct { - ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` - BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"batch_uid"` - TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` - ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` - Ruler string `gorm:"column:ruler;comment:平尺"` - SaleNo string `gorm:"column:sale_no;comment:销售单号"` - CompleteDate string `gorm:"column:complete_date;comment:成交日期"` - MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` - SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` - GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` - CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` - UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` - DeletedAt soft_delete.DeletedAt -} - -func (ArtworkTxDetail) TableName() string { - return "artwork_tx_detail" + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` + ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` + ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` + TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` + Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` + ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` + DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` + State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 + Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 + LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` + SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` + BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` + StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` + ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单 + ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt } diff --git a/cmd/model/statement.go b/cmd/model/statement.go new file mode 100644 index 0000000..4fbc2ce --- /dev/null +++ b/cmd/model/statement.go @@ -0,0 +1,37 @@ +package model + +import "gorm.io/plugin/soft_delete" + +//对账单画作物权 +type ArtworkTx struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"` + ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"` + BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt +} + +// 对账单画作物权委托详情 +type ArtworkTxDetail struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` + BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"batch_uid"` + TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` + ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` + Ruler string `gorm:"column:ruler;comment:平尺"` + SaleNo string `gorm:"column:sale_no;comment:销售单号"` + CompleteDate string `gorm:"column:complete_date;comment:成交日期"` + MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` + SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` + GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt +} + +func (ArtworkTxDetail) TableName() string { + return "artwork_tx_detail" +} diff --git a/pb/artistinfoStatement/statement.pb.go b/pb/artistinfoStatement/statement.pb.go index 8bbd512..f4c484d 100644 --- a/pb/artistinfoStatement/statement.pb.go +++ b/pb/artistinfoStatement/statement.pb.go @@ -38,6 +38,9 @@ type Contracts struct { ExpirationTime string `protobuf:"bytes,11,opt,name=ExpirationTime,json=expiration_time,proto3" json:"ExpirationTime,omitempty"` LockTime string `protobuf:"bytes,12,opt,name=LockTime,json=lock_time,proto3" json:"LockTime,omitempty"` SignTime string `protobuf:"bytes,13,opt,name=SignTime,json=sign_time,proto3" json:"SignTime,omitempty"` + BatchName string `protobuf:"bytes,14,opt,name=BatchName,json=batch_name,proto3" json:"BatchName,omitempty"` + BatchUid string `protobuf:"bytes,15,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` + ArtistName string `protobuf:"bytes,16,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` } func (x *Contracts) Reset() { @@ -163,6 +166,138 @@ func (x *Contracts) GetSignTime() string { return "" } +func (x *Contracts) GetBatchName() string { + if x != nil { + return x.BatchName + } + return "" +} + +func (x *Contracts) GetBatchUid() string { + if x != nil { + return x.BatchUid + } + return "" +} + +func (x *Contracts) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +type ArtworkTxDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BatchUid string `protobuf:"bytes,1,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` + TfNum string `protobuf:"bytes,2,opt,name=TfNum,proto3" json:"TfNum,omitempty"` + ArtworkName string `protobuf:"bytes,3,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName,omitempty"` + Ruler string `protobuf:"bytes,4,opt,name=Ruler,json=ruler,proto3" json:"Ruler,omitempty"` + SaleNo string `protobuf:"bytes,5,opt,name=SaleNo,json=sale_no,proto3" json:"SaleNo,omitempty"` + CompleteDate string `protobuf:"bytes,6,opt,name=CompleteDate,json=complete_date,proto3" json:"CompleteDate,omitempty"` + MinPrice float32 `protobuf:"fixed32,7,opt,name=MinPrice,json=min_price,proto3" json:"MinPrice,omitempty"` + SalePrice float32 `protobuf:"fixed32,8,opt,name=SalePrice,json=sale_price,proto3" json:"SalePrice,omitempty"` + GuaranteePrice float32 `protobuf:"fixed32,9,opt,name=GuaranteePrice,json=guarantee_price,proto3" json:"GuaranteePrice,omitempty"` +} + +func (x *ArtworkTxDetail) Reset() { + *x = ArtworkTxDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_statement_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkTxDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkTxDetail) ProtoMessage() {} + +func (x *ArtworkTxDetail) ProtoReflect() protoreflect.Message { + mi := &file_statement_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 ArtworkTxDetail.ProtoReflect.Descriptor instead. +func (*ArtworkTxDetail) Descriptor() ([]byte, []int) { + return file_statement_proto_rawDescGZIP(), []int{1} +} + +func (x *ArtworkTxDetail) GetBatchUid() string { + if x != nil { + return x.BatchUid + } + return "" +} + +func (x *ArtworkTxDetail) GetTfNum() string { + if x != nil { + return x.TfNum + } + return "" +} + +func (x *ArtworkTxDetail) GetArtworkName() string { + if x != nil { + return x.ArtworkName + } + return "" +} + +func (x *ArtworkTxDetail) GetRuler() string { + if x != nil { + return x.Ruler + } + return "" +} + +func (x *ArtworkTxDetail) GetSaleNo() string { + if x != nil { + return x.SaleNo + } + return "" +} + +func (x *ArtworkTxDetail) GetCompleteDate() string { + if x != nil { + return x.CompleteDate + } + return "" +} + +func (x *ArtworkTxDetail) GetMinPrice() float32 { + if x != nil { + return x.MinPrice + } + return 0 +} + +func (x *ArtworkTxDetail) GetSalePrice() float32 { + if x != nil { + return x.SalePrice + } + return 0 +} + +func (x *ArtworkTxDetail) GetGuaranteePrice() float32 { + if x != nil { + return x.GuaranteePrice + } + return 0 +} + type StatementListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -177,7 +312,7 @@ type StatementListRequest struct { func (x *StatementListRequest) Reset() { *x = StatementListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[1] + mi := &file_statement_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -190,7 +325,7 @@ func (x *StatementListRequest) String() string { func (*StatementListRequest) ProtoMessage() {} func (x *StatementListRequest) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[1] + mi := &file_statement_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -203,7 +338,7 @@ func (x *StatementListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatementListRequest.ProtoReflect.Descriptor instead. func (*StatementListRequest) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{1} + return file_statement_proto_rawDescGZIP(), []int{2} } func (x *StatementListRequest) GetArtistUid() string { @@ -246,7 +381,7 @@ type StatementListRespond struct { func (x *StatementListRespond) Reset() { *x = StatementListRespond{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[2] + mi := &file_statement_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -259,7 +394,7 @@ func (x *StatementListRespond) String() string { func (*StatementListRespond) ProtoMessage() {} func (x *StatementListRespond) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[2] + mi := &file_statement_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -272,7 +407,7 @@ func (x *StatementListRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use StatementListRespond.ProtoReflect.Descriptor instead. func (*StatementListRespond) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{2} + return file_statement_proto_rawDescGZIP(), []int{3} } func (x *StatementListRespond) GetData() []*Contracts { @@ -289,11 +424,215 @@ func (x *StatementListRespond) GetMsg() string { return "" } +type CreateTxContractRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BatchUid string `protobuf:"bytes,1,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` +} + +func (x *CreateTxContractRequest) Reset() { + *x = CreateTxContractRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_statement_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTxContractRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTxContractRequest) ProtoMessage() {} + +func (x *CreateTxContractRequest) ProtoReflect() protoreflect.Message { + mi := &file_statement_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateTxContractRequest.ProtoReflect.Descriptor instead. +func (*CreateTxContractRequest) Descriptor() ([]byte, []int) { + return file_statement_proto_rawDescGZIP(), []int{4} +} + +func (x *CreateTxContractRequest) GetBatchUid() string { + if x != nil { + return x.BatchUid + } + return "" +} + +type CreateTxContractRespond struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` +} + +func (x *CreateTxContractRespond) Reset() { + *x = CreateTxContractRespond{} + if protoimpl.UnsafeEnabled { + mi := &file_statement_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTxContractRespond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTxContractRespond) ProtoMessage() {} + +func (x *CreateTxContractRespond) ProtoReflect() protoreflect.Message { + mi := &file_statement_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateTxContractRespond.ProtoReflect.Descriptor instead. +func (*CreateTxContractRespond) Descriptor() ([]byte, []int) { + return file_statement_proto_rawDescGZIP(), []int{5} +} + +func (x *CreateTxContractRespond) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetTxInfoByBatchUidRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BatchUid string `protobuf:"bytes,1,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` +} + +func (x *GetTxInfoByBatchUidRequest) Reset() { + *x = GetTxInfoByBatchUidRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_statement_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTxInfoByBatchUidRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTxInfoByBatchUidRequest) ProtoMessage() {} + +func (x *GetTxInfoByBatchUidRequest) ProtoReflect() protoreflect.Message { + mi := &file_statement_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTxInfoByBatchUidRequest.ProtoReflect.Descriptor instead. +func (*GetTxInfoByBatchUidRequest) Descriptor() ([]byte, []int) { + return file_statement_proto_rawDescGZIP(), []int{6} +} + +func (x *GetTxInfoByBatchUidRequest) GetBatchUid() string { + if x != nil { + return x.BatchUid + } + return "" +} + +type GetTxInfoByBatchUidRespond struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtistName string `protobuf:"bytes,1,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` + ArtworkTxDetail []*ArtworkTxDetail `protobuf:"bytes,2,rep,name=ArtworkTxDetail,json=artwork_tx_detail,proto3" json:"ArtworkTxDetail,omitempty"` + Msg string `protobuf:"bytes,3,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` +} + +func (x *GetTxInfoByBatchUidRespond) Reset() { + *x = GetTxInfoByBatchUidRespond{} + if protoimpl.UnsafeEnabled { + mi := &file_statement_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTxInfoByBatchUidRespond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTxInfoByBatchUidRespond) ProtoMessage() {} + +func (x *GetTxInfoByBatchUidRespond) ProtoReflect() protoreflect.Message { + mi := &file_statement_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTxInfoByBatchUidRespond.ProtoReflect.Descriptor instead. +func (*GetTxInfoByBatchUidRespond) Descriptor() ([]byte, []int) { + return file_statement_proto_rawDescGZIP(), []int{7} +} + +func (x *GetTxInfoByBatchUidRespond) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetTxInfoByBatchUidRespond) GetArtworkTxDetail() []*ArtworkTxDetail { + if x != nil { + return x.ArtworkTxDetail + } + return nil +} + +func (x *GetTxInfoByBatchUidRespond) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + var File_statement_proto protoreflect.FileDescriptor var file_statement_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x03, 0x0a, + 0x6f, 0x12, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf6, 0x03, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1d, 0x0a, @@ -319,7 +658,31 @@ var file_statement_proto_rawDesc = []byte{ 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x55, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x21, 0x0a, 0x0b, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x61, 0x6c, 0x65, 0x4e, 0x6f, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x61, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x12, 0x23, + 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x1d, 0x0a, 0x09, 0x53, 0x61, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x27, 0x0a, 0x0e, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7b, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, @@ -332,13 +695,45 @@ var file_statement_proto_rawDesc = []byte{ 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 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, 0x32, 0x60, 0x0a, 0x09, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x36, 0x0a, 0x17, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, + 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x39, + 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x08, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x78, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x32, 0xa5, 0x02, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x64, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x12, 0x25, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, + 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2f, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } @@ -355,21 +750,31 @@ func file_statement_proto_rawDescGZIP() []byte { return file_statement_proto_rawDescData } -var file_statement_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_statement_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_statement_proto_goTypes = []interface{}{ - (*Contracts)(nil), // 0: statement.Contracts - (*StatementListRequest)(nil), // 1: statement.StatementListRequest - (*StatementListRespond)(nil), // 2: statement.StatementListRespond + (*Contracts)(nil), // 0: statement.Contracts + (*ArtworkTxDetail)(nil), // 1: statement.ArtworkTxDetail + (*StatementListRequest)(nil), // 2: statement.StatementListRequest + (*StatementListRespond)(nil), // 3: statement.StatementListRespond + (*CreateTxContractRequest)(nil), // 4: statement.CreateTxContractRequest + (*CreateTxContractRespond)(nil), // 5: statement.CreateTxContractRespond + (*GetTxInfoByBatchUidRequest)(nil), // 6: statement.GetTxInfoByBatchUidRequest + (*GetTxInfoByBatchUidRespond)(nil), // 7: statement.GetTxInfoByBatchUidRespond } var file_statement_proto_depIdxs = []int32{ 0, // 0: statement.StatementListRespond.Data:type_name -> statement.Contracts - 1, // 1: statement.Statement.StatementList:input_type -> statement.StatementListRequest - 2, // 2: statement.Statement.StatementList:output_type -> statement.StatementListRespond - 2, // [2:3] is the sub-list for method output_type - 1, // [1:2] 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 + 1, // 1: statement.GetTxInfoByBatchUidRespond.ArtworkTxDetail:type_name -> statement.ArtworkTxDetail + 2, // 2: statement.Statement.StatementList:input_type -> statement.StatementListRequest + 4, // 3: statement.Statement.CreateTxContract:input_type -> statement.CreateTxContractRequest + 6, // 4: statement.Statement.GetTxInfoByBatchUid:input_type -> statement.GetTxInfoByBatchUidRequest + 3, // 5: statement.Statement.StatementList:output_type -> statement.StatementListRespond + 5, // 6: statement.Statement.CreateTxContract:output_type -> statement.CreateTxContractRespond + 7, // 7: statement.Statement.GetTxInfoByBatchUid:output_type -> statement.GetTxInfoByBatchUidRespond + 5, // [5:8] is the sub-list for method output_type + 2, // [2:5] 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_statement_proto_init() } @@ -391,7 +796,7 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatementListRequest); i { + switch v := v.(*ArtworkTxDetail); i { case 0: return &v.state case 1: @@ -403,6 +808,18 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatementListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statement_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatementListRespond); i { case 0: return &v.state @@ -414,6 +831,54 @@ func file_statement_proto_init() { return nil } } + file_statement_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTxContractRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statement_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTxContractRespond); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statement_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTxInfoByBatchUidRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statement_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTxInfoByBatchUidRespond); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -421,7 +886,7 @@ func file_statement_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_statement_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistinfoStatement/statement.proto b/pb/artistinfoStatement/statement.proto index 689b3a3..af72935 100644 --- a/pb/artistinfoStatement/statement.proto +++ b/pb/artistinfoStatement/statement.proto @@ -4,6 +4,8 @@ option go_package = "./;statement"; service Statement { rpc StatementList (StatementListRequest) returns (StatementListRespond) {} + rpc CreateTxContract (CreateTxContractRequest) returns (CreateTxContractRespond) {} + rpc GetTxInfoByBatchUid (GetTxInfoByBatchUidRequest) returns (GetTxInfoByBatchUidRespond) {} } message Contracts{ @@ -19,8 +21,22 @@ message Contracts{ int32 Status = 10 [json_name = "status"]; string ExpirationTime = 11 [json_name = "expiration_time"]; string LockTime = 12 [json_name = "lock_time"]; - string SignTime = 13 [json_name = "sign_time"]; - + string SignTime = 13 [json_name = "sign_time"]; + string BatchName = 14 [json_name = "batch_name"]; + string BatchUid = 15 [json_name = "batch_uid"]; + string ArtistName = 16 [json_name = "artist_name"]; + } + + message ArtworkTxDetail{ + string BatchUid = 1 [json_name = "batch_uid"]; + string TfNum = 2 [json_name = "TfNum"]; + string ArtworkName = 3 [json_name = "artwork_name"]; + string Ruler = 4 [json_name = "ruler"]; + string SaleNo = 5 [json_name = "sale_no"]; + string CompleteDate = 6 [json_name = "complete_date"]; + float MinPrice = 7 [json_name = "min_price"]; + float SalePrice = 8 [json_name = "sale_price"]; + float GuaranteePrice = 9 [json_name = "guarantee_price"]; } message StatementListRequest { @@ -33,4 +49,22 @@ message StatementListRequest { message StatementListRespond { repeated Contracts Data = 1 [json_name = "data"]; string Msg = 2 [json_name = "msg"]; +} + +message CreateTxContractRequest { + string BatchUid = 1 [json_name = "batch_uid"]; +} + +message CreateTxContractRespond { + string Msg = 1 [json_name = "msg"]; +} + +message GetTxInfoByBatchUidRequest { + string BatchUid = 1 [json_name = "batch_uid"]; +} + +message GetTxInfoByBatchUidRespond { + string ArtistName = 1 [json_name = "artist_name"]; + repeated ArtworkTxDetail ArtworkTxDetail = 2 [json_name = "artwork_tx_detail"]; + string Msg = 3 [json_name = "msg"]; } \ No newline at end of file diff --git a/pb/artistinfoStatement/statement.validator.pb.go b/pb/artistinfoStatement/statement.validator.pb.go index 0957f4c..4b7654c 100644 --- a/pb/artistinfoStatement/statement.validator.pb.go +++ b/pb/artistinfoStatement/statement.validator.pb.go @@ -18,6 +18,9 @@ var _ = math.Inf func (this *Contracts) Validate() error { return nil } +func (this *ArtworkTxDetail) Validate() error { + return nil +} func (this *StatementListRequest) Validate() error { return nil } @@ -31,3 +34,22 @@ func (this *StatementListRespond) Validate() error { } return nil } +func (this *CreateTxContractRequest) Validate() error { + return nil +} +func (this *CreateTxContractRespond) Validate() error { + return nil +} +func (this *GetTxInfoByBatchUidRequest) Validate() error { + return nil +} +func (this *GetTxInfoByBatchUidRespond) Validate() error { + for _, item := range this.ArtworkTxDetail { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ArtworkTxDetail", err) + } + } + } + return nil +} diff --git a/pb/artistinfoStatement/statement_triple.pb.go b/pb/artistinfoStatement/statement_triple.pb.go index e9a1ae1..e490a7d 100644 --- a/pb/artistinfoStatement/statement_triple.pb.go +++ b/pb/artistinfoStatement/statement_triple.pb.go @@ -29,6 +29,8 @@ const _ = grpc_go.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 StatementClient interface { StatementList(ctx context.Context, in *StatementListRequest, opts ...grpc_go.CallOption) (*StatementListRespond, common.ErrorWithAttachment) + CreateTxContract(ctx context.Context, in *CreateTxContractRequest, opts ...grpc_go.CallOption) (*CreateTxContractRespond, common.ErrorWithAttachment) + GetTxInfoByBatchUid(ctx context.Context, in *GetTxInfoByBatchUidRequest, opts ...grpc_go.CallOption) (*GetTxInfoByBatchUidRespond, common.ErrorWithAttachment) } type statementClient struct { @@ -36,7 +38,9 @@ type statementClient struct { } type StatementClientImpl struct { - StatementList func(ctx context.Context, in *StatementListRequest) (*StatementListRespond, error) + StatementList func(ctx context.Context, in *StatementListRequest) (*StatementListRespond, error) + CreateTxContract func(ctx context.Context, in *CreateTxContractRequest) (*CreateTxContractRespond, error) + GetTxInfoByBatchUid func(ctx context.Context, in *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error) } func (c *StatementClientImpl) GetDubboStub(cc *triple.TripleConn) StatementClient { @@ -57,11 +61,25 @@ func (c *statementClient) StatementList(ctx context.Context, in *StatementListRe return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/StatementList", in, out) } +func (c *statementClient) CreateTxContract(ctx context.Context, in *CreateTxContractRequest, opts ...grpc_go.CallOption) (*CreateTxContractRespond, common.ErrorWithAttachment) { + out := new(CreateTxContractRespond) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateTxContract", in, out) +} + +func (c *statementClient) GetTxInfoByBatchUid(ctx context.Context, in *GetTxInfoByBatchUidRequest, opts ...grpc_go.CallOption) (*GetTxInfoByBatchUidRespond, common.ErrorWithAttachment) { + out := new(GetTxInfoByBatchUidRespond) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetTxInfoByBatchUid", in, out) +} + // StatementServer is the server API for Statement service. // All implementations must embed UnimplementedStatementServer // for forward compatibility type StatementServer interface { StatementList(context.Context, *StatementListRequest) (*StatementListRespond, error) + CreateTxContract(context.Context, *CreateTxContractRequest) (*CreateTxContractRespond, error) + GetTxInfoByBatchUid(context.Context, *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error) mustEmbedUnimplementedStatementServer() } @@ -73,6 +91,12 @@ type UnimplementedStatementServer struct { func (UnimplementedStatementServer) StatementList(context.Context, *StatementListRequest) (*StatementListRespond, error) { return nil, status.Errorf(codes.Unimplemented, "method StatementList not implemented") } +func (UnimplementedStatementServer) CreateTxContract(context.Context, *CreateTxContractRequest) (*CreateTxContractRespond, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateTxContract not implemented") +} +func (UnimplementedStatementServer) GetTxInfoByBatchUid(context.Context, *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTxInfoByBatchUid not implemented") +} func (s *UnimplementedStatementServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -130,6 +154,64 @@ func _Statement_StatementList_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Statement_CreateTxContract_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTxContractRequest) + 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("CreateTxContract", 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) +} + +func _Statement_GetTxInfoByBatchUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTxInfoByBatchUidRequest) + 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("GetTxInfoByBatchUid", 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) +} + // Statement_ServiceDesc is the grpc_go.ServiceDesc for Statement service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -141,6 +223,14 @@ var Statement_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "StatementList", Handler: _Statement_StatementList_Handler, }, + { + MethodName: "CreateTxContract", + Handler: _Statement_CreateTxContract_Handler, + }, + { + MethodName: "GetTxInfoByBatchUid", + Handler: _Statement_GetTxInfoByBatchUid_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "statement.proto", From 6b9870d3bdefa8da513f0182448543e5e853f448 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Thu, 23 Mar 2023 18:31:10 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8D=95=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8E=9F=E5=90=88=E5=90=8C?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/contract.go | 59 ++--- pb/contract/contract.pb.go | 391 ++++++++++++++++++--------------- pb/contract/contract.proto | 3 + 3 files changed, 244 insertions(+), 209 deletions(-) diff --git a/cmd/internal/logic/contract.go b/cmd/internal/logic/contract.go index 7a23e6d..519570f 100644 --- a/cmd/internal/logic/contract.go +++ b/cmd/internal/logic/contract.go @@ -237,6 +237,37 @@ 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, + BatchName: contractInfo.BatchName, + BatchUid: contractInfo.BatchUid, + StType: contractInfo.StType, + } + + rep.Data = contract + + return +} + // func (a *Contract) SignContract(req *contract.SignContractRequest) (rep *contract.SignContractRespond, err error) { // rep = &contract.SignContractRespond{} @@ -671,34 +702,6 @@ func (a *Contract) FinishContract(req *contract.FinishContractRequest) (rep *con // return rep, nil // } -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 ada1301..10cdb2e 100644 --- a/pb/contract/contract.pb.go +++ b/pb/contract/contract.pb.go @@ -38,6 +38,9 @@ type Contracts struct { ExpirationTime string `protobuf:"bytes,11,opt,name=ExpirationTime,json=expiration_time,proto3" json:"ExpirationTime,omitempty"` LockTime string `protobuf:"bytes,12,opt,name=LockTime,json=lock_time,proto3" json:"LockTime,omitempty"` SignTime string `protobuf:"bytes,13,opt,name=SignTime,json=sign_time,proto3" json:"SignTime,omitempty"` + BatchName string `protobuf:"bytes,14,opt,name=BatchName,json=batch_name,proto3" json:"BatchName,omitempty"` + BatchUid string `protobuf:"bytes,15,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` + StType int32 `protobuf:"varint,16,opt,name=StType,json=st_yype,proto3" json:"StType,omitempty"` } func (x *Contracts) Reset() { @@ -163,6 +166,27 @@ func (x *Contracts) GetSignTime() string { return "" } +func (x *Contracts) GetBatchName() string { + if x != nil { + return x.BatchName + } + return "" +} + +func (x *Contracts) GetBatchUid() string { + if x != nil { + return x.BatchUid + } + return "" +} + +func (x *Contracts) GetStType() int32 { + if x != nil { + return x.StType + } + return 0 +} + type CreateContractRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1379,7 +1403,7 @@ var File_contract_proto protoreflect.FileDescriptor var file_contract_proto_rawDesc = []byte{ 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x22, 0x99, 0x03, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x21, + 0x22, 0xee, 0x03, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, @@ -1404,192 +1428,197 @@ var file_contract_proto_rawDesc = []byte{ 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x15, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5e, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x5a, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, - 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x22, 0x7a, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x13, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb2, 0x02, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x5f, 0x79, 0x79, 0x70, + 0x65, 0x22, 0x6b, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, + 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5e, 0x0a, 0x17, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x5a, 0x0a, 0x17, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x08, 0x48, 0x74, 0x6d, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x74, 0x6d, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x19, 0x0a, 0x07, 0x45, 0x6e, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0a, - 0x56, 0x69, 0x65, 0x77, 0x50, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x64, 0x66, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x21, - 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, - 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, - 0x6e, 0x6f, 0x12, 0x25, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x13, 0x53, 0x69, 0x67, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x12, 0x19, 0x0a, 0x07, 0x4a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6a, 0x75, 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x61, 0x0a, - 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x21, 0x0a, - 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x69, 0x64, - 0x22, 0x5b, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 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, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x6e, 0x0a, - 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, - 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, - 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, 0x49, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x56, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x01, 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, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb2, 0x02, 0x0a, 0x13, 0x53, 0x69, + 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, + 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x08, 0x48, 0x74, 0x6d, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x74, 0x6d, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x45, 0x6e, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x76, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x50, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x64, 0x66, 0x5f, + 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, + 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x6f, 0x12, 0x25, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x42, + 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x4a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x75, 0x6d, 0x70, 0x5f, 0x75, 0x72, 0x6c, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0x61, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x30, + 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 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, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0x6e, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x50, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x01, 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, 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, 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, + 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, 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, 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, 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, + 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, 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, 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, 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, + 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, } var ( diff --git a/pb/contract/contract.proto b/pb/contract/contract.proto index 4611451..1c95436 100644 --- a/pb/contract/contract.proto +++ b/pb/contract/contract.proto @@ -31,6 +31,9 @@ message Contracts{ string ExpirationTime = 11 [json_name = "expiration_time"]; string LockTime = 12 [json_name = "lock_time"]; string SignTime = 13 [json_name = "sign_time"]; + string BatchName = 14 [json_name = "batch_name"]; + string BatchUid = 15 [json_name = "batch_uid"]; + int32 StType = 16 [json_name = "st_yype"]; } message CreateContractRequest { From 690bc74f1d61fc4565b9a59aed22bdc783290acf Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Fri, 24 Mar 2023 09:41:11 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E7=89=A9=E6=9D=83=E8=A1=A8=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=89=A9=E6=9D=83=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/statement.go | 10 + cmd/internal/logic/statement.go | 26 +- cmd/model/contract.go | 43 +- cmd/model/statement.go | 21 +- pb/artistinfoStatement/statement.pb.go | 387 ++++++++++++------ pb/artistinfoStatement/statement.proto | 12 +- .../statement.validator.pb.go | 10 + 7 files changed, 351 insertions(+), 158 deletions(-) diff --git a/cmd/internal/dao/statement.go b/cmd/internal/dao/statement.go index df515cf..9ece648 100644 --- a/cmd/internal/dao/statement.go +++ b/cmd/internal/dao/statement.go @@ -59,3 +59,13 @@ func GetArtworkTxDetailByBatchUid(batchUid string) (artworkTxDetail []model.Artw return } + +func GetArtworkSoldTxDetailByBatchUid(batchUid string) (artworkSoldTxDetail []model.ArtworkSoldTxDetail, err error) { + if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkSoldTxDetail).Error; err != nil { + zap.L().Error("get artworkSoldTxDetail infos err", zap.Error(err)) + err = errors.New(m.ERROR_SELECT) + return + } + + return +} diff --git a/cmd/internal/logic/statement.go b/cmd/internal/logic/statement.go index fe09b11..9d40a34 100644 --- a/cmd/internal/logic/statement.go +++ b/cmd/internal/logic/statement.go @@ -53,20 +53,40 @@ func (a *Statement) GetTxInfoByBatchUid(req *statement.GetTxInfoByBatchUidReques //获取物权画作详细信息 artworkTxDetails, err := dao.GetArtworkTxDetailByBatchUid(req.BatchUid) + if err != nil { + return + } + rep.ArtistName = artworkTx.ArtistName + + //获取物权画作被售卖详细信息 + artworkSoldTxDetails, err := dao.GetArtworkSoldTxDetailByBatchUid(req.BatchUid) + if err != nil { + return + } artworkTxDetail := new(statement.ArtworkTxDetail) + artworkSoldTxDetail := new(statement.ArtworkSoldTxDetail) for _, v := range artworkTxDetails { artworkTxDetail.TfNum = v.TfNum artworkTxDetail.ArtworkName = v.ArtworkName artworkTxDetail.Ruler = v.Ruler - artworkTxDetail.SaleNo = v.SaleNo - artworkTxDetail.CompleteDate = v.CompleteDate artworkTxDetail.MinPrice = v.MinPrice - artworkTxDetail.SalePrice = v.SalePrice artworkTxDetail.GuaranteePrice = v.GuaranteePrice rep.ArtworkTxDetail = append(rep.ArtworkTxDetail, artworkTxDetail) } + for _, v := range artworkSoldTxDetails { + artworkSoldTxDetail.TfNum = v.TfNum + artworkSoldTxDetail.ArtworkName = v.ArtworkName + artworkSoldTxDetail.Ruler = v.Ruler + artworkSoldTxDetail.SaleNo = v.SaleNo + artworkSoldTxDetail.CompleteDate = v.CompleteDate + artworkSoldTxDetail.MinPrice = v.MinPrice + artworkSoldTxDetail.SalePrice = v.SalePrice + artworkSoldTxDetail.GuaranteePrice = v.GuaranteePrice + rep.ArtworkSoldTxDetail = append(rep.ArtworkSoldTxDetail, artworkSoldTxDetail) + } + return } diff --git a/cmd/model/contract.go b/cmd/model/contract.go index 00eee13..4f7cf5d 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -4,25 +4,26 @@ import "gorm.io/plugin/soft_delete" // Contract 用户模型 type Contract struct { - ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` - ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` - ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` - ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` - TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` - Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` - ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` - DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` - State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 - Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 - LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` - SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` - BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` - StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单 - ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 - CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` - UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` - DeletedAt soft_delete.DeletedAt + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` + ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` + ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` + TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` + Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` + ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` + DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` + State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 + Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 + LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` + SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` + BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` + StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` + ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单 + ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 + ArtworkSoldTxDetail []ArtworkSoldTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的已被售卖物权委托单详情 + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt } diff --git a/cmd/model/statement.go b/cmd/model/statement.go index 4fbc2ce..b2edf6a 100644 --- a/cmd/model/statement.go +++ b/cmd/model/statement.go @@ -5,7 +5,7 @@ import "gorm.io/plugin/soft_delete" //对账单画作物权 type ArtworkTx struct { ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"uid"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次Uid;NOT NULL" json:"uid"` ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"` ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"` BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` @@ -14,11 +14,26 @@ type ArtworkTx struct { DeletedAt soft_delete.DeletedAt } -// 对账单画作物权委托详情 +// 对账单画作物权委托详情(该画家一个批次的全部画作) type ArtworkTxDetail struct { ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` - BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次BatchUid;NOT NULL" json:"batch_uid"` + BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次Uid;NOT NULL" json:"batch_uid"` + TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` + ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` + Ruler string `gorm:"column:ruler;comment:平尺"` + MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` + GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt +} + +// 对账单画作物权委托详情(该画家一个批次的全部已被售卖了的画作) +type ArtworkSoldTxDetail struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"` + BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次Uid;NOT NULL" json:"batch_uid"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` Ruler string `gorm:"column:ruler;comment:平尺"` diff --git a/pb/artistinfoStatement/statement.pb.go b/pb/artistinfoStatement/statement.pb.go index f4c484d..89a85dc 100644 --- a/pb/artistinfoStatement/statement.pb.go +++ b/pb/artistinfoStatement/statement.pb.go @@ -196,11 +196,8 @@ type ArtworkTxDetail struct { TfNum string `protobuf:"bytes,2,opt,name=TfNum,proto3" json:"TfNum,omitempty"` ArtworkName string `protobuf:"bytes,3,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName,omitempty"` Ruler string `protobuf:"bytes,4,opt,name=Ruler,json=ruler,proto3" json:"Ruler,omitempty"` - SaleNo string `protobuf:"bytes,5,opt,name=SaleNo,json=sale_no,proto3" json:"SaleNo,omitempty"` - CompleteDate string `protobuf:"bytes,6,opt,name=CompleteDate,json=complete_date,proto3" json:"CompleteDate,omitempty"` - MinPrice float32 `protobuf:"fixed32,7,opt,name=MinPrice,json=min_price,proto3" json:"MinPrice,omitempty"` - SalePrice float32 `protobuf:"fixed32,8,opt,name=SalePrice,json=sale_price,proto3" json:"SalePrice,omitempty"` - GuaranteePrice float32 `protobuf:"fixed32,9,opt,name=GuaranteePrice,json=guarantee_price,proto3" json:"GuaranteePrice,omitempty"` + MinPrice float32 `protobuf:"fixed32,5,opt,name=MinPrice,json=min_price,proto3" json:"MinPrice,omitempty"` + GuaranteePrice float32 `protobuf:"fixed32,6,opt,name=GuaranteePrice,json=guarantee_price,proto3" json:"GuaranteePrice,omitempty"` } func (x *ArtworkTxDetail) Reset() { @@ -263,20 +260,6 @@ func (x *ArtworkTxDetail) GetRuler() string { return "" } -func (x *ArtworkTxDetail) GetSaleNo() string { - if x != nil { - return x.SaleNo - } - return "" -} - -func (x *ArtworkTxDetail) GetCompleteDate() string { - if x != nil { - return x.CompleteDate - } - return "" -} - func (x *ArtworkTxDetail) GetMinPrice() float32 { if x != nil { return x.MinPrice @@ -284,14 +267,118 @@ func (x *ArtworkTxDetail) GetMinPrice() float32 { return 0 } -func (x *ArtworkTxDetail) GetSalePrice() float32 { +func (x *ArtworkTxDetail) GetGuaranteePrice() float32 { + if x != nil { + return x.GuaranteePrice + } + return 0 +} + +type ArtworkSoldTxDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BatchUid string `protobuf:"bytes,1,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` + TfNum string `protobuf:"bytes,2,opt,name=TfNum,proto3" json:"TfNum,omitempty"` + ArtworkName string `protobuf:"bytes,3,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName,omitempty"` + Ruler string `protobuf:"bytes,4,opt,name=Ruler,json=ruler,proto3" json:"Ruler,omitempty"` + SaleNo string `protobuf:"bytes,5,opt,name=SaleNo,json=sale_no,proto3" json:"SaleNo,omitempty"` + CompleteDate string `protobuf:"bytes,6,opt,name=CompleteDate,json=complete_date,proto3" json:"CompleteDate,omitempty"` + MinPrice float32 `protobuf:"fixed32,7,opt,name=MinPrice,json=min_price,proto3" json:"MinPrice,omitempty"` + SalePrice float32 `protobuf:"fixed32,8,opt,name=SalePrice,json=sale_price,proto3" json:"SalePrice,omitempty"` + GuaranteePrice float32 `protobuf:"fixed32,9,opt,name=GuaranteePrice,json=guarantee_price,proto3" json:"GuaranteePrice,omitempty"` +} + +func (x *ArtworkSoldTxDetail) Reset() { + *x = ArtworkSoldTxDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_statement_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkSoldTxDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkSoldTxDetail) ProtoMessage() {} + +func (x *ArtworkSoldTxDetail) ProtoReflect() protoreflect.Message { + mi := &file_statement_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 ArtworkSoldTxDetail.ProtoReflect.Descriptor instead. +func (*ArtworkSoldTxDetail) Descriptor() ([]byte, []int) { + return file_statement_proto_rawDescGZIP(), []int{2} +} + +func (x *ArtworkSoldTxDetail) GetBatchUid() string { + if x != nil { + return x.BatchUid + } + return "" +} + +func (x *ArtworkSoldTxDetail) GetTfNum() string { + if x != nil { + return x.TfNum + } + return "" +} + +func (x *ArtworkSoldTxDetail) GetArtworkName() string { + if x != nil { + return x.ArtworkName + } + return "" +} + +func (x *ArtworkSoldTxDetail) GetRuler() string { + if x != nil { + return x.Ruler + } + return "" +} + +func (x *ArtworkSoldTxDetail) GetSaleNo() string { + if x != nil { + return x.SaleNo + } + return "" +} + +func (x *ArtworkSoldTxDetail) GetCompleteDate() string { + if x != nil { + return x.CompleteDate + } + return "" +} + +func (x *ArtworkSoldTxDetail) GetMinPrice() float32 { + if x != nil { + return x.MinPrice + } + return 0 +} + +func (x *ArtworkSoldTxDetail) GetSalePrice() float32 { if x != nil { return x.SalePrice } return 0 } -func (x *ArtworkTxDetail) GetGuaranteePrice() float32 { +func (x *ArtworkSoldTxDetail) GetGuaranteePrice() float32 { if x != nil { return x.GuaranteePrice } @@ -312,7 +399,7 @@ type StatementListRequest struct { func (x *StatementListRequest) Reset() { *x = StatementListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[2] + mi := &file_statement_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -325,7 +412,7 @@ func (x *StatementListRequest) String() string { func (*StatementListRequest) ProtoMessage() {} func (x *StatementListRequest) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[2] + mi := &file_statement_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -338,7 +425,7 @@ func (x *StatementListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatementListRequest.ProtoReflect.Descriptor instead. func (*StatementListRequest) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{2} + return file_statement_proto_rawDescGZIP(), []int{3} } func (x *StatementListRequest) GetArtistUid() string { @@ -381,7 +468,7 @@ type StatementListRespond struct { func (x *StatementListRespond) Reset() { *x = StatementListRespond{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[3] + mi := &file_statement_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -394,7 +481,7 @@ func (x *StatementListRespond) String() string { func (*StatementListRespond) ProtoMessage() {} func (x *StatementListRespond) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[3] + mi := &file_statement_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -407,7 +494,7 @@ func (x *StatementListRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use StatementListRespond.ProtoReflect.Descriptor instead. func (*StatementListRespond) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{3} + return file_statement_proto_rawDescGZIP(), []int{4} } func (x *StatementListRespond) GetData() []*Contracts { @@ -435,7 +522,7 @@ type CreateTxContractRequest struct { func (x *CreateTxContractRequest) Reset() { *x = CreateTxContractRequest{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[4] + mi := &file_statement_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -448,7 +535,7 @@ func (x *CreateTxContractRequest) String() string { func (*CreateTxContractRequest) ProtoMessage() {} func (x *CreateTxContractRequest) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[4] + mi := &file_statement_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -461,7 +548,7 @@ func (x *CreateTxContractRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTxContractRequest.ProtoReflect.Descriptor instead. func (*CreateTxContractRequest) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{4} + return file_statement_proto_rawDescGZIP(), []int{5} } func (x *CreateTxContractRequest) GetBatchUid() string { @@ -482,7 +569,7 @@ type CreateTxContractRespond struct { func (x *CreateTxContractRespond) Reset() { *x = CreateTxContractRespond{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[5] + mi := &file_statement_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -495,7 +582,7 @@ func (x *CreateTxContractRespond) String() string { func (*CreateTxContractRespond) ProtoMessage() {} func (x *CreateTxContractRespond) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[5] + mi := &file_statement_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -508,7 +595,7 @@ func (x *CreateTxContractRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTxContractRespond.ProtoReflect.Descriptor instead. func (*CreateTxContractRespond) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{5} + return file_statement_proto_rawDescGZIP(), []int{6} } func (x *CreateTxContractRespond) GetMsg() string { @@ -529,7 +616,7 @@ type GetTxInfoByBatchUidRequest struct { func (x *GetTxInfoByBatchUidRequest) Reset() { *x = GetTxInfoByBatchUidRequest{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[6] + mi := &file_statement_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -542,7 +629,7 @@ func (x *GetTxInfoByBatchUidRequest) String() string { func (*GetTxInfoByBatchUidRequest) ProtoMessage() {} func (x *GetTxInfoByBatchUidRequest) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[6] + mi := &file_statement_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -555,7 +642,7 @@ func (x *GetTxInfoByBatchUidRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxInfoByBatchUidRequest.ProtoReflect.Descriptor instead. func (*GetTxInfoByBatchUidRequest) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{6} + return file_statement_proto_rawDescGZIP(), []int{7} } func (x *GetTxInfoByBatchUidRequest) GetBatchUid() string { @@ -570,15 +657,16 @@ type GetTxInfoByBatchUidRespond struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistName string `protobuf:"bytes,1,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` - ArtworkTxDetail []*ArtworkTxDetail `protobuf:"bytes,2,rep,name=ArtworkTxDetail,json=artwork_tx_detail,proto3" json:"ArtworkTxDetail,omitempty"` - Msg string `protobuf:"bytes,3,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + ArtistName string `protobuf:"bytes,1,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` + ArtworkTxDetail []*ArtworkTxDetail `protobuf:"bytes,2,rep,name=ArtworkTxDetail,json=artwork_tx_detail,proto3" json:"ArtworkTxDetail,omitempty"` + ArtworkSoldTxDetail []*ArtworkSoldTxDetail `protobuf:"bytes,3,rep,name=ArtworkSoldTxDetail,json=artwork_sold_tx_detail,proto3" json:"ArtworkSoldTxDetail,omitempty"` + Msg string `protobuf:"bytes,4,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` } func (x *GetTxInfoByBatchUidRespond) Reset() { *x = GetTxInfoByBatchUidRespond{} if protoimpl.UnsafeEnabled { - mi := &file_statement_proto_msgTypes[7] + mi := &file_statement_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -591,7 +679,7 @@ func (x *GetTxInfoByBatchUidRespond) String() string { func (*GetTxInfoByBatchUidRespond) ProtoMessage() {} func (x *GetTxInfoByBatchUidRespond) ProtoReflect() protoreflect.Message { - mi := &file_statement_proto_msgTypes[7] + mi := &file_statement_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -604,7 +692,7 @@ func (x *GetTxInfoByBatchUidRespond) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxInfoByBatchUidRespond.ProtoReflect.Descriptor instead. func (*GetTxInfoByBatchUidRespond) Descriptor() ([]byte, []int) { - return file_statement_proto_rawDescGZIP(), []int{7} + return file_statement_proto_rawDescGZIP(), []int{8} } func (x *GetTxInfoByBatchUidRespond) GetArtistName() string { @@ -621,6 +709,13 @@ func (x *GetTxInfoByBatchUidRespond) GetArtworkTxDetail() []*ArtworkTxDetail { return nil } +func (x *GetTxInfoByBatchUidRespond) GetArtworkSoldTxDetail() []*ArtworkSoldTxDetail { + if x != nil { + return x.ArtworkSoldTxDetail + } + return nil +} + func (x *GetTxInfoByBatchUidRespond) GetMsg() string { if x != nil { return x.Msg @@ -664,7 +759,7 @@ var file_statement_proto_rawDesc = []byte{ 0x55, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x4e, 0x75, 0x6d, 0x18, @@ -672,70 +767,88 @@ var file_statement_proto_rawDesc = []byte{ 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x61, 0x6c, 0x65, 0x4e, 0x6f, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x61, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x12, 0x23, - 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1d, 0x0a, 0x09, 0x53, 0x61, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x27, 0x0a, 0x0e, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, - 0x65, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7b, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, - 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x52, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x28, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 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, 0x36, 0x0a, 0x17, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, - 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x39, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x08, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x1a, 0x47, 0x65, + 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x67, 0x75, 0x61, 0x72, + 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x13, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6f, 0x6c, 0x64, 0x54, 0x78, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x54, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, + 0x17, 0x0a, 0x06, 0x53, 0x61, 0x6c, 0x65, 0x4e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x61, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x12, 0x23, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, + 0x08, 0x4d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x53, 0x61, + 0x6c, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, + 0x61, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x47, 0x75, 0x61, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0f, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x22, 0x7b, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x52, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 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, 0x36, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, + 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x39, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, + 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x75, 0x69, 0x64, 0x22, 0xec, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x78, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x74, 0x78, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x53, 0x0a, 0x13, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6f, 0x6c, 0x64, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x6f, 0x6c, 0x64, + 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x16, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x73, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x78, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x32, 0xa5, 0x02, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x53, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x12, 0x25, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x78, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x32, 0xa5, 0x02, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, - 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, - 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x12, 0x25, 0x2e, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, - 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, - 0x2f, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2f, + 0x3b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -750,31 +863,33 @@ func file_statement_proto_rawDescGZIP() []byte { return file_statement_proto_rawDescData } -var file_statement_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_statement_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_statement_proto_goTypes = []interface{}{ (*Contracts)(nil), // 0: statement.Contracts (*ArtworkTxDetail)(nil), // 1: statement.ArtworkTxDetail - (*StatementListRequest)(nil), // 2: statement.StatementListRequest - (*StatementListRespond)(nil), // 3: statement.StatementListRespond - (*CreateTxContractRequest)(nil), // 4: statement.CreateTxContractRequest - (*CreateTxContractRespond)(nil), // 5: statement.CreateTxContractRespond - (*GetTxInfoByBatchUidRequest)(nil), // 6: statement.GetTxInfoByBatchUidRequest - (*GetTxInfoByBatchUidRespond)(nil), // 7: statement.GetTxInfoByBatchUidRespond + (*ArtworkSoldTxDetail)(nil), // 2: statement.ArtworkSoldTxDetail + (*StatementListRequest)(nil), // 3: statement.StatementListRequest + (*StatementListRespond)(nil), // 4: statement.StatementListRespond + (*CreateTxContractRequest)(nil), // 5: statement.CreateTxContractRequest + (*CreateTxContractRespond)(nil), // 6: statement.CreateTxContractRespond + (*GetTxInfoByBatchUidRequest)(nil), // 7: statement.GetTxInfoByBatchUidRequest + (*GetTxInfoByBatchUidRespond)(nil), // 8: statement.GetTxInfoByBatchUidRespond } var file_statement_proto_depIdxs = []int32{ 0, // 0: statement.StatementListRespond.Data:type_name -> statement.Contracts 1, // 1: statement.GetTxInfoByBatchUidRespond.ArtworkTxDetail:type_name -> statement.ArtworkTxDetail - 2, // 2: statement.Statement.StatementList:input_type -> statement.StatementListRequest - 4, // 3: statement.Statement.CreateTxContract:input_type -> statement.CreateTxContractRequest - 6, // 4: statement.Statement.GetTxInfoByBatchUid:input_type -> statement.GetTxInfoByBatchUidRequest - 3, // 5: statement.Statement.StatementList:output_type -> statement.StatementListRespond - 5, // 6: statement.Statement.CreateTxContract:output_type -> statement.CreateTxContractRespond - 7, // 7: statement.Statement.GetTxInfoByBatchUid:output_type -> statement.GetTxInfoByBatchUidRespond - 5, // [5:8] is the sub-list for method output_type - 2, // [2:5] 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 + 2, // 2: statement.GetTxInfoByBatchUidRespond.ArtworkSoldTxDetail:type_name -> statement.ArtworkSoldTxDetail + 3, // 3: statement.Statement.StatementList:input_type -> statement.StatementListRequest + 5, // 4: statement.Statement.CreateTxContract:input_type -> statement.CreateTxContractRequest + 7, // 5: statement.Statement.GetTxInfoByBatchUid:input_type -> statement.GetTxInfoByBatchUidRequest + 4, // 6: statement.Statement.StatementList:output_type -> statement.StatementListRespond + 6, // 7: statement.Statement.CreateTxContract:output_type -> statement.CreateTxContractRespond + 8, // 8: statement.Statement.GetTxInfoByBatchUid:output_type -> statement.GetTxInfoByBatchUidRespond + 6, // [6:9] is the sub-list for method output_type + 3, // [3:6] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_statement_proto_init() } @@ -808,7 +923,7 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatementListRequest); i { + switch v := v.(*ArtworkSoldTxDetail); i { case 0: return &v.state case 1: @@ -820,7 +935,7 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatementListRespond); i { + switch v := v.(*StatementListRequest); i { case 0: return &v.state case 1: @@ -832,7 +947,7 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTxContractRequest); i { + switch v := v.(*StatementListRespond); i { case 0: return &v.state case 1: @@ -844,7 +959,7 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTxContractRespond); i { + switch v := v.(*CreateTxContractRequest); i { case 0: return &v.state case 1: @@ -856,7 +971,7 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTxInfoByBatchUidRequest); i { + switch v := v.(*CreateTxContractRespond); i { case 0: return &v.state case 1: @@ -868,6 +983,18 @@ func file_statement_proto_init() { } } file_statement_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTxInfoByBatchUidRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statement_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxInfoByBatchUidRespond); i { case 0: return &v.state @@ -886,7 +1013,7 @@ func file_statement_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_statement_proto_rawDesc, NumEnums: 0, - NumMessages: 8, + NumMessages: 9, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artistinfoStatement/statement.proto b/pb/artistinfoStatement/statement.proto index af72935..1eb298a 100644 --- a/pb/artistinfoStatement/statement.proto +++ b/pb/artistinfoStatement/statement.proto @@ -28,6 +28,15 @@ message Contracts{ } message ArtworkTxDetail{ + string BatchUid = 1 [json_name = "batch_uid"]; + string TfNum = 2 [json_name = "TfNum"]; + string ArtworkName = 3 [json_name = "artwork_name"]; + string Ruler = 4 [json_name = "ruler"]; + float MinPrice = 5 [json_name = "min_price"]; + float GuaranteePrice = 6 [json_name = "guarantee_price"]; + } + + message ArtworkSoldTxDetail{ string BatchUid = 1 [json_name = "batch_uid"]; string TfNum = 2 [json_name = "TfNum"]; string ArtworkName = 3 [json_name = "artwork_name"]; @@ -66,5 +75,6 @@ message GetTxInfoByBatchUidRequest { message GetTxInfoByBatchUidRespond { string ArtistName = 1 [json_name = "artist_name"]; repeated ArtworkTxDetail ArtworkTxDetail = 2 [json_name = "artwork_tx_detail"]; - string Msg = 3 [json_name = "msg"]; + repeated ArtworkSoldTxDetail ArtworkSoldTxDetail = 3 [json_name = "artwork_sold_tx_detail"]; + string Msg = 4 [json_name = "msg"]; } \ No newline at end of file diff --git a/pb/artistinfoStatement/statement.validator.pb.go b/pb/artistinfoStatement/statement.validator.pb.go index 4b7654c..cfca7f9 100644 --- a/pb/artistinfoStatement/statement.validator.pb.go +++ b/pb/artistinfoStatement/statement.validator.pb.go @@ -21,6 +21,9 @@ func (this *Contracts) Validate() error { func (this *ArtworkTxDetail) Validate() error { return nil } +func (this *ArtworkSoldTxDetail) Validate() error { + return nil +} func (this *StatementListRequest) Validate() error { return nil } @@ -51,5 +54,12 @@ func (this *GetTxInfoByBatchUidRespond) Validate() error { } } } + for _, item := range this.ArtworkSoldTxDetail { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ArtworkSoldTxDetail", err) + } + } + } return nil } From 087ca51e06b2974f1226452df62ab7c41a474c76 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Fri, 24 Mar 2023 10:58:37 +0800 Subject: [PATCH 09/15] =?UTF-8?q?contract=20=E8=A1=A8=20=E5=AD=97=E6=AE=B5?= =?UTF-8?q?batchname=E6=94=B9=E4=B8=BAbatchtime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/contract.go | 2 +- cmd/model/contract.go | 2 +- cmd/model/statement.go | 2 +- pb/contract/contract.pb.go | 10 +++++----- pb/contract/contract.proto | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/internal/logic/contract.go b/cmd/internal/logic/contract.go index 519570f..6383730 100644 --- a/cmd/internal/logic/contract.go +++ b/cmd/internal/logic/contract.go @@ -258,7 +258,7 @@ func (a *Contract) GetContractInfoByContractUid(req *contract.GetContractInfoByC Status: contractInfo.Status, LockTime: contractInfo.LockTime, SignTime: contractInfo.SignTime, - BatchName: contractInfo.BatchName, + BatchTime: contractInfo.BatchTime, BatchUid: contractInfo.BatchUid, StType: contractInfo.StType, } diff --git a/cmd/model/contract.go b/cmd/model/contract.go index 4f7cf5d..9bbfccf 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -17,7 +17,7 @@ type Contract struct { Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"` BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单 diff --git a/cmd/model/statement.go b/cmd/model/statement.go index b2edf6a..e09c9de 100644 --- a/cmd/model/statement.go +++ b/cmd/model/statement.go @@ -8,7 +8,7 @@ type ArtworkTx struct { Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次Uid;NOT NULL" json:"uid"` ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"` ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"` - BatchName string `gorm:"column:batch_name;comment:批次名" json:"batch_name"` + BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt diff --git a/pb/contract/contract.pb.go b/pb/contract/contract.pb.go index 10cdb2e..a79a7f2 100644 --- a/pb/contract/contract.pb.go +++ b/pb/contract/contract.pb.go @@ -38,7 +38,7 @@ type Contracts struct { ExpirationTime string `protobuf:"bytes,11,opt,name=ExpirationTime,json=expiration_time,proto3" json:"ExpirationTime,omitempty"` LockTime string `protobuf:"bytes,12,opt,name=LockTime,json=lock_time,proto3" json:"LockTime,omitempty"` SignTime string `protobuf:"bytes,13,opt,name=SignTime,json=sign_time,proto3" json:"SignTime,omitempty"` - BatchName string `protobuf:"bytes,14,opt,name=BatchName,json=batch_name,proto3" json:"BatchName,omitempty"` + BatchTime string `protobuf:"bytes,14,opt,name=BatchTime,json=batch_time,proto3" json:"BatchTime,omitempty"` BatchUid string `protobuf:"bytes,15,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` StType int32 `protobuf:"varint,16,opt,name=StType,json=st_yype,proto3" json:"StType,omitempty"` } @@ -166,9 +166,9 @@ func (x *Contracts) GetSignTime() string { return "" } -func (x *Contracts) GetBatchName() string { +func (x *Contracts) GetBatchTime() string { if x != nil { - return x.BatchName + return x.BatchTime } return "" } @@ -1429,8 +1429,8 @@ var file_contract_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x5f, 0x79, 0x79, 0x70, diff --git a/pb/contract/contract.proto b/pb/contract/contract.proto index 1c95436..0ad8ebb 100644 --- a/pb/contract/contract.proto +++ b/pb/contract/contract.proto @@ -31,7 +31,7 @@ message Contracts{ string ExpirationTime = 11 [json_name = "expiration_time"]; string LockTime = 12 [json_name = "lock_time"]; string SignTime = 13 [json_name = "sign_time"]; - string BatchName = 14 [json_name = "batch_name"]; + string BatchTime = 14 [json_name = "batch_time"]; string BatchUid = 15 [json_name = "batch_uid"]; int32 StType = 16 [json_name = "st_yype"]; } From 4c810fe81f671655cc14acbd5956c82e84ae37d6 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 11:49:09 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=81=97=E6=BC=8F?= =?UTF-8?q?=E7=9A=84=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index 8b4421d..bbbde00 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -666,6 +666,9 @@ func GetViewUserList(req *artistInfoUser.FindUsersRequest) (resp []model.UserVie if req.IsArtist { tx = tx.Where("mgmt_artist_uid !='' ") } + if req.ArtistRealName != "" { + tx = tx.Where(fmt.Sprintf("real_name LIKE '%%%s%%'", req.ArtistRealName)) + } if req.Keyword != "" { searchWords := "%" + req.Keyword + "%" tx = tx.Where("real_name LIKE ? OR invited_code LIKE ? OR tel_num LIKE ?", searchWords, searchWords, searchWords) From 3afa12c1e99544066a606a61b244f1bfa749d6d7 Mon Sep 17 00:00:00 2001 From: songchuang <192749120@qq.com> Date: Fri, 24 Mar 2023 11:50:20 +0800 Subject: [PATCH 11/15] =?UTF-8?q?StatementList=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/contract.go | 2 +- cmd/internal/dao/statement.go | 5 ++- cmd/internal/logic/statement.go | 4 --- cmd/model/contract.go | 47 ++++++++++++++------------ cmd/model/statement.go | 45 ++++++++++++++++++++++-- pb/artistinfoStatement/statement.pb.go | 10 +++--- pb/artistinfoStatement/statement.proto | 3 +- 7 files changed, 79 insertions(+), 37 deletions(-) diff --git a/cmd/internal/dao/contract.go b/cmd/internal/dao/contract.go index c1e5831..ab2f4f3 100644 --- a/cmd/internal/dao/contract.go +++ b/cmd/internal/dao/contract.go @@ -154,7 +154,7 @@ func ContractList(artist_uid string, state int32) (contractData []*contract.Cont // } var contracts []model.Contract - if err = db.DB.Where("artist_uid = ? AND type != 4 AND state = ?", artist_uid, state).Find(&contracts).Error; err != nil { + if err = db.DB.Where("artist_uid = ? AND type != 4 AND type != 7 AND state = ?", artist_uid, state).Find(&contracts).Error; err != nil { zap.L().Error("get contracts info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) return diff --git a/cmd/internal/dao/statement.go b/cmd/internal/dao/statement.go index 9ece648..bb57ac1 100644 --- a/cmd/internal/dao/statement.go +++ b/cmd/internal/dao/statement.go @@ -11,8 +11,9 @@ import ( ) func StatementList(artistUid string, state int32) (contractData []*statement.Contracts, err error) { + var contracts []model.Contract - if err = db.DB.Where("artist_uid = ? AND type == 4 AND state = ?", artistUid, state).Find(&contracts).Error; err != nil { + if err = db.DB.Where("artist_uid = ? AND state = ?", artistUid, state).Where("type == 4 OR type == 7").Find(&contracts).Error; err != nil { zap.L().Error("get contracts info err", zap.Error(err)) err = errors.New(m.ERROR_SELECT) return @@ -32,6 +33,8 @@ func StatementList(artistUid string, state int32) (contractData []*statement.Con Status: int32(v.Status), LockTime: v.LockTime, SignTime: v.SignTime, + BatchTime: v.BatchTime, + BatchUid: v.BatchUid, } contractData = append(contractData, Contract) diff --git a/cmd/internal/logic/statement.go b/cmd/internal/logic/statement.go index 9d40a34..30414fe 100644 --- a/cmd/internal/logic/statement.go +++ b/cmd/internal/logic/statement.go @@ -1,8 +1,6 @@ package logic import ( - "fmt" - "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" statement "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement" ) @@ -26,8 +24,6 @@ func (a *Statement) StatementList(req *statement.StatementListRequest) (rep *sta return } - fmt.Println("user:", user) - ContractData, err := dao.StatementList(user.MgmtArtistUid, req.State) if err != nil { return diff --git a/cmd/model/contract.go b/cmd/model/contract.go index 9bbfccf..c39d1e9 100644 --- a/cmd/model/contract.go +++ b/cmd/model/contract.go @@ -4,26 +4,29 @@ import "gorm.io/plugin/soft_delete" // Contract 用户模型 type Contract struct { - ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` - Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` - ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` - ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` - ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` - TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` - Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` - ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` - DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` - State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 - Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 - LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` - SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` - BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"` - BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` - StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` - ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单 - ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 - ArtworkSoldTxDetail []ArtworkSoldTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的已被售卖物权委托单详情 - CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` - UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` - DeletedAt soft_delete.DeletedAt + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:合同表的唯一表示;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家uid;NOT NULL" json:"artist_uid"` + ArtworkUid string `gorm:"column:artwork_uid;type:varchar(1000);comment:画作uid" json:"artwork_uid"` + ContractId string `gorm:"column:contract_id;type:varchar(300);comment:合同id" json:"contract_id"` + TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"` + Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` + ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"` + DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"` + State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署 + Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 + LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` + SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` + BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"` + BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` + StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"` + ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单 + ArtworkCopy *ArtworkCopy `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的版权委托单 + ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 + ArtworkSoldTxDetail []ArtworkSoldTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的已被售卖物权委托单详情 + ArtworkCopyDetail []ArtworkCopyDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的版权委托单详情 + ArtworkSoldCopyDetail []ArtworkSoldCopyDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的已被售卖版权委托单详情 + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt } diff --git a/cmd/model/statement.go b/cmd/model/statement.go index e09c9de..82fbb47 100644 --- a/cmd/model/statement.go +++ b/cmd/model/statement.go @@ -47,6 +47,47 @@ type ArtworkSoldTxDetail struct { DeletedAt soft_delete.DeletedAt } -func (ArtworkTxDetail) TableName() string { - return "artwork_tx_detail" +//对账单画作版权 +type ArtworkCopy struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作版权表的唯一表示,即批次Uid;NOT NULL" json:"uid"` + ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"` + ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"` + BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt +} + +// 对账单画作版权委托详情(该画家一个批次的全部画作) +type ArtworkCopyDetail struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作版权详情表的唯一表示;NOT NULL" json:"uid"` + BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作版权表的唯一表示,即批次Uid;NOT NULL" json:"batch_uid"` + TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` + ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` + Ruler string `gorm:"column:ruler;comment:平尺"` + MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` + GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt +} + +// 对账单画作版权委托详情(该画家一个批次的全部已被售卖了的画作) +type ArtworkSoldCopyDetail struct { + ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` + Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作版权详情表的唯一表示;NOT NULL" json:"uid"` + BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作版权表的唯一表示,即批次Uid;NOT NULL" json:"batch_uid"` + TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"` + ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` + Ruler string `gorm:"column:ruler;comment:平尺"` + SaleNo string `gorm:"column:sale_no;comment:销售单号"` + CompleteDate string `gorm:"column:complete_date;comment:成交日期"` + MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` + SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` + GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` + CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` + UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` + DeletedAt soft_delete.DeletedAt } diff --git a/pb/artistinfoStatement/statement.pb.go b/pb/artistinfoStatement/statement.pb.go index 89a85dc..ccaf9ff 100644 --- a/pb/artistinfoStatement/statement.pb.go +++ b/pb/artistinfoStatement/statement.pb.go @@ -38,7 +38,7 @@ type Contracts struct { ExpirationTime string `protobuf:"bytes,11,opt,name=ExpirationTime,json=expiration_time,proto3" json:"ExpirationTime,omitempty"` LockTime string `protobuf:"bytes,12,opt,name=LockTime,json=lock_time,proto3" json:"LockTime,omitempty"` SignTime string `protobuf:"bytes,13,opt,name=SignTime,json=sign_time,proto3" json:"SignTime,omitempty"` - BatchName string `protobuf:"bytes,14,opt,name=BatchName,json=batch_name,proto3" json:"BatchName,omitempty"` + BatchTime string `protobuf:"bytes,14,opt,name=BatchTime,json=batch_time,proto3" json:"BatchTime,omitempty"` BatchUid string `protobuf:"bytes,15,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"` ArtistName string `protobuf:"bytes,16,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` } @@ -166,9 +166,9 @@ func (x *Contracts) GetSignTime() string { return "" } -func (x *Contracts) GetBatchName() string { +func (x *Contracts) GetBatchTime() string { if x != nil { - return x.BatchName + return x.BatchTime } return "" } @@ -754,8 +754,8 @@ var file_statement_proto_rawDesc = []byte{ 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, diff --git a/pb/artistinfoStatement/statement.proto b/pb/artistinfoStatement/statement.proto index 1eb298a..91c7dc6 100644 --- a/pb/artistinfoStatement/statement.proto +++ b/pb/artistinfoStatement/statement.proto @@ -22,9 +22,8 @@ message Contracts{ string ExpirationTime = 11 [json_name = "expiration_time"]; string LockTime = 12 [json_name = "lock_time"]; string SignTime = 13 [json_name = "sign_time"]; - string BatchName = 14 [json_name = "batch_name"]; + string BatchTime = 14 [json_name = "batch_time"]; string BatchUid = 15 [json_name = "batch_uid"]; - string ArtistName = 16 [json_name = "artist_name"]; } message ArtworkTxDetail{ From 62b33d09bbfe2c604b2215a35909c99cdaeee103 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 12:13:09 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/logic/artistinfo_artwork.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cmd/internal/logic/artistinfo_artwork.go b/cmd/internal/logic/artistinfo_artwork.go index 5e21a31..cf4d806 100644 --- a/cmd/internal/logic/artistinfo_artwork.go +++ b/cmd/internal/logic/artistinfo_artwork.go @@ -10,6 +10,8 @@ import ( "context" "errors" "fmt" + "strings" + "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" "github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/pb/artist" @@ -20,7 +22,6 @@ import ( "github.com/fonchain/fonchain-artistinfo/pkg/service" "github.com/fonchain/fonchain-artistinfo/pkg/util/stime" "google.golang.org/protobuf/types/known/emptypb" - "strings" ) type IArtistInfoArtwork interface { @@ -211,10 +212,11 @@ func (a ArtistInfoArtworkLogic) GenerateArtworkSupplementInfo(request *artistInf func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistArtworkStaticRequest) (res *artistInfoArtwork.ArtistArtworkStaticResponse, err error) { //查询画家宝中认证成功的用户 userList, _, err := dao.GetViewUserList(&artistInfoUser.FindUsersRequest{ - ArtistRealName: request.ArtistKeyWords, - Page: int32(request.Page), - PageSize: int32(request.PageSize), - IsArtist: true, + // ArtistRealName: request.ArtistKeyWords, + Keyword: request.ArtistKeyWords, + Page: int32(request.Page), + PageSize: int32(request.PageSize), + IsArtist: true, }) if err != nil { return nil, err From 3bf38f5f71c8e45b54e3950dbd338f4e06b98603 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 12:23:10 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=81=97=E6=BC=8F?= =?UTF-8?q?=E7=9A=84=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artshow_artistSupplement.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go index d0d0721..64e4519 100644 --- a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go +++ b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go @@ -81,6 +81,9 @@ func (a artistSupplement) GetDataList(req *artistinfoArtshow.GetArtistSupplement if req.AuditStatus != 0 { tx = tx.Where("audit_status = ?", req.AuditStatus) } + if req.ArtistName != "" { + tx = tx.Where(fmt.Sprintf("artist_name = '%%%v%%'", req.ArtistName)) + } //if req.AuditMark1 != "" { // tx = tx.Where("audit_mark1 = ?", req.AuditMark1) //} From 9f710b41585e2e1a956d85e735b779347d039cf4 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 12:54:03 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistinfo_artshow_artistSupplement.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go index 64e4519..02ef6e3 100644 --- a/cmd/internal/dao/artistinfo_artshow_artistSupplement.go +++ b/cmd/internal/dao/artistinfo_artshow_artistSupplement.go @@ -82,8 +82,9 @@ func (a artistSupplement) GetDataList(req *artistinfoArtshow.GetArtistSupplement tx = tx.Where("audit_status = ?", req.AuditStatus) } if req.ArtistName != "" { - tx = tx.Where(fmt.Sprintf("artist_name = '%%%v%%'", req.ArtistName)) + tx = tx.Where(fmt.Sprintf("artist_name LIKE '%%%v%%'", req.ArtistName)) } + fmt.Sprintln("req.ArtistName ", req.ArtistName) //if req.AuditMark1 != "" { // tx = tx.Where("audit_mark1 = ?", req.AuditMark1) //} From 0459319c2a24e693fa228ccf1cb5169c430e3033 Mon Sep 17 00:00:00 2001 From: dorlolo <428192774@qq.com> Date: Fri, 24 Mar 2023 13:09:17 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E4=B8=BA=E9=82=80=E8=AF=B7=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E5=A2=9E=E5=8A=A0=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/internal/dao/artistInfo_user.go | 11 +- pb/artistInfoUser/artistinfoUser.pb.go | 437 +++++++++++++------------ pb/artistinfoUser.proto | 6 +- 3 files changed, 242 insertions(+), 212 deletions(-) diff --git a/cmd/internal/dao/artistInfo_user.go b/cmd/internal/dao/artistInfo_user.go index bbbde00..911a842 100644 --- a/cmd/internal/dao/artistInfo_user.go +++ b/cmd/internal/dao/artistInfo_user.go @@ -968,7 +968,16 @@ func GetInvitedUserList(in *artistInfoUser.GetInvitedUserListRequest) (res *arti var inviteRelationIds []int64 db.DB.Model(model.UserInvited{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("invited_user_id", &inviteRelationIds) var invitedList []model.User - orm := db.DB.Model(model.User{}).Preload("RealNameInfo").Where("id in ?", inviteRelationIds) + orm := db.DB.Model(model.User{}).Preload("RealNameInfo"). + Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id"). + Where("id in ?", inviteRelationIds) + if in.RealName != "" { + orm = orm.Where("rn.name like ?", "%"+in.RealName+"%") + } + if in.Keyword != "" { + searchWords := "%" + in.Keyword + "%" + orm = orm.Where("rn.name like ? OR sys_user.tel_num LIKE ? or sys_user.invited_code LIKE ?", searchWords, searchWords, searchWords) + } if err = orm.Count(&res.Page.Total).Scopes(db.Pagination(in.Page, in.PageSize)).Find(&invitedList).Error; err != nil { return nil, err } diff --git a/pb/artistInfoUser/artistinfoUser.pb.go b/pb/artistInfoUser/artistinfoUser.pb.go index 542c9a9..8dfb403 100644 --- a/pb/artistInfoUser/artistinfoUser.pb.go +++ b/pb/artistInfoUser/artistinfoUser.pb.go @@ -4430,6 +4430,8 @@ type GetInvitedUserListRequest struct { InviterCode string `protobuf:"bytes,2,opt,name=inviterCode,proto3" json:"inviterCode,omitempty"` //可选 邀请者的二维码 Page int64 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` PageSize int64 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` + RealName string `protobuf:"bytes,5,opt,name=realName,proto3" json:"realName,omitempty"` + Keyword string `protobuf:"bytes,6,opt,name=keyword,proto3" json:"keyword,omitempty"` } func (x *GetInvitedUserListRequest) Reset() { @@ -4485,6 +4487,20 @@ func (x *GetInvitedUserListRequest) GetPageSize() int64 { return 0 } +func (x *GetInvitedUserListRequest) GetRealName() string { + if x != nil { + return x.RealName + } + return "" +} + +func (x *GetInvitedUserListRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + type InvitedUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5603,221 +5619,224 @@ var file_pb_artistinfoUser_proto_rawDesc = []byte{ 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x22, 0xab, 0x03, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, - 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, - 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, - 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x22, 0x7d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x22, 0x66, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x69, 0x64, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x22, - 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xab, 0x03, 0x0a, 0x0b, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, + 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x66, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x22, 0x7d, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x6d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x66, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, + 0xc7, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x69, + 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x78, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x65, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, + 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, - 0xf4, 0x10, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, - 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, - 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, - 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, - 0x0c, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, - 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, - 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, - 0x49, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, - 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, - 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x5a, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, - 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0xf4, 0x10, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4d, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x07, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, + 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, + 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, + 0x12, 0x58, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, + 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, + 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, + 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, + 0x6b, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x22, 0x00, 0x12, 0x65, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, + 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0c, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, + 0x00, 0x12, 0x76, 0x0a, 0x18, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x42, 0x69, 0x6e, + 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x46, 0x69, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x46, + 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x2e, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, + 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, + 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, + 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x53, + 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, + 0x61, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, + 0x64, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, + 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x13, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, + 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/artistinfoUser.proto b/pb/artistinfoUser.proto index a0c5848..ff04bf8 100644 --- a/pb/artistinfoUser.proto +++ b/pb/artistinfoUser.proto @@ -520,8 +520,10 @@ message FindUsersUserViewResponse{ message GetInvitedUserListRequest{ // string telNum =1;//可选 邀请者的电话号码 string inviterCode=2;//可选 邀请者的二维码 - int64 page=3; - int64 pageSize=4; + int64 page=3; + int64 pageSize=4; + string realName=5; + string keyword=6; } message InvitedUser{