Merge branch 'xjjdev' into dev

This commit is contained in:
徐俊杰 2023-03-17 14:40:07 +08:00
commit 5116b6aff8
10 changed files with 583 additions and 133 deletions

View File

@ -21,9 +21,7 @@ func main() {
config.SetProviderService(&controller.ArtistInfoArtworkProvider{})
config.SetProviderService(&controller.ArtistInfoArtshowProvider{})
config.SetProviderService(&controller.ArtistInfoContractProvider{})
//config.SetProviderService(&controller.ContractProvider{})
//config.SetProviderService(&controller.ArtWorkProvider{})
//config.SetProviderService(&controller.SupplyProvider{})
config.SetConsumerService(&controller.StatementServerProvider{})
db.Init(m.SERVER_CONFIG)
cache.InitRedis(m.SERVER_CONFIG)
if err := config.Load(); err != nil {

View File

@ -38,3 +38,7 @@ func (s *StatementServerProvider) BatchCreateStatementDetail(ctx context.Context
func (s *StatementServerProvider) GetStatementDetailList(ctx context.Context, in *artistinfoStatement.GetStatementDetailListRequest) (*artistinfoStatement.GetStatementDetailListResponse, error) {
return s.logic.GetStatementDetailList(in)
}
func (s *StatementServerProvider) GetStatementBatchTimeMenus(ctx context.Context, in *artistinfoStatement.GetStatementBatchListRequest) (*artistinfoStatement.GetStatementBatchTimeMenusResponse, error) {
return s.logic.GetStatementBatchTimeMenus(in)
}

View File

@ -1,25 +1,162 @@
package dao
import (
"github.com/fonchain/fonchain-artistinfo/cmd/model"
"github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
"google.golang.org/protobuf/types/known/emptypb"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"gorm.io/gorm/clause"
)
func CreateStatementBatch(in *artistinfoStatement.StatementBatchRequest) (res *artistinfoStatement.CreateStatementBatchResponse, err error) {
return nil, nil
// =====================================
//
// 对账单批次
func CreateStatementBatch(in *artistinfoStatement.StatementBatchRequest) (res model.StatementBatch, err error) {
res = model.StatementBatch{
StType: in.StType,
ArtistUid: in.ArtistUid,
ArtistRealName: in.ArtistRealName,
FlowStatus: in.FlowStatus,
BatchTime: in.BatchTime,
MinPrice: in.MinPrice,
GuaranteePrice: in.GuaranteePrice,
FileUrl: in.FileUrl,
}
err = db.DB.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "st_type"}, {Name: "artist_uid"}, {Name: "batch_time"}},
UpdateAll: true,
}).Create(&res).Error
return
}
func BatchCreateStatementBatch(in *artistinfoStatement.BatchCreateStatementBatchRequest) (*emptypb.Empty, error) {
return nil, nil
func BatchCreateStatementBatch(in *artistinfoStatement.BatchCreateStatementBatchRequest) error {
var datas = []model.StatementBatch{}
for _, in := range in.Data {
datas = append(datas, model.StatementBatch{
StType: in.StType,
ArtistUid: in.ArtistUid,
ArtistRealName: in.ArtistRealName,
FlowStatus: in.FlowStatus,
BatchTime: in.BatchTime,
MinPrice: in.MinPrice,
GuaranteePrice: in.GuaranteePrice,
FileUrl: in.FileUrl,
})
}
err := db.DB.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "st_type"}, {Name: "artist_uid"}, {Name: "batch_time"}},
UpdateAll: true,
}).Create(&datas).Error
return err
}
func GetStatementBatchList(in *artistinfoStatement.GetStatementBatchListRequest) (*artistinfoStatement.GetStatementBatchListResponse, error) {
return nil, nil
func GetStatementBatchList(in *artistinfoStatement.GetStatementBatchListRequest) (res []model.StatementBatch, total int64, err error) {
res = []model.StatementBatch{}
var orm = db.DB.Model(model.StatementBatch{}).Order("created_at desc").Preload("ArtworkList")
if in.Condition.StType != 0 {
orm = orm.Where("st_type = ?", in.Condition.StType)
}
if in.Condition.ArtistUid != "" {
orm = orm.Where("artist_uid = ?", in.Condition.ArtistUid)
}
if in.Condition.ArtistRealName != "" {
orm = orm.Where("artist_real_name = ?", in.Condition.ArtistRealName)
}
if in.Condition.FlowStatus != 0 {
orm = orm.Where("flow_status = ?", in.Condition.FlowStatus)
}
if in.Condition.BatchTime != "" {
orm = orm.Where("batch_time = ?", in.Condition.BatchTime)
}
if in.Condition.MinPrice != 0 {
orm = orm.Where("min_price = ?", in.Condition.MinPrice)
}
if in.Condition.GuaranteePrice != 0 {
orm = orm.Where("guarantee_price = ?", in.Condition.GuaranteePrice)
}
if in.Condition.Id != 0 {
orm = orm.Where("id = ?", in.Condition.Id)
}
if in.Condition.FileUrl != "" {
orm = orm.Where("file_url = ?", in.Condition.FileUrl)
}
if len(in.Ids) > 0 {
orm = orm.Where("id in ?", in.Ids)
}
if len(in.BatchTimeList) > 0 {
orm = orm.Where("batch_time in ?", in.BatchTimeList)
}
err = orm.Count(&total).Scopes(db.Pagination(in.Page, in.PageSize)).Find(&res).Error
return
}
func CreateStatementDetail(in *artistinfoStatement.StatementDetailRequest) (*artistinfoStatement.CreateStatementDetailResponse, error) {
return nil, nil
func GetStatementBatchTimeMenus(in *artistinfoStatement.GetStatementBatchListRequest) (res []string, err error) {
res = []string{}
err = db.DB.Model(model.StatementBatch{}).Pluck("batch_time", &res).Error
return
}
func BatchCreateStatementDetail(in *artistinfoStatement.BatchCreateStatementDetailRequest) (*emptypb.Empty, error) {
return nil, nil
//=====================================
// 对账单详情
func CreateStatementDetail(in *artistinfoStatement.StatementDetailRequest) (res model.StatementDetail, err error) {
res = model.StatementDetail{
BatchId: in.BatchId,
TfNum: in.TfNum,
ArtworkName: in.ArtworkName,
Ruler: in.Ruler,
SaleNo: in.SaleNo,
CompleteDate: in.CompleteDate,
}
err = db.DB.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "tf_num"}, {Name: "batch_id"}},
UpdateAll: true,
}).Create(&res).Error
return
}
func GetStatementDetailList(in *artistinfoStatement.GetStatementDetailListRequest) (*artistinfoStatement.GetStatementDetailListResponse, error) {
return nil, nil
func BatchCreateStatementDetail(in *artistinfoStatement.BatchCreateStatementDetailRequest) error {
var datas = []model.StatementDetail{}
for _, in := range in.Data {
datas = append(datas, model.StatementDetail{
BatchId: in.BatchId,
TfNum: in.TfNum,
ArtworkName: in.ArtworkName,
Ruler: in.Ruler,
SaleNo: in.SaleNo,
CompleteDate: in.CompleteDate,
})
}
err := db.DB.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "tf_num"}, {Name: "batch_id"}},
UpdateAll: true,
}).Create(&datas).Error
return err
}
func GetStatementDetailList(in *artistinfoStatement.GetStatementDetailListRequest) (res []model.StatementDetail, total int64, err error) {
res = []model.StatementDetail{}
var orm = db.DB.Model(model.StatementDetail{}).Order("created_at desc")
if in.Condition.BatchId != 0 {
orm = orm.Where(" batch_id = ?", in.Condition.BatchId)
}
if in.Condition.TfNum != "" {
orm = orm.Where(" tf_num = ?", in.Condition.TfNum)
}
if in.Condition.ArtworkName != "" {
orm = orm.Where(" artwork_name like = ?", "%"+in.Condition.ArtworkName+"%")
}
if in.Condition.Ruler != "" {
orm = orm.Where(" = ?", in.Condition.Ruler)
}
if in.Condition.SaleNo != "" {
orm = orm.Where(" = ?", in.Condition.SaleNo)
}
if in.Condition.CompleteDate != "" {
orm = orm.Where(" complete_date = ?", in.Condition.CompleteDate)
}
if in.Condition.Id != 0 {
orm = orm.Where(" id = ?", in.Condition.Id)
}
err = orm.Count(&total).Scopes(db.Pagination(in.Page, in.PageSize)).Find(&res).Error
return
}

View File

@ -63,8 +63,8 @@ func (a ArtshowVideoLogic) GetArtshowVideoDetail(request *artistinfoArtshow.GetA
AuditStatus: int64(data.AuditStatus),
AuditMark1: data.AuditMark1,
AuditMark2: data.AuditMark2,
CreatedAt: data.CreatedAt.Unix(),
UpdatedAt: data.UpdatedAt.Unix(),
CreatedAt: stime.TimeToString(data.CreatedAt, stime.Format_Normal_YMDhms),
UpdatedAt: stime.TimeToString(data.UpdatedAt, stime.Format_Normal_YMDhms),
DeletedAt: int64(data.DeletedAt),
ArtistName: data.ArtistName,
Status: data.Status,

View File

@ -3,31 +3,93 @@ package logic
import (
"github.com/fonchain/fonchain-artistinfo/cmd/internal/dao"
"github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
"github.com/fonchain/fonchain-artistinfo/pkg/util/stime"
"google.golang.org/protobuf/types/known/emptypb"
)
type StatementServerLogic struct{}
func (s *StatementServerLogic) CreateStatementBatch(in *artistinfoStatement.StatementBatchRequest) (res *artistinfoStatement.CreateStatementBatchResponse, err error) {
return dao.CreateStatementBatch(in)
res = &artistinfoStatement.CreateStatementBatchResponse{}
data, err := dao.CreateStatementBatch(in)
res.Id = data.ID
return
}
func (s *StatementServerLogic) BatchCreateStatementBatch(in *artistinfoStatement.BatchCreateStatementBatchRequest) (*emptypb.Empty, error) {
return dao.BatchCreateStatementBatch(in)
return nil, dao.BatchCreateStatementBatch(in)
}
func (s *StatementServerLogic) GetStatementBatchList(in *artistinfoStatement.GetStatementBatchListRequest) (*artistinfoStatement.GetStatementBatchListResponse, error) {
return dao.GetStatementBatchList(in)
func (s *StatementServerLogic) GetStatementBatchList(in *artistinfoStatement.GetStatementBatchListRequest) (res *artistinfoStatement.GetStatementBatchListResponse, err error) {
datas, total, err := dao.GetStatementBatchList(in)
res = &artistinfoStatement.GetStatementBatchListResponse{
Page: &artistinfoStatement.StatementPageInfo{
Page: in.Page,
PageSize: in.PageSize,
Total: total,
},
Data: []*artistinfoStatement.StatementBatchRequest{},
}
for _, v := range datas {
res.Data = append(res.Data, &artistinfoStatement.StatementBatchRequest{
StType: v.StType,
ArtistUid: v.ArtistUid,
ArtistRealName: v.ArtistRealName,
FlowStatus: v.FlowStatus,
BatchTime: v.BatchTime,
MinPrice: v.MinPrice,
GuaranteePrice: v.GuaranteePrice,
Id: v.ID,
CreatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
UpdatedAt: stime.TimeToString(v.UpdatedAt, stime.Format_Normal_YMDhms),
DeletedAt: int64(v.DeletedAt),
FileUrl: v.FileUrl,
})
}
return
}
func (s *StatementServerLogic) CreateStatementDetail(in *artistinfoStatement.StatementDetailRequest) (*artistinfoStatement.CreateStatementDetailResponse, error) {
return dao.CreateStatementDetail(in)
func (s *StatementServerLogic) CreateStatementDetail(in *artistinfoStatement.StatementDetailRequest) (res *artistinfoStatement.CreateStatementDetailResponse, err error) {
res = &artistinfoStatement.CreateStatementDetailResponse{}
data, err := dao.CreateStatementDetail(in)
res.Id = data.ID
return
}
func (s *StatementServerLogic) BatchCreateStatementDetail(in *artistinfoStatement.BatchCreateStatementDetailRequest) (*emptypb.Empty, error) {
return dao.BatchCreateStatementDetail(in)
return nil, dao.BatchCreateStatementDetail(in)
}
func (s *StatementServerLogic) GetStatementDetailList(in *artistinfoStatement.GetStatementDetailListRequest) (*artistinfoStatement.GetStatementDetailListResponse, error) {
return dao.GetStatementDetailList(in)
func (s *StatementServerLogic) GetStatementDetailList(in *artistinfoStatement.GetStatementDetailListRequest) (res *artistinfoStatement.GetStatementDetailListResponse, err error) {
datas, total, err := dao.GetStatementDetailList(in)
res = &artistinfoStatement.GetStatementDetailListResponse{
Data: []*artistinfoStatement.StatementDetailRequest{},
Page: &artistinfoStatement.StatementPageInfo{
Page: in.Page,
PageSize: in.PageSize,
Total: total,
},
}
for _, v := range datas {
res.Data = append(res.Data, &artistinfoStatement.StatementDetailRequest{
BatchId: v.BatchId,
TfNum: v.TfNum,
ArtworkName: v.ArtworkName,
Ruler: v.Ruler,
SaleNo: v.SaleNo,
CompleteDate: v.CompleteDate,
Id: v.ID,
CreatedAt: stime.TimeToString(v.CreatedAt, stime.Format_Normal_YMDhms),
UpdatedAt: stime.TimeToString(v.UpdatedAt, stime.Format_Normal_YMDhms),
DeletedAt: int64(v.DeletedAt),
})
}
return
}
func (s *StatementServerLogic) GetStatementBatchTimeMenus(in *artistinfoStatement.GetStatementBatchListRequest) (res *artistinfoStatement.GetStatementBatchTimeMenusResponse, err error) {
res = &artistinfoStatement.GetStatementBatchTimeMenusResponse{}
res.Data, err = dao.GetStatementBatchTimeMenus(in)
return
}

View File

@ -3,11 +3,11 @@ package model
// 对账单批次
type StatementBatch struct {
Model
StType int32 `gorm:"column:st_type;comment:对账单类型 1=版权 2=物权;"`
ArtistUid string `gorm:"column:artist_uid;comment:画家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"`
ArtistRealName string `gorm:"column:artist_real_name;comment:画家真实姓名;"`
FlowStatus int32 `gorm:"column:flow_status;comment:流程状态 1=未生成 2=已生成未签署 3=已签署"`
BatchTime string `gorm:"column:batch_time;comment:批次时间;"`
BatchTime string `gorm:"column:batch_time;unqiueIndex:sttype_uid_batchtime_idx;comment:批次时间;"`
MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"`
GuaranteePrice float32 `gorm:"column:guarantee_price;comment:以收取保证金;"`
FileUrl string `gorm:"column:file_url,comment:对账单文件地址;"`
@ -21,8 +21,8 @@ func (StatementBatch) TableName() string {
// 对账单批次详情
type StatementDetail struct {
Model
BatchId int64 `gorm:"column:batch_id,comment:批次id;"`
TfNum string `gorm:"column:tf_num;comment:"泰丰画作编号"`
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:销售单号"`

View File

@ -9,8 +9,9 @@ import "google/protobuf/empty.proto"; //使用 google.protobuf.Empty
// protoc -I . -I ./pb --proto_path=. --go_out=./pb/artistinfoStatement --go-triple_out=./pb/artistinfoStatement --validate_out="lang=go:./pb/artistinfoStatement" ./pb/artistinfoStatement.proto
service Statement {
rpc CreateStatementBatch(StatementBatchRequest)returns(CreateStatementBatchResponse){}; //
rpc BatchCreateStatementBatch(BatchCreateStatementBatchRequest)returns(google.protobuf.Empty){};//
rpc GetStatementBatchList(GetStatementBatchListRequest)returns(GetStatementBatchListResponse){};//
rpc BatchCreateStatementBatch(BatchCreateStatementBatchRequest)returns(google.protobuf.Empty){}; //
rpc GetStatementBatchList(GetStatementBatchListRequest)returns(GetStatementBatchListResponse){}; //
rpc GetStatementBatchTimeMenus(GetStatementBatchListRequest)returns(GetStatementBatchTimeMenusResponse){}; //
rpc CreateStatementDetail(StatementDetailRequest)returns(CreateStatementDetailResponse){};//
rpc BatchCreateStatementDetail(BatchCreateStatementDetailRequest)returns(google.protobuf.Empty){};//
@ -68,7 +69,8 @@ message GetStatementBatchListRequest{
StatementBatchRequest condition=1;
int64 page =2;
int64 pageSize =3;
repeated int64 ids =4;
repeated string batchTimeList =5;
}
message GetStatementBatchListResponse{
repeated StatementBatchRequest data=1;
@ -86,3 +88,7 @@ message GetStatementDetailListResponse{
repeated StatementDetailRequest data=1;
StatementPageInfo page =2;
}
message GetStatementBatchTimeMenusResponse{
repeated string data=1;
}

View File

@ -536,9 +536,11 @@ type GetStatementBatchListRequest struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Condition *StatementBatchRequest `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"`
Page int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"`
PageSize int64 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"`
Condition *StatementBatchRequest `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"`
Page int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"`
PageSize int64 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"`
Ids []int64 `protobuf:"varint,4,rep,packed,name=ids,proto3" json:"ids,omitempty"`
BatchTimeList []string `protobuf:"bytes,5,rep,name=batchTimeList,proto3" json:"batchTimeList,omitempty"`
}
func (x *GetStatementBatchListRequest) Reset() {
@ -594,6 +596,20 @@ func (x *GetStatementBatchListRequest) GetPageSize() int64 {
return 0
}
func (x *GetStatementBatchListRequest) GetIds() []int64 {
if x != nil {
return x.Ids
}
return nil
}
func (x *GetStatementBatchListRequest) GetBatchTimeList() []string {
if x != nil {
return x.BatchTimeList
}
return nil
}
type GetStatementBatchListResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -767,6 +783,53 @@ func (x *GetStatementDetailListResponse) GetPage() *StatementPageInfo {
return nil
}
type GetStatementBatchTimeMenusResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data []string `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
}
func (x *GetStatementBatchTimeMenusResponse) Reset() {
*x = GetStatementBatchTimeMenusResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_pb_artistinfoStatement_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetStatementBatchTimeMenusResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetStatementBatchTimeMenusResponse) ProtoMessage() {}
func (x *GetStatementBatchTimeMenusResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_artistinfoStatement_proto_msgTypes[11]
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 GetStatementBatchTimeMenusResponse.ProtoReflect.Descriptor instead.
func (*GetStatementBatchTimeMenusResponse) Descriptor() ([]byte, []int) {
return file_pb_artistinfoStatement_proto_rawDescGZIP(), []int{11}
}
func (x *GetStatementBatchTimeMenusResponse) GetData() []string {
if x != nil {
return x.Data
}
return nil
}
var File_pb_artistinfoStatement_proto protoreflect.FileDescriptor
var file_pb_artistinfoStatement_proto_rawDesc = []byte{
@ -842,7 +905,7 @@ var file_pb_artistinfoStatement_proto_rawDesc = []byte{
0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61,
0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74,
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc7, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74,
0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x74,
@ -851,77 +914,92 @@ var file_pb_artistinfoStatement_proto_rawDesc = []byte{
0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x89, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74,
0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61,
0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73,
0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42,
0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74,
0x61, 0x12, 0x31, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61,
0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04,
0x70, 0x61, 0x67, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18,
0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61,
0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28,
0x09, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74,
0x22, 0x89, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74,
0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x70, 0x61, 0x67,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61,
0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x91, 0x01, 0x0a,
0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40,
0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x22, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53,
0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
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, 0x8b, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x22, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53,
0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x70,
0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x09, 0x63,
0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x8b, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74,
0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c,
0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64,
0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64,
0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53,
0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x32, 0x8b, 0x05, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65,
0x6d, 0x65, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74,
0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x21, 0x2e, 0x61,
0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65,
0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x38,
0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61,
0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03,
0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x85, 0x06, 0x0a, 0x09, 0x53, 0x74, 0x61,
0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x21,
0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61,
0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a,
0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x61, 0x72, 0x74,
0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63,
0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x19, 0x42,
0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73,
0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
0x12, 0x6e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f,
0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74,
0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
0x12, 0x68, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x22, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e,
0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x1a, 0x42, 0x61,
0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73,
0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
0x00, 0x12, 0x71, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x61, 0x72,
0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x22, 0x00, 0x12, 0x6e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x72,
0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69,
0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x00, 0x42, 0x18, 0x5a, 0x16, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73,
0x74, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x00,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e,
0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42,
0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x00, 0x12, 0x78, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x73,
0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65,
0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4c,
0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x72, 0x74,
0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
0x6d, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x6e,
0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44,
0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x22, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e,
0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61,
0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65,
0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66,
0x6f, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61,
0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x71, 0x0a,
0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e,
0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
0x42, 0x18, 0x5a, 0x16, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66,
0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -936,20 +1014,21 @@ func file_pb_artistinfoStatement_proto_rawDescGZIP() []byte {
return file_pb_artistinfoStatement_proto_rawDescData
}
var file_pb_artistinfoStatement_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_pb_artistinfoStatement_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_pb_artistinfoStatement_proto_goTypes = []interface{}{
(*StatementPageInfo)(nil), // 0: artistinfo.StatementPageInfo
(*StatementBatchRequest)(nil), // 1: artistinfo.StatementBatchRequest
(*CreateStatementBatchResponse)(nil), // 2: artistinfo.CreateStatementBatchResponse
(*BatchCreateStatementBatchRequest)(nil), // 3: artistinfo.BatchCreateStatementBatchRequest
(*StatementDetailRequest)(nil), // 4: artistinfo.StatementDetailRequest
(*CreateStatementDetailResponse)(nil), // 5: artistinfo.CreateStatementDetailResponse
(*BatchCreateStatementDetailRequest)(nil), // 6: artistinfo.BatchCreateStatementDetailRequest
(*GetStatementBatchListRequest)(nil), // 7: artistinfo.GetStatementBatchListRequest
(*GetStatementBatchListResponse)(nil), // 8: artistinfo.GetStatementBatchListResponse
(*GetStatementDetailListRequest)(nil), // 9: artistinfo.GetStatementDetailListRequest
(*GetStatementDetailListResponse)(nil), // 10: artistinfo.GetStatementDetailListResponse
(*emptypb.Empty)(nil), // 11: google.protobuf.Empty
(*StatementPageInfo)(nil), // 0: artistinfo.StatementPageInfo
(*StatementBatchRequest)(nil), // 1: artistinfo.StatementBatchRequest
(*CreateStatementBatchResponse)(nil), // 2: artistinfo.CreateStatementBatchResponse
(*BatchCreateStatementBatchRequest)(nil), // 3: artistinfo.BatchCreateStatementBatchRequest
(*StatementDetailRequest)(nil), // 4: artistinfo.StatementDetailRequest
(*CreateStatementDetailResponse)(nil), // 5: artistinfo.CreateStatementDetailResponse
(*BatchCreateStatementDetailRequest)(nil), // 6: artistinfo.BatchCreateStatementDetailRequest
(*GetStatementBatchListRequest)(nil), // 7: artistinfo.GetStatementBatchListRequest
(*GetStatementBatchListResponse)(nil), // 8: artistinfo.GetStatementBatchListResponse
(*GetStatementDetailListRequest)(nil), // 9: artistinfo.GetStatementDetailListRequest
(*GetStatementDetailListResponse)(nil), // 10: artistinfo.GetStatementDetailListResponse
(*GetStatementBatchTimeMenusResponse)(nil), // 11: artistinfo.GetStatementBatchTimeMenusResponse
(*emptypb.Empty)(nil), // 12: google.protobuf.Empty
}
var file_pb_artistinfoStatement_proto_depIdxs = []int32{
1, // 0: artistinfo.BatchCreateStatementBatchRequest.data:type_name -> artistinfo.StatementBatchRequest
@ -963,17 +1042,19 @@ var file_pb_artistinfoStatement_proto_depIdxs = []int32{
1, // 8: artistinfo.Statement.CreateStatementBatch:input_type -> artistinfo.StatementBatchRequest
3, // 9: artistinfo.Statement.BatchCreateStatementBatch:input_type -> artistinfo.BatchCreateStatementBatchRequest
7, // 10: artistinfo.Statement.GetStatementBatchList:input_type -> artistinfo.GetStatementBatchListRequest
4, // 11: artistinfo.Statement.CreateStatementDetail:input_type -> artistinfo.StatementDetailRequest
6, // 12: artistinfo.Statement.BatchCreateStatementDetail:input_type -> artistinfo.BatchCreateStatementDetailRequest
9, // 13: artistinfo.Statement.GetStatementDetailList:input_type -> artistinfo.GetStatementDetailListRequest
2, // 14: artistinfo.Statement.CreateStatementBatch:output_type -> artistinfo.CreateStatementBatchResponse
11, // 15: artistinfo.Statement.BatchCreateStatementBatch:output_type -> google.protobuf.Empty
8, // 16: artistinfo.Statement.GetStatementBatchList:output_type -> artistinfo.GetStatementBatchListResponse
5, // 17: artistinfo.Statement.CreateStatementDetail:output_type -> artistinfo.CreateStatementDetailResponse
11, // 18: artistinfo.Statement.BatchCreateStatementDetail:output_type -> google.protobuf.Empty
10, // 19: artistinfo.Statement.GetStatementDetailList:output_type -> artistinfo.GetStatementDetailListResponse
14, // [14:20] is the sub-list for method output_type
8, // [8:14] is the sub-list for method input_type
7, // 11: artistinfo.Statement.GetStatementBatchTimeMenus:input_type -> artistinfo.GetStatementBatchListRequest
4, // 12: artistinfo.Statement.CreateStatementDetail:input_type -> artistinfo.StatementDetailRequest
6, // 13: artistinfo.Statement.BatchCreateStatementDetail:input_type -> artistinfo.BatchCreateStatementDetailRequest
9, // 14: artistinfo.Statement.GetStatementDetailList:input_type -> artistinfo.GetStatementDetailListRequest
2, // 15: artistinfo.Statement.CreateStatementBatch:output_type -> artistinfo.CreateStatementBatchResponse
12, // 16: artistinfo.Statement.BatchCreateStatementBatch:output_type -> google.protobuf.Empty
8, // 17: artistinfo.Statement.GetStatementBatchList:output_type -> artistinfo.GetStatementBatchListResponse
11, // 18: artistinfo.Statement.GetStatementBatchTimeMenus:output_type -> artistinfo.GetStatementBatchTimeMenusResponse
5, // 19: artistinfo.Statement.CreateStatementDetail:output_type -> artistinfo.CreateStatementDetailResponse
12, // 20: artistinfo.Statement.BatchCreateStatementDetail:output_type -> google.protobuf.Empty
10, // 21: artistinfo.Statement.GetStatementDetailList:output_type -> artistinfo.GetStatementDetailListResponse
15, // [15:22] is the sub-list for method output_type
8, // [8:15] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
@ -1117,6 +1198,18 @@ func file_pb_artistinfoStatement_proto_init() {
return nil
}
}
file_pb_artistinfoStatement_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetStatementBatchTimeMenusResponse); 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{
@ -1124,7 +1217,7 @@ func file_pb_artistinfoStatement_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pb_artistinfoStatement_proto_rawDesc,
NumEnums: 0,
NumMessages: 11,
NumMessages: 12,
NumExtensions: 0,
NumServices: 1,
},

View File

@ -1482,3 +1482,108 @@ var _ interface {
Cause() error
ErrorName() string
} = GetStatementDetailListResponseValidationError{}
// Validate checks the field values on GetStatementBatchTimeMenusResponse with
// the rules defined in the proto definition for this message. If any rules
// are violated, the first error encountered is returned, or nil if there are
// no violations.
func (m *GetStatementBatchTimeMenusResponse) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on GetStatementBatchTimeMenusResponse
// with the rules defined in the proto definition for this message. If any
// rules are violated, the result is a list of violation errors wrapped in
// GetStatementBatchTimeMenusResponseMultiError, or nil if none found.
func (m *GetStatementBatchTimeMenusResponse) ValidateAll() error {
return m.validate(true)
}
func (m *GetStatementBatchTimeMenusResponse) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if len(errors) > 0 {
return GetStatementBatchTimeMenusResponseMultiError(errors)
}
return nil
}
// GetStatementBatchTimeMenusResponseMultiError is an error wrapping multiple
// validation errors returned by
// GetStatementBatchTimeMenusResponse.ValidateAll() if the designated
// constraints aren't met.
type GetStatementBatchTimeMenusResponseMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m GetStatementBatchTimeMenusResponseMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m GetStatementBatchTimeMenusResponseMultiError) AllErrors() []error { return m }
// GetStatementBatchTimeMenusResponseValidationError is the validation error
// returned by GetStatementBatchTimeMenusResponse.Validate if the designated
// constraints aren't met.
type GetStatementBatchTimeMenusResponseValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e GetStatementBatchTimeMenusResponseValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e GetStatementBatchTimeMenusResponseValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e GetStatementBatchTimeMenusResponseValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e GetStatementBatchTimeMenusResponseValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e GetStatementBatchTimeMenusResponseValidationError) ErrorName() string {
return "GetStatementBatchTimeMenusResponseValidationError"
}
// Error satisfies the builtin error interface
func (e GetStatementBatchTimeMenusResponseValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sGetStatementBatchTimeMenusResponse.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = GetStatementBatchTimeMenusResponseValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = GetStatementBatchTimeMenusResponseValidationError{}

View File

@ -32,6 +32,7 @@ type StatementClient interface {
CreateStatementBatch(ctx context.Context, in *StatementBatchRequest, opts ...grpc_go.CallOption) (*CreateStatementBatchResponse, common.ErrorWithAttachment)
BatchCreateStatementBatch(ctx context.Context, in *BatchCreateStatementBatchRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
GetStatementBatchList(ctx context.Context, in *GetStatementBatchListRequest, opts ...grpc_go.CallOption) (*GetStatementBatchListResponse, common.ErrorWithAttachment)
GetStatementBatchTimeMenus(ctx context.Context, in *GetStatementBatchListRequest, opts ...grpc_go.CallOption) (*GetStatementBatchTimeMenusResponse, common.ErrorWithAttachment)
CreateStatementDetail(ctx context.Context, in *StatementDetailRequest, opts ...grpc_go.CallOption) (*CreateStatementDetailResponse, common.ErrorWithAttachment)
BatchCreateStatementDetail(ctx context.Context, in *BatchCreateStatementDetailRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
GetStatementDetailList(ctx context.Context, in *GetStatementDetailListRequest, opts ...grpc_go.CallOption) (*GetStatementDetailListResponse, common.ErrorWithAttachment)
@ -45,6 +46,7 @@ type StatementClientImpl struct {
CreateStatementBatch func(ctx context.Context, in *StatementBatchRequest) (*CreateStatementBatchResponse, error)
BatchCreateStatementBatch func(ctx context.Context, in *BatchCreateStatementBatchRequest) (*emptypb.Empty, error)
GetStatementBatchList func(ctx context.Context, in *GetStatementBatchListRequest) (*GetStatementBatchListResponse, error)
GetStatementBatchTimeMenus func(ctx context.Context, in *GetStatementBatchListRequest) (*GetStatementBatchTimeMenusResponse, error)
CreateStatementDetail func(ctx context.Context, in *StatementDetailRequest) (*CreateStatementDetailResponse, error)
BatchCreateStatementDetail func(ctx context.Context, in *BatchCreateStatementDetailRequest) (*emptypb.Empty, error)
GetStatementDetailList func(ctx context.Context, in *GetStatementDetailListRequest) (*GetStatementDetailListResponse, error)
@ -80,6 +82,12 @@ func (c *statementClient) GetStatementBatchList(ctx context.Context, in *GetStat
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetStatementBatchList", in, out)
}
func (c *statementClient) GetStatementBatchTimeMenus(ctx context.Context, in *GetStatementBatchListRequest, opts ...grpc_go.CallOption) (*GetStatementBatchTimeMenusResponse, common.ErrorWithAttachment) {
out := new(GetStatementBatchTimeMenusResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetStatementBatchTimeMenus", in, out)
}
func (c *statementClient) CreateStatementDetail(ctx context.Context, in *StatementDetailRequest, opts ...grpc_go.CallOption) (*CreateStatementDetailResponse, common.ErrorWithAttachment) {
out := new(CreateStatementDetailResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -105,6 +113,7 @@ type StatementServer interface {
CreateStatementBatch(context.Context, *StatementBatchRequest) (*CreateStatementBatchResponse, error)
BatchCreateStatementBatch(context.Context, *BatchCreateStatementBatchRequest) (*emptypb.Empty, error)
GetStatementBatchList(context.Context, *GetStatementBatchListRequest) (*GetStatementBatchListResponse, error)
GetStatementBatchTimeMenus(context.Context, *GetStatementBatchListRequest) (*GetStatementBatchTimeMenusResponse, error)
CreateStatementDetail(context.Context, *StatementDetailRequest) (*CreateStatementDetailResponse, error)
BatchCreateStatementDetail(context.Context, *BatchCreateStatementDetailRequest) (*emptypb.Empty, error)
GetStatementDetailList(context.Context, *GetStatementDetailListRequest) (*GetStatementDetailListResponse, error)
@ -125,6 +134,9 @@ func (UnimplementedStatementServer) BatchCreateStatementBatch(context.Context, *
func (UnimplementedStatementServer) GetStatementBatchList(context.Context, *GetStatementBatchListRequest) (*GetStatementBatchListResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetStatementBatchList not implemented")
}
func (UnimplementedStatementServer) GetStatementBatchTimeMenus(context.Context, *GetStatementBatchListRequest) (*GetStatementBatchTimeMenusResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetStatementBatchTimeMenus not implemented")
}
func (UnimplementedStatementServer) CreateStatementDetail(context.Context, *StatementDetailRequest) (*CreateStatementDetailResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateStatementDetail not implemented")
}
@ -249,6 +261,35 @@ func _Statement_GetStatementBatchList_Handler(srv interface{}, ctx context.Conte
return interceptor(ctx, in, info, handler)
}
func _Statement_GetStatementBatchTimeMenus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetStatementBatchListRequest)
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("GetStatementBatchTimeMenus", 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_CreateStatementDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(StatementDetailRequest)
if err := dec(in); err != nil {
@ -355,6 +396,10 @@ var Statement_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "GetStatementBatchList",
Handler: _Statement_GetStatementBatchList_Handler,
},
{
MethodName: "GetStatementBatchTimeMenus",
Handler: _Statement_GetStatementBatchTimeMenus_Handler,
},
{
MethodName: "CreateStatementDetail",
Handler: _Statement_CreateStatementDetail_Handler,