Compare commits

..

73 Commits
main ... dev

Author SHA1 Message Date
songchuang
ef9f739faa 对账单代码测试修改 2023-04-19 16:44:14 +08:00
songchuang
a713709c62 对账单代码测试修改 2023-04-19 16:14:34 +08:00
songchuang
11a95c013f 对账单代码测试修改 2023-04-19 15:56:55 +08:00
songchuang
19764493b6 对账单代码测试修改 2023-04-19 15:17:50 +08:00
songchuang
4e0e4f4463 对账单测试代码提交 2023-04-19 15:09:21 +08:00
songchuang
f4695ffd6b 对账单测试代码提交 2023-04-19 14:54:49 +08:00
songchuang
bc9fdd9e6e 对账单测试代码提交 2023-04-19 14:51:01 +08:00
songchuang
0057e87e10 对账单测试代码提交 2023-04-19 14:18:25 +08:00
songchuang
ffdc7f3a61 对账单测试代码提交 2023-04-19 13:44:14 +08:00
f4cf06081d Merge branch 'xjjdev' into dev 2023-04-19 12:04:28 +08:00
3416cca9c6 Merge branch 'dev' of http://gitlab.fontree.cn/bugmaker/fonchain-artistinfo into dev 2023-04-19 11:51:34 +08:00
f4f24f6b72 Merge branch 'xjjdev' into dev 2023-04-19 11:51:30 +08:00
songchuang
a6d30beca2 对账单测试代码提交 2023-04-19 11:16:58 +08:00
songchuang
ef3b719a9d 对账单测试代码提交 2023-04-19 10:11:15 +08:00
songchuang
5fa432c329 对账单测试代码提交 2023-04-19 10:07:09 +08:00
songchuang
8de3b3e4b1 对账单测试代码提交 2023-04-19 09:27:11 +08:00
songchuang
f66da7a009 对账单代码测试修改 2023-04-18 17:00:09 +08:00
songchuang
01f94832bb 对账单代码测试修改 2023-04-18 16:51:32 +08:00
5292993f7b Merge branch 'xjjdev' into dev 2023-04-18 16:27:44 +08:00
songchuang
354394d518 对账单代码测试修改 2023-04-18 16:00:10 +08:00
songchuang
b3ed666259 对账单代码测试修改 2023-04-18 15:21:06 +08:00
3822d5d404 Merge branch 'dev' of http://gitlab.fontree.cn/bugmaker/fonchain-artistinfo into dev 2023-04-18 15:11:25 +08:00
cd202e3485 Merge branch 'xjjdev' into dev 2023-04-18 15:11:17 +08:00
songchuang
1fdda25b00 对账单代码测试修改 2023-04-18 13:56:29 +08:00
songchuang
cf6e03365d 对账单测试 2023-04-18 11:06:57 +08:00
songchuang
f2bf3b0bdc 对账单配置文件修改 2023-04-18 10:28:54 +08:00
songchuang
4b2543ffda Merge branch 'songchuang' into dev 2023-04-17 09:40:16 +08:00
songchuang
2b9e317444 对账单后台管理部分代码提交 2023-04-17 09:35:03 +08:00
527339cd64 Merge branch 'xjjdev' into dev 2023-04-14 14:21:52 +08:00
9065d631ce Merge branch 'xjjdev' into dev 2023-04-14 13:58:02 +08:00
26e073f936 Merge branch 'xjjdev' into dev 2023-04-13 14:14:28 +08:00
ec4cc9cf4a Merge branch 'xjjdev' into dev 2023-04-13 10:27:03 +08:00
ceb3631037 Merge branch 'xjjdev' into dev 2023-04-13 09:23:51 +08:00
0b34600883 Merge branch 'xjjdev' into dev 2023-04-13 09:07:25 +08:00
f612737d94 Merge branch 'xjjdev' into dev 2023-04-12 17:51:30 +08:00
a8b5a734d1 Merge branch 'xjjdev' into dev 2023-04-12 10:08:03 +08:00
dc57a3c4e9 Merge branch 'dev' of http://gitlab.fontree.cn/bugmaker/fonchain-artistinfo into dev 2023-04-11 16:42:43 +08:00
3ee56b1433 Merge branch 'xjjdev' into dev 2023-04-11 16:42:38 +08:00
songchuang
6d247aa4a4 GetContractList接口修改 2023-04-11 14:50:49 +08:00
songchuang
920cfef5eb 测试修改 2023-04-11 14:43:43 +08:00
songchuang
929304e80d Merge branch 'songchuang' into dev 2023-04-11 12:33:53 +08:00
songchuang
9916e16d54 contract pb 2023-04-11 12:32:45 +08:00
songchuang
e7b8f40b50 contract列表代码修改 2023-04-11 12:30:23 +08:00
songchuang
e8baaf4e77 合同列表部分功能修改 2023-04-11 12:24:04 +08:00
songchuang
f70663a967 Merge branch 'jujin' into dev 2023-04-10 10:50:16 +08:00
songchuang
be02805710 Merge branch 'jujin' of http://192.168.12.3:8090/bugmaker/fonchain-artistinfo into jujin 2023-04-07 15:51:23 +08:00
songchuang
5d68278904 Merge branch 'dev' into jujin 2023-04-07 15:50:01 +08:00
2d26f15400 Merge branch 'xjjdev' into dev 2023-04-07 14:27:16 +08:00
songchuang
6af2d992aa Merge branch 'songchuang' into dev 2023-04-07 13:41:48 +08:00
3d08ba4ee2 环境变量测试3 2023-04-07 11:42:27 +08:00
4cba6ffd8c 环境变量测试2 2023-04-07 10:41:32 +08:00
8f7618b8bd 环境变量测试2 2023-04-07 10:33:48 +08:00
338439db59 环境变量测试 2023-04-07 10:20:05 +08:00
458c5e3bc8 修改dockerfile测试 2023-04-07 10:08:49 +08:00
36e39bf089 Merge branch 'xjjdev' into dev 2023-04-07 09:48:33 +08:00
04bd03022d Merge branch 'xjjdev' into dev 2023-04-07 08:08:34 +08:00
aa7edf420d Merge branch 'xjjdev' into dev 2023-04-06 14:50:26 +08:00
e5b80f16d2 增加对账单配置文件 2023-04-04 10:35:56 +08:00
00e3401985 完善对账单 2023-04-04 09:37:00 +08:00
45f193589b Merge branch 'xjjdev' into dev 2023-04-04 08:48:13 +08:00
5850452d28 Merge branch 'main' of http://192.168.12.3:8090/bugmaker/fonchain-artistinfo into jujin 2023-04-03 14:07:48 +08:00
4aa11fff20 开发对账单模块 2023-04-03 14:07:37 +08:00
ec1eba24cb update 2023-03-31 16:59:23 +08:00
630c8f66ec Merge branch 'xjjdev' into dev 2023-03-31 09:41:03 +08:00
195f3877b8 Merge branch 'xjjdev' into dev 2023-03-31 09:28:12 +08:00
80ed1c86c5 Merge branch 'xjjdev' into dev 2023-03-29 23:17:02 +08:00
219528bbab Merge branch 'xjjdev' into dev 2023-03-29 23:08:34 +08:00
b20fe7be3f Merge remote-tracking branch 'origin/dev' into jujin 2023-03-24 14:49:49 +08:00
95cfaf462a Merge branch 'main' of http://192.168.12.3:8090/bugmaker/fonchain-artistinfo into jujin 2023-03-24 14:49:31 +08:00
99e496dd39 Merge remote-tracking branch 'origin/dev' into jujin 2023-03-24 13:23:49 +08:00
83ad5392b5 Merge branch 'main' of http://192.168.12.3:8090/bugmaker/fonchain-artistinfo into jujin 2023-03-24 13:23:09 +08:00
ee2c894f96 Merge branch 'main' of http://192.168.12.3:8090/bugmaker/fonchain-artistinfo into jujin 2023-03-24 10:33:28 +08:00
ebed3f6d24 Merge branch 'main' of http://192.168.12.3:8090/bugmaker/fonchain-artistinfo into jujin 2023-03-23 13:14:36 +08:00
28 changed files with 3866 additions and 1034 deletions

3
.gitignore vendored
View File

@ -33,5 +33,4 @@ yarn-error.log*
/cmd/logs/*.log /cmd/logs/*.log
/cmd/runtime/log/*.log /cmd/runtime/log/*.log
/build/* /build/*
conf/conf.ini

View File

@ -5,7 +5,7 @@ cd ..
go build -ldflags "-s -w" -o ./build/artistinfo-dev ./cmd/app.go go build -ldflags "-s -w" -o ./build/artistinfo-dev ./cmd/app.go
docker rmi artistinfo-dev docker rmi artistinfo-dev
docker rmi 121.229.45.214:9006/artistinfo-dev docker rmi 121.229.45.214:9006/artistinfo-dev
docker build . -f .\DockerfileWindowsTest -t artistinfo-dev docker build . -f .\DockerfileWindowsTest -t artistinfo-dev --build-arg BUILD_DATE=$(date)
docker tag artistinfo-dev 121.229.45.214:9006/artistinfo-dev docker tag artistinfo-dev 121.229.45.214:9006/artistinfo-dev
docker push 121.229.45.214:9006/artistinfo-dev docker push 121.229.45.214:9006/artistinfo-dev
pause pause

View File

@ -4,7 +4,7 @@ MAINTAINER GY "wangyitao@163.com"
RUN go env -w GO111MODULE=on && \ RUN go env -w GO111MODULE=on && \
go env -w GOPROXY=https://goproxy.cn,direct go env -w GOPROXY=https://goproxy.cn,direct
WORKDIR /app WORKDIR /app
COPY fonchain-artistinfo /app/fonchain-artistinfo COPY fonchain-artistinfo /app/fonchain-artistinfo

View File

@ -1,7 +1,10 @@
FROM busybox:glibc FROM busybox:glibc
ARG BUILD_DATE
ENV BUILD_DATE ${BUILD_DATE}
COPY ./docs/Shanghai /usr/share/zoneinfo/Asia/Shanghai COPY ./docs/Shanghai /usr/share/zoneinfo/Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#ENV TZ Asia/Shanghai #ENV TZ Asia/Shanghai
WORKDIR /app/main-client WORKDIR /app/main-client

View File

@ -21,6 +21,9 @@ WORKDIR /build
COPY ./build/artistinfo-dev /app/artistinfo-dev COPY ./build/artistinfo-dev /app/artistinfo-dev
FROM alpine FROM alpine
ARG BUILD_DATE
ENV BUILD_DATE ${BUILD_DATE}
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk update --no-cache RUN apk update --no-cache
RUN apk add --no-cache ca-certificates RUN apk add --no-cache ca-certificates

View File

@ -2,6 +2,7 @@ package main
import ( import (
"fmt" "fmt"
"os"
"dubbo.apache.org/dubbo-go/v3/config" "dubbo.apache.org/dubbo-go/v3/config"
@ -21,11 +22,13 @@ func main() {
config.SetProviderService(&controller.ArtistInfoArtworkProvider{}) config.SetProviderService(&controller.ArtistInfoArtworkProvider{})
config.SetProviderService(&controller.ArtistInfoArtshowProvider{}) config.SetProviderService(&controller.ArtistInfoArtshowProvider{})
config.SetProviderService(&controller.ArtistInfoContractProvider{}) config.SetProviderService(&controller.ArtistInfoContractProvider{})
config.SetConsumerService(&controller.ArtistInfoStatementProvider{}) config.SetProviderService(&controller.ArtistInfoStatementProvider{})
db.Init(m.SERVER_CONFIG) db.Init(m.SERVER_CONFIG)
cache.InitRedis(m.SERVER_CONFIG) cache.InitRedis(m.SERVER_CONFIG)
if err := config.Load(); err != nil { if err := config.Load(); err != nil {
panic(err) panic(err)
} }
buildDate := os.Getenv("BUILD_DATE")
fmt.Println("镜像生成时间:", buildDate)
select {} select {}
} }

View File

@ -1,44 +0,0 @@
package controller
// import (
// "context"
// "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic"
// "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
// emptypb "google.golang.org/protobuf/types/known/emptypb"
// )
// //go:generate mockgen -destination .\artistinfoStatement_triple.pb.go -package controller -source ..\..\..\pb\artistinfoStatement\artistinfoStatement_triple.pb.go StatementServer
// type StatementServerProvider struct {
// artistinfoStatement.UnimplementedStatementServer
// logic logic.StatementServerLogic
// }
// func (s *StatementServerProvider) CreateStatementBatch(ctx context.Context, in *artistinfoStatement.StatementBatchRequest) (res *artistinfoStatement.CreateStatementBatchResponse, err error) {
// return s.logic.CreateStatementBatch(in)
// }
// func (s *StatementServerProvider) BatchCreateStatementBatch(ctx context.Context, in *artistinfoStatement.BatchCreateStatementBatchRequest) (*emptypb.Empty, error) {
// return s.logic.BatchCreateStatementBatch(in)
// }
// func (s *StatementServerProvider) GetStatementBatchList(ctx context.Context, in *artistinfoStatement.GetStatementBatchListRequest) (*artistinfoStatement.GetStatementBatchListResponse, error) {
// return s.logic.GetStatementBatchList(in)
// }
// func (s *StatementServerProvider) CreateStatementDetail(ctx context.Context, in *artistinfoStatement.StatementDetailRequest) (*artistinfoStatement.CreateStatementDetailResponse, error) {
// return s.logic.CreateStatementDetail(in)
// }
// func (s *StatementServerProvider) BatchCreateStatementDetail(ctx context.Context, in *artistinfoStatement.BatchCreateStatementDetailRequest) (*emptypb.Empty, error) {
// return s.logic.BatchCreateStatementDetail(in)
// }
// 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

@ -13,6 +13,70 @@ type ArtistInfoStatementProvider struct {
statementLogic *logic.Statement statementLogic *logic.Statement
} }
func (c *ArtistInfoStatementProvider) UploadExcelOneTx(ctx context.Context, req *statement.UploadExcelOneTxRequest) (rep *statement.UploadExcelOneTxRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.UploadExcelOneTx(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) UploadExcelTwoTx(ctx context.Context, req *statement.UploadExcelTwoTxRequest) (rep *statement.UploadExcelTwoTxRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.UploadExcelTwoTx(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) UploadExcelOneCopy(ctx context.Context, req *statement.UploadExcelOneCopyRequest) (rep *statement.UploadExcelOneCopyRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.UploadExcelOneCopy(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) UploadExcelTwoCopy(ctx context.Context, req *statement.UploadExcelTwoCopyRequest) (rep *statement.UploadExcelTwoCopyRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.UploadExcelTwoCopy(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) GetAllBatchTimeTx(ctx context.Context, req *statement.GetAllBatchTimeTxRequest) (rep *statement.GetAllBatchTimeTxRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.GetAllBatchTimeTx(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) GetAllBatchTimeCopy(ctx context.Context, req *statement.GetAllBatchTimeCopyRequest) (rep *statement.GetAllBatchTimeCopyRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.GetAllBatchTimeCopy(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) GetArtworkSoldTxDetailList(ctx context.Context, req *statement.GetArtworkSoldTxDetailListRequest) (rep *statement.GetArtworkSoldTxDetailListRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.GetArtworkSoldTxDetailList(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) GetArtworkSoldCopyDetailList(ctx context.Context, req *statement.GetArtworkSoldCopyDetailListRequest) (rep *statement.GetArtworkSoldCopyDetailListRespond, err error) {
fmt.Println("第一处")
if rep, err = c.statementLogic.GetArtworkSoldCopyDetailList(req); err != nil {
return nil, err
}
return rep, nil
}
func (c *ArtistInfoStatementProvider) StatementList(ctx context.Context, req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error) { func (c *ArtistInfoStatementProvider) StatementList(ctx context.Context, req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error) {
fmt.Println("第一处") fmt.Println("第一处")
if rep, err = c.statementLogic.StatementList(req); err != nil { if rep, err = c.statementLogic.StatementList(req); err != nil {

View File

@ -1031,11 +1031,10 @@ func GetInvitedUserList(in *artistInfoUser.GetInvitedUserListRequest) (res *arti
var inviteRelationIds []int64 var inviteRelationIds []int64
db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("invited_id", &inviteRelationIds) db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("invited_id", &inviteRelationIds)
var invitedList []model.User var invitedList []model.User
//.Select("sys_user.id,sys_user.created_at,sys_user.mgmt_acc_id,sys_user.mgmt_artist_uid,sys_user.tel_num,sys_user.invited_code,sys_user.account,sys_user.photo,sys_user.is_real_name,sys_user.fdd_state") orm := db.DB.Select("sys_user.id,sys_user.created_at,sys_user.mgmt_acc_id,sys_user.mgmt_artist_uid,sys_user.tel_num,sys_user.invited_code,sys_user.account,sys_user.photo,sys_user.is_real_name,sys_user.fdd_state").Model(model.User{}).Preload("RealNameInfo").
orm := db.DB.Model(model.User{}).Preload("RealNameInfo").
Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id"). Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id").
Joins("LEFT JOIN invite ON invite.invited_id = sys_user.id"). Joins("LEFT JOIN invite ON invite.invited_id = sys_user.id").
Where("sys_user.id in ?", inviteRelationIds).Order("invite.created_at desc").Where("sys_user.is_real_name=1") Where("sys_user.id in ?", inviteRelationIds).Order("invite.created_at desc")
if in.RealName != "" { if in.RealName != "" {
orm = orm.Where("rn.name like ?", "%"+in.RealName+"%") orm = orm.Where("rn.name like ?", "%"+in.RealName+"%")
} }

View File

@ -1,160 +0,0 @@
package dao
// import (
// "github.com/fonchain/fonchain-artistinfo/cmd/model"
// "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
// )
// =====================================
//
// 对账单批次
// 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) 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) (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 GetStatementBatchTimeMenus(in *artistinfoStatement.GetStatementBatchListRequest) (res []string, err error) {
// res = []string{}
// err = db.DB.Model(model.StatementBatch{}).Pluck("batch_time", &res).Error
// return
// }
// //=====================================
// // 对账单详情
// 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 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("ruler = ?", in.Condition.Ruler)
// }
// if in.Condition.SaleNo != "" {
// orm = orm.Where("sale_no = ?", 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

@ -95,6 +95,47 @@ func CreateArtworkContract(tx *gorm.DB, artworkUid []string, artistUid string, c
return return
} }
func StatementContractNo(artistUid, batchUid string) (err error) {
//画作有合同类型是26的都是 点击过"著作权代理转让服务合同"的
var contract model.Contract
if err = db.DB.Where("artist_uid = ? AND batch_uid = ?", artistUid, batchUid).First(&contract).Error; err != nil && err != gorm.ErrRecordNotFound {
zap.L().Error("get contract info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
//err 为空则查询到,返回画作合同已存在的错误
if err == nil {
err = errors.New(m.ARTWORK_CONTRACT_EXISTS)
}
return
}
func CreateStatementContract(tx *gorm.DB, artistUid, batchUid, batchTime string, contractType int32) (err error) {
var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID)
return
}
contract := &model.Contract{
Uid: uid.String(),
ArtistUid: artistUid,
Type: contractType,
Status: 0,
BatchTime: batchTime,
BatchUid: batchUid,
}
if err = tx.Create(contract).Error; err != nil {
zap.L().Error("create contract err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func GetArtistNoByUid(artistUid string) (err error) { func GetArtistNoByUid(artistUid string) (err error) {
var user model.User var user model.User
if err = db.DB.Where("mgmt_artist_uid = ?", artistUid).First(&user).Error; err != nil { if err = db.DB.Where("mgmt_artist_uid = ?", artistUid).First(&user).Error; err != nil {
@ -108,10 +149,29 @@ func GetArtistNoByUid(artistUid string) (err error) {
func GetContractList(artistUid string, pageSize, offset, status int32) (contracts []*contract.Contracts, err error) { func GetContractList(artistUid string, pageSize, offset, status int32) (contracts []*contract.Contracts, err error) {
var contractSlice []model.Contract var contractSlice []model.Contract
if err = db.DB.Where("artist_uid = ? AND status = ?", artistUid, status).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil { // if err = db.DB.Where("artist_uid = ? AND status = ?", artistUid, status).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil {
zap.L().Error("get contracts info err", zap.Error(err)) // zap.L().Error("get contracts info err", zap.Error(err))
err = errors.New(m.CREATE_ERROR) // err = errors.New(m.CREATE_ERROR)
return // return
// }
if status == 2 {
//未签署且画家未解锁
if err = db.DB.Where("artist_uid = ? AND type != 4 AND type != 7 AND state = ? AND status = ?", artistUid, 1, 2).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil {
zap.L().Error("get contracts info err", zap.Error(err))
fmt.Println("GetContractList错误为:", err)
err = errors.New(m.ERROR_SELECT)
return
}
} else if status == 3 {
//画家解锁(解锁之后,未签署的合同也变成历史合同)
if err = db.DB.Where("(artist_uid = ? AND type != 4 AND type != 7) AND ((state = ? AND status = ?) OR (status = ?))", artistUid, 2, 2, 3).Order("ID asc").Limit(int(pageSize)).Offset(int(offset)).Find(&contractSlice).Error; err != nil {
zap.L().Error("get contracts info err", zap.Error(err))
fmt.Println("GetContractList错误为:", err)
err = errors.New(m.ERROR_SELECT)
return
}
} else {
err = errors.New("画家锁定值出错!")
} }
for _, v := range contractSlice { for _, v := range contractSlice {
@ -145,16 +205,11 @@ func GetArtistInfoById(artistUid string) (user model.User, err error) {
return return
} }
func ContractList(artist_uid string, state int32) (contractData []*contract.Contracts, err error) { func ContractList(artist_uid string, req *contract.ContractListRequest, offset int32) (contractData []*contract.Contracts, err error) {
// if state != 0 {
// if state == 2 {
// state = 3
// }
// }
var contracts []model.Contract var contracts []model.Contract
if err = db.DB.Where("artist_uid = ? AND type != 4 AND type != 7 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 = ? AND status = ?", artist_uid, req.State, 2).Order("ID asc").Limit(int(req.PageSize)).Offset(int(offset)).Find(&contracts).Error; err != nil {
zap.L().Error("get contracts info err", zap.Error(err)) zap.L().Error("get contracts info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT) err = errors.New(m.ERROR_SELECT)
return return
@ -272,6 +327,15 @@ func ContractTxList(uid string, state int32) (contracts []model.Contract, err er
} }
func GetContractUrlTx(batchUid string) (contract model.Contract, err error) {
if err = db.DB.Where("batch_uid = ?", batchUid).First(&contract).Error; err != nil {
zap.L().Error("get contract info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
// func UpdateArtworkState(tx *gorm.DB, id int32) (err error) { //无用 // func UpdateArtworkState(tx *gorm.DB, id int32) (err error) { //无用
// var artworkState model.ArtworkState // var artworkState model.ArtworkState
// if err = tx.Where("artwork_id = ? and state = ? ", id, 7).First(&artworkState).Error; err != nil { // if err = tx.Where("artwork_id = ? and state = ? ", id, 7).First(&artworkState).Error; err != nil {

View File

@ -2,18 +2,278 @@ package dao
import ( import (
"errors" "errors"
"fmt"
"github.com/fonchain/fonchain-artistinfo/cmd/model" "github.com/fonchain/fonchain-artistinfo/cmd/model"
statement "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement" statement "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
db "github.com/fonchain/fonchain-artistinfo/pkg/db" db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/m" "github.com/fonchain/fonchain-artistinfo/pkg/m"
"go.uber.org/zap" "go.uber.org/zap"
"gorm.io/gorm"
) )
func IsExistArtworkTx(tx *gorm.DB, batchTime, artistUid string) (exist bool, artworkTx *model.ArtworkTx, err error) {
if err = tx.Where("batch_time = ? AND artist_uid = ?", batchTime, artistUid).First(&artworkTx).Error; err != nil {
if err == gorm.ErrRecordNotFound {
return true, nil, nil
} else {
zap.L().Error("get artworkTx info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
}
return
}
func IsExistArtworkCopy(tx *gorm.DB, batchTime, artistUid string) (exist bool, artworkCopy *model.ArtworkCopy, err error) {
if err = tx.Where("batch_time = ? AND artist_uid = ?", batchTime, artistUid).First(&artworkCopy).Error; err != nil {
if err == gorm.ErrRecordNotFound {
return true, nil, nil
} else {
zap.L().Error("get artworkCopy info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
}
return
}
func CreateArtworkTx(tx *gorm.DB, uid, batchTime, artistUid, artistName string) (err error) {
artworkTx := &model.ArtworkTx{
Uid: uid,
ArtistUid: artistUid,
ArtistName: artistName,
BatchTime: batchTime,
}
if err = tx.Create(&artworkTx).Error; err != nil {
zap.L().Error("create artworkTx err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func CreateArtworkCopy(tx *gorm.DB, uid, batchTime, artistUid, artistName string) (err error) {
artworkCopy := &model.ArtworkCopy{
Uid: uid,
ArtistUid: artistUid,
ArtistName: artistName,
BatchTime: batchTime,
}
if err = tx.Create(&artworkCopy).Error; err != nil {
zap.L().Error("create artworkCopy err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func CreateArtworkTxDetail(tx *gorm.DB, uid1, uid2 string, excelOneInfo *statement.ExcelOneInfo) (err error) {
artworkTxDetail := &model.ArtworkTxDetail{
Uid: uid2,
BatchUid: uid1,
TfNum: excelOneInfo.TfNum,
ArtworkName: excelOneInfo.ArtworkName,
Ruler: excelOneInfo.Ruler,
MinPrice: excelOneInfo.MinPrice,
GuaranteePrice: excelOneInfo.GuaranteePrice,
}
if err = tx.Create(&artworkTxDetail).Error; err != nil {
zap.L().Error("create artworkTxDetail err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func CreateArtworkCopyDetail(tx *gorm.DB, uid1, uid2 string, excelOneInfo *statement.ExcelOneInfo) (err error) {
artworkCopyDetail := &model.ArtworkCopyDetail{
Uid: uid2,
BatchUid: uid1,
TfNum: excelOneInfo.TfNum,
ArtworkName: excelOneInfo.ArtworkName,
Ruler: excelOneInfo.Ruler,
MinPrice: excelOneInfo.MinPrice,
GuaranteePrice: excelOneInfo.GuaranteePrice,
}
if err = tx.Create(&artworkCopyDetail).Error; err != nil {
zap.L().Error("create artworkCopyDetail err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func IsExistArtworkTxDetail(tx *gorm.DB, uid, tfNum string) (count int64, err error) {
if err = tx.Model(&model.ArtworkTxDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
zap.L().Error("get artworkTxDetail num err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func IsExistArtworkCopyDetail(tx *gorm.DB, uid, tfNum string) (count int64, err error) {
if err = tx.Model(&model.ArtworkCopyDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
zap.L().Error("get artworkCopyDetail num err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func IsExistArtworkSoldTxDetail(tx *gorm.DB, uid, tfNum string) (count int64, err error) {
if err = tx.Model(&model.ArtworkSoldTxDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
zap.L().Error("get artworkSoldTxDetail num err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func IsExistArtworkSoldCopyDetail(tx *gorm.DB, uid, tfNum string) (count int64, err error) {
if err = tx.Model(&model.ArtworkSoldCopyDetail{}).Where("batch_uid = ? AND tf_num = ?", uid, tfNum).Count(&count).Error; err != nil {
zap.L().Error("get artworkSoldCopyDetail num err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func CreateArtworkSoldTxDetail(tx *gorm.DB, uid1, uid2 string, excelTwoInfo *statement.ExcelTwoInfo) (err error) {
fmt.Println("excelTwoInfo:", excelTwoInfo)
fmt.Println("excelTwoInfo.CompleteDate:", excelTwoInfo.CompleteDate)
artworkSoldTxDetail := &model.ArtworkSoldTxDetail{
Uid: uid2,
BatchUid: uid1, //批次uid
TfNum: excelTwoInfo.TfNum,
ArtworkName: excelTwoInfo.ArtworkName,
Ruler: excelTwoInfo.Ruler,
SaleNo: excelTwoInfo.SaleNo,
CompleteDate: excelTwoInfo.CompleteDate,
SalePrice: excelTwoInfo.SalePrice,
}
if err = tx.Create(&artworkSoldTxDetail).Error; err != nil {
zap.L().Error("create artworkSoldTxDetail err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func CreateArtworkSoldCopyDetail(tx *gorm.DB, uid1, uid2 string, excelTwoInfo *statement.ExcelTwoInfo) (err error) {
artworkSoldCopyDetail := &model.ArtworkSoldCopyDetail{
Uid: uid2,
BatchUid: uid1, //批次uid
TfNum: excelTwoInfo.TfNum,
ArtworkName: excelTwoInfo.ArtworkName,
Ruler: excelTwoInfo.Ruler,
SaleNo: excelTwoInfo.SaleNo,
CompleteDate: excelTwoInfo.CompleteDate,
SalePrice: excelTwoInfo.SalePrice,
}
if err = tx.Create(&artworkSoldCopyDetail).Error; err != nil {
zap.L().Error("create artworkSoldCopyDetail err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return
}
return
}
func GetAllBatchTimeTx() (batchTime []string, err error) {
if err = db.DB.Distinct("batch_time").Find(&model.ArtworkTx{}).Pluck("batch_time", &batchTime).Error; err != nil {
zap.L().Error("get artworkTxList info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func GetAllBatchTimeCopy() (batchTime []string, err error) {
if err = db.DB.Distinct("batch_time").Find(&model.ArtworkCopy{}).Pluck("batch_time", &batchTime).Error; err != nil {
zap.L().Error("get artworkTxList info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func GetArtworkTxList(query *gorm.DB, num, offset int32) (artworkTxList []model.ArtworkTx, err error) {
if err = query.Find(&artworkTxList).Order("ID asc").Limit(int(num)).Offset(int(offset)).Error; err != nil {
zap.L().Error("get artworkTxList info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func GetArtworkCopyList(query *gorm.DB, num, offset int32) (artworkCopyList []model.ArtworkCopy, err error) {
if err = query.Find(&artworkCopyList).Order("ID asc").Limit(int(num)).Offset(int(offset)).Error; err != nil {
zap.L().Error("get artworkCopyList info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func GetArtworkSoldTxDetailList(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 info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func GetArtworkSoldCopyDetailList(batchUid string) (artworkSoldCopyDetail []model.ArtworkSoldCopyDetail, err error) {
if err = db.DB.Where("batch_uid = ?", batchUid).Find(&artworkSoldCopyDetail).Error; err != nil {
zap.L().Error("get artworkSoldCopyDetail info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
func UpdateArtworkTxStatus(tx *gorm.DB, batchUid string, state int32) (err error) {
if err = tx.Model(&model.ArtworkTx{}).Where("uid = ?", batchUid).Update("state", 2).Error; err != nil {
zap.L().Error("update artworkTx info err", zap.Error(err))
err = errors.New(m.UPDATE_FAILED)
return
}
return
}
func UpdateArtworkCopyStatus(tx *gorm.DB, batchUid string, state int32) (err error) {
if err = tx.Model(&model.ArtworkCopy{}).Where("uid = ?", batchUid).Update("state", 2).Error; err != nil {
zap.L().Error("update artworkCopy info err", zap.Error(err))
err = errors.New(m.UPDATE_FAILED)
return
}
return
}
func StatementList(artistUid string, state int32) (contractData []*statement.Contracts, err error) { func StatementList(artistUid string, state int32) (contractData []*statement.Contracts, err error) {
var contracts []model.Contract var contracts []model.Contract
if err = db.DB.Where("artist_uid = ? AND state = ?", artistUid, state).Where("type == 4 OR type == 7").Find(&contracts).Error; err != nil { if err = db.DB.Where("artist_uid = ? AND state = ? AND (type == 4 OR type == 7)", artistUid, state).Find(&contracts).Error; err != nil {
zap.L().Error("get contracts info err", zap.Error(err)) zap.L().Error("get contracts info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT) err = errors.New(m.ERROR_SELECT)
return return

View File

@ -1,95 +0,0 @@
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) {
// res = &artistinfoStatement.CreateStatementBatchResponse{}
// data, err := dao.CreateStatementBatch(in)
// res.Id = data.ID
// return
// }
// func (s *StatementServerLogic) BatchCreateStatementBatch(in *artistinfoStatement.BatchCreateStatementBatchRequest) (*emptypb.Empty, error) {
// return nil, dao.BatchCreateStatementBatch(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) (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 nil, dao.BatchCreateStatementDetail(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

@ -51,13 +51,13 @@ func (a *Contract) CreateContract(req *contract.CreateContractRequest) (rep *con
} }
fmt.Println("第二处111111111111111") fmt.Println("第二处111111111111111")
fmt.Println("req.Type", req.Type)
switch req.Type { switch req.Type {
//1 画家合同(不涉及画家的画作) //1 画家合同(不涉及画家的画作)
case 1: case 1:
//查看画家合同是否已经存在,不存在继续 //查看画家合同是否已经存在,不存在继续
if err = dao.GetMgmtContractByArtistUid(req.ArtistUid, req.Type); err == gorm.ErrRecordNotFound { if err = dao.GetMgmtContractByArtistUid(req.ArtistUid, req.Type); err == gorm.ErrRecordNotFound {
fmt.Println("第一处111")
var uid uuid.UUID var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil { if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID) err = errors.New(m.ERROR_UID)
@ -78,7 +78,6 @@ func (a *Contract) CreateContract(req *contract.CreateContractRequest) (rep *con
return return
} }
} else { } else {
fmt.Println("第一处112")
return return
} }
@ -128,6 +127,27 @@ func (a *Contract) CreateContract(req *contract.CreateContractRequest) (rep *con
} }
} }
//这里是对账单的物权合同!!!注意!!!
case 4:
fmt.Println("第一处111")
//查看画家该批次是否已经有了合同,没有继续
if err = dao.StatementContractNo(req.ArtistUid, req.BatchUid); err == gorm.ErrRecordNotFound {
} else {
return
}
fmt.Println("第二处111")
//创建物权合同类型4
if err = dao.CreateStatementContract(tx, req.ArtistUid, req.BatchUid, req.BatchTime, 4); err != nil {
tx.Rollback()
return
}
fmt.Println("第三处111")
//修改对账单将State状态值改为2
if err = dao.UpdateArtworkTxStatus(tx, req.BatchUid, 2); err != nil {
tx.Rollback()
return
}
case 5: case 5:
for _, v := range req.ArtworkUid { for _, v := range req.ArtworkUid {
//查看画作合同是否已经存在,不存在继续类型5 //查看画作合同是否已经存在,不存在继续类型5
@ -146,6 +166,25 @@ func (a *Contract) CreateContract(req *contract.CreateContractRequest) (rep *con
} }
} }
//这里是对账单的物权合同!!!注意!!!
case 7:
//查看画家该批次是否已经有了合同,没有继续
if err = dao.StatementContractNo(req.ArtistUid, req.BatchUid); err == gorm.ErrRecordNotFound {
} else {
return
}
//创建物权合同类型4
if err = dao.CreateStatementContract(tx, req.ArtistUid, req.BatchUid, req.BatchTime, 7); err != nil {
tx.Rollback()
return
}
//修改对账单将State状态值改为2
if err = dao.UpdateArtworkCopyStatus(tx, req.BatchUid, 2); err != nil {
tx.Rollback()
return
}
default: default:
err = errors.New("type值出错!") err = errors.New("type值出错!")
return rep, err return rep, err
@ -184,6 +223,7 @@ func (a *Contract) ContractListMgmt(req *contract.ContractListMgmtRequest) (rep
} }
func (a *Contract) ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) { func (a *Contract) ContractList(req *contract.ContractListRequest) (rep *contract.ContractListRespond, err error) {
rep = &contract.ContractListRespond{}
//查看是否有该画家 //查看是否有该画家
user, err := dao.GetArtistInfoById(req.ArtistUid) user, err := dao.GetArtistInfoById(req.ArtistUid)
@ -191,16 +231,26 @@ func (a *Contract) ContractList(req *contract.ContractListRequest) (rep *contrac
return return
} }
fmt.Println("user:", user) //画家被解锁直接返回空值
if !user.IsLock {
return
}
ContractData, err := dao.ContractList(user.MgmtArtistUid, req.State) //合同分页查询操作
if req.Page < 1 {
req.Page = 1
}
if req.PageSize < 1 {
req.PageSize = 15
}
offset := (req.Page - 1) * req.PageSize
ContractData, err := dao.ContractList(user.MgmtArtistUid, req, offset)
if err != nil { if err != nil {
return return
} }
rep = &contract.ContractListRespond{ rep.Data = ContractData
Data: ContractData,
}
return return
} }
@ -260,7 +310,6 @@ func (a *Contract) GetContractInfoByContractUid(req *contract.GetContractInfoByC
SignTime: contractInfo.SignTime, SignTime: contractInfo.SignTime,
BatchTime: contractInfo.BatchTime, BatchTime: contractInfo.BatchTime,
BatchUid: contractInfo.BatchUid, BatchUid: contractInfo.BatchUid,
StType: contractInfo.StType,
} }
rep.Data = contract rep.Data = contract

View File

@ -1,11 +1,23 @@
package logic package logic
import ( import (
"fmt"
"github.com/fonchain/fonchain-artistinfo/cmd/internal/dao" "github.com/fonchain/fonchain-artistinfo/cmd/internal/dao"
statement "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement" statement "github.com/fonchain/fonchain-artistinfo/pb/artistinfoStatement"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/util"
"gorm.io/gorm"
) )
type IStatement interface { type IStatement interface {
UploadExcelOneTx(req *statement.UploadExcelOneTxRequest) (rep *statement.UploadExcelOneTxRespond, err error)
UploadExcelTwoTx(req *statement.UploadExcelTwoTxRequest) (rep *statement.UploadExcelTwoTxRespond, err error)
UploadExcelOneCopy(req *statement.UploadExcelOneCopyRequest) (rep *statement.UploadExcelOneCopyRespond, err error)
UploadExcelTwoCopy(req *statement.UploadExcelTwoCopyRequest) (rep *statement.UploadExcelTwoCopyRespond, err error)
GetAllBatchTimeTx(req *statement.GetAllBatchTimeTxRequest) (rep *statement.GetAllBatchTimeTxRespond, err error)
GetAllBatchTimeCopy(req *statement.GetAllBatchTimeCopyRequest) (rep *statement.GetAllBatchTimeCopyRespond, err error)
GetArtworkSoldTxDetailList(req *statement.GetArtworkSoldTxDetailListRequest) (rep *statement.GetArtworkSoldTxDetailListRespond, err error)
StatementList(req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error) StatementList(req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error)
GetTxInfoByBatchUid(req *statement.GetTxInfoByBatchUidRequest) (rep *statement.GetTxInfoByBatchUidRespond, err error) GetTxInfoByBatchUid(req *statement.GetTxInfoByBatchUidRequest) (rep *statement.GetTxInfoByBatchUidRespond, err error)
GetCopyInfoByBatchUid(req *statement.GetCopyInfoByBatchUidRequest) (rep *statement.GetCopyInfoByBatchUidRespond, err error) GetCopyInfoByBatchUid(req *statement.GetCopyInfoByBatchUidRequest) (rep *statement.GetCopyInfoByBatchUidRespond, err error)
@ -18,6 +30,455 @@ func NewStatement() IStatement {
type Statement struct { type Statement struct {
} }
func (a *Statement) UploadExcelOneTx(req *statement.UploadExcelOneTxRequest) (rep *statement.UploadExcelOneTxRespond, err error) {
rep = &statement.UploadExcelOneTxRespond{}
//开启事务,遇到错误就回滚
tx := db.DB.Begin()
defer func() {
if err != nil {
tx.Rollback()
} else {
tx.Commit()
}
}()
for _, v := range req.ExcelOneInfo {
//查看是否已经被生成了批次,没有的就生成物权批次
exist, artworkTx, err := dao.IsExistArtworkTx(tx, v.BatchTime, v.ArtistUid)
if err != nil {
return rep, err
}
if exist {
//获取批次uid
uid1, err := util.GetUid()
if err != nil {
return rep, err
}
//生成批次
err = dao.CreateArtworkTx(tx, uid1, v.BatchTime, v.ArtistUid, v.ArtistName)
if err != nil {
return rep, err
}
//对账单画作物权委托详情uid
uid2, err := util.GetUid()
if err != nil {
return rep, err
}
//将数据插入对账单画作物权委托详情
err = dao.CreateArtworkTxDetail(tx, uid1, uid2, v)
if err != nil {
return rep, err
}
} else {
//查看画作是否已经被该批次录入过,被录入过就跳过
count, err := dao.IsExistArtworkTxDetail(tx, artworkTx.Uid, v.TfNum)
if err != nil {
return rep, err
}
if count != 0 {
continue
}
//获取批次uid
uid, err := util.GetUid()
if err != nil {
return rep, err
}
err = dao.CreateArtworkTxDetail(tx, artworkTx.Uid, uid, v)
if err != nil {
return rep, err
}
}
}
return
}
func (a *Statement) UploadExcelTwoTx(req *statement.UploadExcelTwoTxRequest) (rep *statement.UploadExcelTwoTxRespond, err error) {
rep = &statement.UploadExcelTwoTxRespond{}
//开启事务,遇到错误就回滚
tx := db.DB.Begin()
defer func() {
if err != nil {
tx.Rollback()
} else {
tx.Commit()
}
}()
for _, v := range req.ExcelTwoInfo {
//查看是否已经被生成了物权批次
exist, artworkTx, err := dao.IsExistArtworkTx(tx, v.BatchTime, v.ArtistUid)
if err != nil {
return rep, err
}
//没有的就生成物权批次
if exist {
//获取批次uid
uid1, err := util.GetUid()
if err != nil {
return rep, err
}
//生成批次
err = dao.CreateArtworkTx(tx, uid1, v.BatchTime, v.ArtistUid, v.ArtistName)
if err != nil {
return rep, err
}
//对账单画作物权委托详情uid
uid2, err := util.GetUid()
if err != nil {
return rep, err
}
//将数据插入对账单画作物权销售委托详情
err = dao.CreateArtworkSoldTxDetail(tx, uid1, uid2, v)
if err != nil {
return rep, err
}
} else {
//查看画作是否已经被该批次录入过,被录入过就跳过
count, err := dao.IsExistArtworkSoldTxDetail(tx, artworkTx.Uid, v.TfNum)
if err != nil {
return rep, err
}
if count != 0 {
continue
}
//获取批次uid
uid, err := util.GetUid()
if err != nil {
return rep, err
}
err = dao.CreateArtworkSoldTxDetail(tx, artworkTx.Uid, uid, v)
if err != nil {
return rep, err
}
}
}
return
}
func (a *Statement) UploadExcelOneCopy(req *statement.UploadExcelOneCopyRequest) (rep *statement.UploadExcelOneCopyRespond, err error) {
rep = &statement.UploadExcelOneCopyRespond{}
//开启事务,遇到错误就回滚
tx := db.DB.Begin()
defer func() {
if err != nil {
tx.Rollback()
} else {
tx.Commit()
}
}()
for _, v := range req.ExcelOneInfo {
//查看是否已经被生成了批次,没有的就生成版权批次
exist, artworkCopy, err := dao.IsExistArtworkCopy(tx, v.BatchTime, v.ArtistUid)
if err != nil {
return rep, err
}
if exist {
//获取批次uid
uid1, err := util.GetUid()
if err != nil {
return rep, err
}
//生成批次
err = dao.CreateArtworkCopy(tx, uid1, v.BatchTime, v.ArtistUid, v.ArtistName)
if err != nil {
tx.Rollback()
return rep, err
}
//对账单画作物权委托详情uid
uid2, err := util.GetUid()
if err != nil {
return rep, err
}
//将数据插入对账单画作物权委托详情
err = dao.CreateArtworkCopyDetail(tx, uid1, uid2, v)
if err != nil {
return rep, err
}
} else {
count, err := dao.IsExistArtworkCopyDetail(tx, artworkCopy.Uid, v.TfNum)
if err != nil {
return rep, err
}
if count != 0 {
continue
}
//获取批次uid
uid, err := util.GetUid()
if err != nil {
return rep, err
}
err = dao.CreateArtworkCopyDetail(tx, artworkCopy.Uid, uid, v)
if err != nil {
return rep, err
}
}
}
return
}
func (a *Statement) UploadExcelTwoCopy(req *statement.UploadExcelTwoCopyRequest) (rep *statement.UploadExcelTwoCopyRespond, err error) {
rep = &statement.UploadExcelTwoCopyRespond{}
//开启事务,遇到错误就回滚
tx := db.DB.Begin()
defer func() {
if err != nil {
tx.Rollback()
} else {
tx.Commit()
}
}()
for _, v := range req.ExcelTwoInfo {
//查看是否已经被生成了物权批次
exist, artworkCopy, err := dao.IsExistArtworkCopy(tx, v.BatchTime, v.ArtistUid)
if err != nil {
return rep, err
}
//没有的就生成物权批次
if exist {
//获取批次uid
uid1, err := util.GetUid()
if err != nil {
return rep, err
}
//生成批次
err = dao.CreateArtworkCopy(tx, uid1, v.BatchTime, v.ArtistUid, v.ArtistName)
if err != nil {
tx.Rollback()
return rep, err
}
//对账单画作物权委托详情uid
uid2, err := util.GetUid()
if err != nil {
return rep, err
}
//将数据插入对账单画作物权销售委托详情
err = dao.CreateArtworkSoldCopyDetail(tx, uid1, uid2, v)
if err != nil {
return rep, err
}
} else {
//查看画作是否已经被该批次录入过,被录入过就跳过
count, err := dao.IsExistArtworkSoldCopyDetail(tx, artworkCopy.Uid, v.TfNum)
if err != nil {
return rep, err
}
if count != 0 {
continue
}
//获取批次uid
uid, err := util.GetUid()
if err != nil {
return rep, err
}
err = dao.CreateArtworkSoldCopyDetail(tx, artworkCopy.Uid, uid, v)
if err != nil {
return rep, err
}
}
}
return
}
func (a *Statement) GetAllBatchTimeTx(req *statement.GetAllBatchTimeTxRequest) (rep *statement.GetAllBatchTimeTxRespond, err error) {
rep = &statement.GetAllBatchTimeTxRespond{}
//batchTime去重查询只获取batchTime字段值
batchTime, err := dao.GetAllBatchTimeTx()
if err != nil {
return
}
rep.BatchTime = batchTime
return
}
func (a *Statement) GetAllBatchTimeCopy(req *statement.GetAllBatchTimeCopyRequest) (rep *statement.GetAllBatchTimeCopyRespond, err error) {
rep = &statement.GetAllBatchTimeCopyRespond{}
//batchTime去重查询只获取batchTime字段值
batchTime, err := dao.GetAllBatchTimeCopy()
if err != nil {
return
}
rep.BatchTime = batchTime
return
}
func (a *Statement) GetArtworkSoldTxDetailList(req *statement.GetArtworkSoldTxDetailListRequest) (rep *statement.GetArtworkSoldTxDetailListRespond, err error) {
rep = &statement.GetArtworkSoldTxDetailListRespond{}
artistList := &statement.ArtistList{}
var query *gorm.DB = db.DB // 初始化query变量
fmt.Println("req.ArtistName值为:", req.ArtistName)
//画家姓名不为空,模糊查询(根据画家姓名的某个字也可以查询)
if req.ArtistName != "" {
fmt.Println("aaaaaaaaaaaa")
query = query.Where("artist_name LiKE ?", "%"+req.ArtistName+"%")
}
//批次不为空
if req.BatchTime != "" {
query = query.Where("batch_time = ?", req.BatchTime)
}
//画家姓名不为空
if req.State != 0 {
query = query.Where("state = ?", req.State)
}
//合同分页查询操作
if req.Page < 1 {
req.Page = 1
}
if req.Num < 1 {
req.Num = 15
}
offset := (req.Page - 1) * req.Num
artworkTxList, err := dao.GetArtworkTxList(query, req.Num, offset)
if err != nil {
return
}
for _, v := range artworkTxList {
artistList.BatchUid = v.Uid
artistList.ArtistName = v.ArtistName
artistList.BatchTime = v.BatchTime
artistList.State = v.State
fmt.Println("第三处")
//当已经签署了合同时
if v.State == 3 {
//获取合同预览和下载链接
contract, err := dao.GetContractUrlTx(v.Uid)
if err != nil {
return rep, err
}
artistList.ViewUrl = contract.ViewUrl
artistList.DownloadUrl = contract.DownloadUrl
} else {
artistList.ViewUrl = ""
artistList.DownloadUrl = ""
}
//查询对账单画作物权销售委托详情
artworkSoldTxDetail, err := dao.GetArtworkSoldTxDetailList(v.Uid)
if err != nil {
return rep, err
}
//获取该画家该批次所有的已售出的画信息
for _, m := range artworkSoldTxDetail {
artworkSoldDetailList := &statement.ArtworkSoldDetailList{}
artworkSoldDetailList.ArtworkName = m.ArtworkName
artworkSoldDetailList.TfNum = m.TfNum
artworkSoldDetailList.Ruler = m.Ruler
artworkSoldDetailList.SaleNo = m.SaleNo
artworkSoldDetailList.CompleteDate = m.CompleteDate
artworkSoldDetailList.SalePrice = m.SalePrice
artistList.ArtworkSoldDetailList = append(artistList.ArtworkSoldDetailList, artworkSoldDetailList)
}
rep.ArtistList = append(rep.ArtistList, artistList)
}
return
}
func (a *Statement) GetArtworkSoldCopyDetailList(req *statement.GetArtworkSoldCopyDetailListRequest) (rep *statement.GetArtworkSoldCopyDetailListRespond, err error) {
rep = &statement.GetArtworkSoldCopyDetailListRespond{}
artistList := &statement.ArtistList{}
var query *gorm.DB = db.DB // 初始化query变量
//画家姓名不为空
if req.ArtistName != "" {
query = query.Where("artist_name LiKE ?", "%"+req.ArtistName+"%")
}
//批次不为空
if req.BatchTime != "" {
query = query.Where("batch_time = ?", req.BatchTime)
}
//画家姓名不为空
if req.State != 0 {
query = query.Where("state = ?", req.State)
}
//合同分页查询操作
if req.Page < 1 {
req.Page = 1
}
if req.Num < 1 {
req.Num = 15
}
offset := (req.Page - 1) * req.Num
artworkCopyList, err := dao.GetArtworkCopyList(query, req.Num, offset)
if err != nil {
return
}
for _, v := range artworkCopyList {
artistList.BatchUid = v.Uid
artistList.ArtistName = v.ArtistName
artistList.BatchTime = v.BatchTime
artistList.State = v.State
//当已经签署了合同时
if v.State == 3 {
//获取合同预览和下载链接
contract, err := dao.GetContractUrlTx(v.Uid)
if err != nil {
return rep, err
}
artistList.ViewUrl = contract.ViewUrl
artistList.DownloadUrl = contract.DownloadUrl
} else {
artistList.ViewUrl = ""
artistList.DownloadUrl = ""
}
//查询对账单画作物权销售委托详情
artworkSoldCopyDetail, err := dao.GetArtworkSoldCopyDetailList(v.Uid)
if err != nil {
return rep, err
}
//获取该画家该批次所有的已售出的画信息
for _, m := range artworkSoldCopyDetail {
artworkSoldDetailList := &statement.ArtworkSoldDetailList{}
artworkSoldDetailList.ArtworkName = m.ArtworkName
artworkSoldDetailList.TfNum = m.TfNum
artworkSoldDetailList.Ruler = m.Ruler
artworkSoldDetailList.SaleNo = m.SaleNo
artworkSoldDetailList.CompleteDate = m.CompleteDate
artworkSoldDetailList.SalePrice = m.SalePrice
artistList.ArtworkSoldDetailList = append(artistList.ArtworkSoldDetailList, artworkSoldDetailList)
}
rep.ArtistList = append(rep.ArtistList, artistList)
}
return
}
func (a *Statement) StatementList(req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error) { func (a *Statement) StatementList(req *statement.StatementListRequest) (rep *statement.StatementListRespond, err error) {
//查看是否有该画家 //查看是否有该画家
user, err := dao.GetArtistInfoById(req.ArtistUid) user, err := dao.GetArtistInfoById(req.ArtistUid)
@ -79,9 +540,7 @@ func (a *Statement) GetTxInfoByBatchUid(req *statement.GetTxInfoByBatchUidReques
artworkSoldTxDetail.Ruler = v.Ruler artworkSoldTxDetail.Ruler = v.Ruler
artworkSoldTxDetail.SaleNo = v.SaleNo artworkSoldTxDetail.SaleNo = v.SaleNo
artworkSoldTxDetail.CompleteDate = v.CompleteDate artworkSoldTxDetail.CompleteDate = v.CompleteDate
artworkSoldTxDetail.MinPrice = v.MinPrice
artworkSoldTxDetail.SalePrice = v.SalePrice artworkSoldTxDetail.SalePrice = v.SalePrice
artworkSoldTxDetail.GuaranteePrice = v.GuaranteePrice
rep.ArtworkSoldTxDetail = append(rep.ArtworkSoldTxDetail, artworkSoldTxDetail) rep.ArtworkSoldTxDetail = append(rep.ArtworkSoldTxDetail, artworkSoldTxDetail)
} }
@ -130,9 +589,7 @@ func (a *Statement) GetCopyInfoByBatchUid(req *statement.GetCopyInfoByBatchUidRe
artworkSoldCopyDetail.Ruler = v.Ruler artworkSoldCopyDetail.Ruler = v.Ruler
artworkSoldCopyDetail.SaleNo = v.SaleNo artworkSoldCopyDetail.SaleNo = v.SaleNo
artworkSoldCopyDetail.CompleteDate = v.CompleteDate artworkSoldCopyDetail.CompleteDate = v.CompleteDate
artworkSoldCopyDetail.MinPrice = v.MinPrice
artworkSoldCopyDetail.SalePrice = v.SalePrice artworkSoldCopyDetail.SalePrice = v.SalePrice
artworkSoldCopyDetail.GuaranteePrice = v.GuaranteePrice
rep.ArtworkSoldCopyDetail = append(rep.ArtworkSoldCopyDetail, artworkSoldCopyDetail) rep.ArtworkSoldCopyDetail = append(rep.ArtworkSoldCopyDetail, artworkSoldCopyDetail)
} }

View File

@ -13,13 +13,12 @@ type Contract struct {
Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"` 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"` 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"` 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 已签署 State int32 `gorm:"column:state;default:1;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署
Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示 Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁 0=合同和锁定无关" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示
LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"` LockTime string `gorm:"column:lock_time;comment:锁定时间" json:"lockTime"`
SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"` SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"`
BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"` BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"`
BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"` 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"` //当前批次的物权委托单 ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单
ArtworkCopy *ArtworkCopy `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的版权委托单 ArtworkCopy *ArtworkCopy `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的版权委托单
ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情 ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情

View File

@ -2,6 +2,11 @@ package model
import "gorm.io/plugin/soft_delete" import "gorm.io/plugin/soft_delete"
const (
InitPage = 1
PageSize = 15
)
//对账单画作物权 //对账单画作物权
type ArtworkTx struct { type ArtworkTx struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"`
@ -9,6 +14,7 @@ type ArtworkTx struct {
ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_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"` 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"` BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"`
State int32 `gorm:"column:state;default:1;type:int(1);comment:对账单状态,1:未生成合同 2:已生成数据库一条合同数据(不管画家有没有点击过都是已生成未签署) 3:已签署(画家在画家宝那边签署了合同);NOT NULL" json:"state"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt DeletedAt soft_delete.DeletedAt
@ -19,11 +25,11 @@ type ArtworkTxDetail struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` 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"` 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"` 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:"泰丰画作编号"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号" json:"tf_num"`
ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称" json:"artwork_name"`
Ruler string `gorm:"column:ruler;comment:平尺"` Ruler float32 `gorm:"column:ruler;comment:平尺" json:"ruler"`
MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` MinPrice float32 `gorm:"column:min_price;comment:委托销售底价" json:"min_price"`
GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;" json:"guarantee_price"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt DeletedAt soft_delete.DeletedAt
@ -31,20 +37,18 @@ type ArtworkTxDetail struct {
// 对账单画作物权销售委托详情(该画家一个批次的全部已被售卖了的画作) // 对账单画作物权销售委托详情(该画家一个批次的全部已被售卖了的画作)
type ArtworkSoldTxDetail struct { type ArtworkSoldTxDetail struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` 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"` 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"` 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:"泰丰画作编号"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号" json:"tf_num"`
ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称" json:"artwork_name"`
Ruler string `gorm:"column:ruler;comment:平尺"` Ruler float32 `gorm:"column:ruler;comment:平尺" json:"ruler"`
SaleNo string `gorm:"column:sale_no;comment:销售单号"` SaleNo string `gorm:"column:sale_no;comment:销售单号" json:"sale_no"`
CompleteDate string `gorm:"column:complete_date;comment:成交日期"` CompleteDate string `gorm:"column:complete_date;comment:成交日期" json:"complete_date"`
MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` SalePrice float32 `gorm:"column:sale_price;comment:画作售价" json:"sale_price"`
SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt
} }
//对账单画作版权 //对账单画作版权
@ -54,6 +58,7 @@ type ArtworkCopy struct {
ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_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"` 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"` BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"`
State int32 `gorm:"column:state;default:1;type:int(1);comment:对账单状态,1:未生成合同 2:已生成数据库一条合同数据(不管画家有没有点击过都是已生成未签署) 3:已签署(画家在画家宝那边签署了合同);NOT NULL" json:"state"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt DeletedAt soft_delete.DeletedAt
@ -64,11 +69,11 @@ type ArtworkCopyDetail struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` 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"` 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"` 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:"泰丰画作编号"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号" json:"tf_num"`
ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称" json:"tf_num"`
Ruler string `gorm:"column:ruler;comment:平尺"` Ruler float32 `gorm:"column:ruler;comment:平尺" json:"ruler"`
MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` MinPrice float32 `gorm:"column:min_price;comment:委托销售底价" json:"min_price"`
GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;" json:"guarantee_price"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt DeletedAt soft_delete.DeletedAt
@ -76,18 +81,16 @@ type ArtworkCopyDetail struct {
// 对账单画作版权委托售卖详情(该画家一个批次的全部已被售卖了的画作) // 对账单画作版权委托售卖详情(该画家一个批次的全部已被售卖了的画作)
type ArtworkSoldCopyDetail struct { type ArtworkSoldCopyDetail struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` 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"` 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"` 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:"泰丰画作编号"` TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号" json:"tf_num"`
ArtworkName string `gorm:"column:artwork_name;comment:画作名称"` ArtworkName string `gorm:"column:artwork_name;comment:画作名称" json:"tf_num"`
Ruler string `gorm:"column:ruler;comment:平尺"` Ruler float32 `gorm:"column:ruler;comment:平尺" json:"ruler"`
SaleNo string `gorm:"column:sale_no;comment:销售单号"` SaleNo string `gorm:"column:sale_no;comment:销售单号" json:"sale_no"`
CompleteDate string `gorm:"column:complete_date;comment:成交日期"` CompleteDate string `gorm:"column:complete_date;comment:成交日期" json:"complete_date"`
MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"` SalePrice float32 `gorm:"column:sale_price;comment:画作售价" json:"sale_price"`
SalePrice float32 `gorm:"column:sale_price;comment:画作售价"` CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"` UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"` DeletedAt soft_delete.DeletedAt
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt
} }

0
conf/buildDate Normal file
View File

View File

@ -10,7 +10,7 @@ mode = dev #正式prod #测试dev
# DbName = artistmgmttest # DbName = artistmgmttest
Db = mysql Db = mysql
DbHost = 127.0.0.1 DbHost = 127.0.0.1
DbPort = 13307 DbPort = 3306
DbUser = root DbUser = root
DbPassWord = 123456 DbPassWord = 123456
DbName = artistmgmtprod DbName = artistmgmtprod

View File

@ -1,122 +0,0 @@
syntax = "proto3";
package artistinfo;
option go_package = "./;artistinfoStatement";
//import "validate.proto";
import public "google/protobuf/timestamp.proto";
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 CreateOrUpdateStatementBatch(StatementBatchRequest)returns(CreateStatementBatchResponse){}; //
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){};//
rpc GetStatementDetailList(GetStatementDetailListRequest)returns(GetStatementDetailListResponse){};//
}
message StatementPageInfo{
int64 page =1;
int64 pageSize =2;
int64 total=3;
}
enum StatementCreateType{
saveEntrust=0;
saveSalse=1;
}
message StatementBatchRequest{ // cmd/model/artworkStatement.go
string artistUid=1;
string artistName=2;
string aatchTime=3;
int32 flowStatus=4;
StatementCreateType updateType=5;
repeated EntrustRequest entrustList=6;
repeated SalesRequest salesList=7;
}
message EntrustRequest{
string tfNum =1;
string artworkName =2;
string ruler =3;
string saleNo =4;
string completeDate =5;
float minPrice =6;
float guaranteePrice =7;
}
message SalesRequest {
string tfNum =1;
string artworkName =2;
string ruler =3;
string saleNo =4;
string completeDate =5;
}
message StatementBatchInfo{ // cmd/model/artworkStatement.go
// int32 stType=1;
string artistUid=2;
string artistName=3;
int32 flowStatus=4;
string batchTime=5;
float guaranteePrice=7;
int64 id = 8;
string createdAt =9;
string updatedAt =10;
int64 deletedAt =11;
}
message CreateStatementBatchResponse{
int64 id =1;
}
message BatchCreateStatementBatchRequest{
repeated StatementBatchRequest data =1;
}
message StatementDetailRequest{
int64 batchId = 1; // cmd/model/artworkStatement.go
string tfNum = 2;
string artworkName =3;
string ruler = 4;
string saleNo = 5;
string completeDate = 6;
int64 id = 8;
string createdAt=9;
string updatedAt=10;
int64 deletedAt=11;
}
message CreateStatementDetailResponse{
int64 id=1;
}
message BatchCreateStatementDetailRequest{
repeated StatementDetailRequest data =1;
}
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;
StatementPageInfo page =2;
}
message GetStatementDetailListRequest{
StatementDetailRequest condition=1; //
int64 page =2;
int64 pageSize =3;
}
message GetStatementDetailListResponse{
repeated StatementDetailRequest data=1;
StatementPageInfo page =2;
}
message GetStatementBatchTimeMenusResponse{
repeated string data=1;
}

File diff suppressed because it is too large Load Diff

View File

@ -3,101 +3,228 @@ package statement;
option go_package = "./;statement"; option go_package = "./;statement";
service Statement { service Statement {
rpc UploadExcelOneTx (UploadExcelOneTxRequest) returns (UploadExcelOneTxRespond) {}
rpc UploadExcelTwoTx (UploadExcelTwoTxRequest) returns (UploadExcelTwoTxRespond) {}
rpc UploadExcelOneCopy (UploadExcelOneCopyRequest) returns (UploadExcelOneCopyRespond) {}
rpc UploadExcelTwoCopy (UploadExcelTwoCopyRequest) returns (UploadExcelTwoCopyRespond) {}
rpc GetAllBatchTimeTx (GetAllBatchTimeTxRequest) returns (GetAllBatchTimeTxRespond) {}
rpc GetAllBatchTimeCopy (GetAllBatchTimeCopyRequest) returns (GetAllBatchTimeCopyRespond) {}
rpc GetArtworkSoldTxDetailList (GetArtworkSoldTxDetailListRequest) returns (GetArtworkSoldTxDetailListRespond) {}
rpc GetArtworkSoldCopyDetailList (GetArtworkSoldCopyDetailListRequest) returns (GetArtworkSoldCopyDetailListRespond) {}
rpc StatementList (StatementListRequest) returns (StatementListRespond) {} rpc StatementList (StatementListRequest) returns (StatementListRespond) {}
rpc GetTxInfoByBatchUid (GetTxInfoByBatchUidRequest) returns (GetTxInfoByBatchUidRespond) {} rpc GetTxInfoByBatchUid (GetTxInfoByBatchUidRequest) returns (GetTxInfoByBatchUidRespond) {}
rpc GetCopyInfoByBatchUid (GetCopyInfoByBatchUidRequest) returns (GetCopyInfoByBatchUidRespond) {} rpc GetCopyInfoByBatchUid (GetCopyInfoByBatchUidRequest) returns (GetCopyInfoByBatchUidRespond) {}
} }
message Contracts{ message Contracts{
string ContractUid = 1 [json_name = "contract_uid"]; string contractUid = 1 [json_name = "contract_uid"];
string ArtistUid = 2 [json_name = "artist_uid"]; string artistUid = 2 [json_name = "artist_uid"];
string ArtworkUid = 3 [json_name = "artwork_uid"]; string artworkUid = 3 [json_name = "artwork_uid"];
string ContractId = 4 [json_name = "contract_id"]; string contractId = 4 [json_name = "contract_id"];
string TransactionId = 5 [json_name = "transaction_id"]; string transactionId = 5 [json_name = "transaction_id"];
int32 Type = 6 [json_name = "type"]; int32 type = 6 [json_name = "type"];
string ViewUrl = 7 [json_name = "view_url"]; string viewUrl = 7 [json_name = "view_url"];
string DownloadUrl = 8 [json_name = "download_url"]; string downloadUrl = 8 [json_name = "download_url"];
int32 State = 9 [json_name = "state"]; int32 state = 9 [json_name = "state"];
int32 Status = 10 [json_name = "status"]; int32 status = 10 [json_name = "status"];
string ExpirationTime = 11 [json_name = "expiration_time"]; string expirationTime = 11 [json_name = "expiration_time"];
string LockTime = 12 [json_name = "lock_time"]; string lockTime = 12 [json_name = "lock_time"];
string SignTime = 13 [json_name = "sign_time"]; string signTime = 13 [json_name = "sign_time"];
string BatchTime = 14 [json_name = "batch_time"]; string batchTime = 14 [json_name = "batch_time"];
string BatchUid = 15 [json_name = "batch_uid"]; string batchUid = 15 [json_name = "batch_uid"];
} }
message ArtworkTxDetail{ message ArtworkTxDetail{
string BatchUid = 1 [json_name = "batch_uid"]; string batchUid = 1 [json_name = "batch_uid"];
string TfNum = 2 [json_name = "TfNum"]; string tfNum = 2 [json_name = "TfNum"];
string ArtworkName = 3 [json_name = "artwork_name"]; string artworkName = 3 [json_name = "artwork_name"];
string Ruler = 4 [json_name = "ruler"]; float ruler = 4 [json_name = "ruler"];
float MinPrice = 5 [json_name = "min_price"]; float minPrice = 5 [json_name = "min_price"];
float GuaranteePrice = 6 [json_name = "guarantee_price"]; float guaranteePrice = 6 [json_name = "guarantee_price"];
} }
message ArtworkSoldTxDetail{ message ArtworkSoldTxDetail{
string BatchUid = 1 [json_name = "batch_uid"]; string batchUid = 1 [json_name = "batch_uid"];
string TfNum = 2 [json_name = "TfNum"]; string tfNum = 2 [json_name = "TfNum"];
string ArtworkName = 3 [json_name = "artwork_name"]; string artworkName = 3 [json_name = "artwork_name"];
string Ruler = 4 [json_name = "ruler"]; float ruler = 4 [json_name = "ruler"];
string SaleNo = 5 [json_name = "sale_no"]; string saleNo = 5 [json_name = "sale_no"];
string CompleteDate = 6 [json_name = "complete_date"]; string completeDate = 6 [json_name = "complete_date"];
float MinPrice = 7 [json_name = "min_price"]; float minPrice = 7 [json_name = "min_price"];
float SalePrice = 8 [json_name = "sale_price"]; float salePrice = 8 [json_name = "sale_price"];
float GuaranteePrice = 9 [json_name = "guarantee_price"]; float guaranteePrice = 9 [json_name = "guarantee_price"];
} }
message ArtworkCopyDetail{ message ArtworkCopyDetail{
string BatchUid = 1 [json_name = "batch_uid"]; string batchUid = 1 [json_name = "batch_uid"];
string TfNum = 2 [json_name = "TfNum"]; string tfNum = 2 [json_name = "TfNum"];
string ArtworkName = 3 [json_name = "artwork_name"]; string artworkName = 3 [json_name = "artwork_name"];
string Ruler = 4 [json_name = "ruler"]; float ruler = 4 [json_name = "ruler"];
float MinPrice = 5 [json_name = "min_price"]; float minPrice = 5 [json_name = "min_price"];
float GuaranteePrice = 6 [json_name = "guarantee_price"]; float guaranteePrice = 6 [json_name = "guarantee_price"];
} }
message ArtworkSoldCopyDetail{ message ArtworkSoldCopyDetail{
string BatchUid = 1 [json_name = "batch_uid"]; string batchUid = 1 [json_name = "batch_uid"];
string TfNum = 2 [json_name = "TfNum"]; string tfNum = 2 [json_name = "TfNum"];
string ArtworkName = 3 [json_name = "artwork_name"]; string artworkName = 3 [json_name = "artwork_name"];
string Ruler = 4 [json_name = "ruler"]; float ruler = 4 [json_name = "ruler"];
string SaleNo = 5 [json_name = "sale_no"]; string saleNo = 5 [json_name = "sale_no"];
string CompleteDate = 6 [json_name = "complete_date"]; string completeDate = 6 [json_name = "complete_date"];
float MinPrice = 7 [json_name = "min_price"]; float minPrice = 7 [json_name = "min_price"];
float SalePrice = 8 [json_name = "sale_price"]; float salePrice = 8 [json_name = "sale_price"];
float GuaranteePrice = 9 [json_name = "guarantee_price"]; float guaranteePrice = 9 [json_name = "guarantee_price"];
} }
message ExcelOneInfo {
string artistUid = 1 [json_name = "artist_uid"];
string batchTime = 2 [json_name = "batch_time"];
string artistName = 3 [json_name = "artist_uid"];
string tfNum = 4 [json_name = "tf_num"];
string artworkName = 5 [json_name = "artwork_name"];
float ruler = 6 [json_name = "ruler"];
float minPrice = 7 [json_name = "min_price"];
float guaranteePrice = 8 [json_name = "guarantee_price"];
}
message ExcelTwoInfo{
string artistUid = 1 [json_name = "artist_uid"];
string batchTime = 2 [json_name = "batch_time"];
string artistName = 3 [json_name = "artist_uid"];
string tfNum = 4 [json_name = "tf_num"];
string artworkName = 5 [json_name = "artwork_name"];
float ruler = 6 [json_name = "ruler"];
string saleNo = 7 [json_name = "saleNo"];
string completeDate = 8 [json_name = "complete_date"];
float salePrice = 9 [json_name = "salePrice"];
}
message ArtworkSoldDetailList{
string artworkName = 6 [json_name = "artwork_name"];
string tfNum = 7 [json_name = "tf_num"];
float ruler = 8 [json_name = "ruler"];
string saleNo = 9 [json_name = "saleNo"];
string completeDate = 10 [json_name = "complete_date"];
float salePrice = 11 [json_name = "salePrice"];
}
message ArtistList {
string batchUid = 1 [json_name = "batch_uid"];
string artistName = 2 [json_name = "artist_uid"];
string batchTime = 3 [json_name = "batch_time"];
int32 state = 4 [json_name = "state"];
int32 status = 5 [json_name = "status"];
string viewUrl = 6 [json_name = "view_url"];
string downloadUrl = 7 [json_name = "download_url"];
repeated ArtworkSoldDetailList artworkSoldDetailList = 8 [json_name = "artwork_sold_detail_list"];
}
message UploadExcelOneTxRequest {
repeated ExcelOneInfo excelOneInfo = 1 [json_name = "excel_one_info"];
}
message UploadExcelOneTxRespond {
string msg = 1 [json_name = "msg"];
}
message UploadExcelTwoTxRequest {
repeated ExcelTwoInfo excelTwoInfo = 1 [json_name = "excel_one_info"];
}
message UploadExcelTwoTxRespond {
string msg = 1 [json_name = "msg"];
}
message UploadExcelOneCopyRequest {
repeated ExcelOneInfo excelOneInfo = 1 [json_name = "excel_one_info"];
}
message UploadExcelOneCopyRespond {
string msg = 1 [json_name = "msg"];
}
message UploadExcelTwoCopyRequest {
repeated ExcelTwoInfo excelTwoInfo = 1 [json_name = "excel_one_info"];
}
message UploadExcelTwoCopyRespond {
string msg = 1 [json_name = "msg"];
}
message GetAllBatchTimeTxRequest {
}
message GetAllBatchTimeTxRespond {
repeated string BatchTime = 1 [json_name = "batch_time"];
string msg = 2 [json_name = "msg"];
}
message GetAllBatchTimeCopyRequest {
}
message GetAllBatchTimeCopyRespond {
repeated string BatchTime = 1 [json_name = "batch_time"];
string msg = 2 [json_name = "msg"];
}
message GetArtworkSoldTxDetailListRequest {
string artistName = 1 [json_name = "artist_name"];
string batchTime = 2 [json_name = "batch_time"];
int32 state = 3 [json_name = "state"];
int32 page = 4 [json_name = "page"];
int32 num = 5 [json_name = "num"];
}
message GetArtworkSoldTxDetailListRespond {
repeated ArtistList artist_list = 1 [json_name = "artist_list"];
string msg = 2 [json_name = "msg"];
}
message GetArtworkSoldCopyDetailListRequest {
string artistName = 1 [json_name = "artist_name"];
string batchTime = 2 [json_name = "batch_time"];
int32 state = 3 [json_name = "state"];
int32 page = 4 [json_name = "page"];
int32 num = 5 [json_name = "num"];
}
message GetArtworkSoldCopyDetailListRespond {
repeated ArtistList artist_list = 1 [json_name = "artist_list"];
string msg = 2 [json_name = "msg"];
}
message StatementListRequest { message StatementListRequest {
string ArtistUid = 1 [json_name = "artist_uid"]; string artistUid = 1 [json_name = "artist_uid"];
int32 PageSize = 2 [json_name="pageSize"]; int32 pageSize = 2 [json_name="pageSize"];
int32 Page = 3 [json_name="page"]; int32 page = 3 [json_name="page"];
int32 State = 4 [json_name="state"]; int32 state = 4 [json_name="state"];
} }
message StatementListRespond { message StatementListRespond {
repeated Contracts Data = 1 [json_name = "data"]; repeated Contracts data = 1 [json_name = "data"];
string Msg = 2 [json_name = "msg"]; string msg = 2 [json_name = "msg"];
} }
message GetTxInfoByBatchUidRequest { message GetTxInfoByBatchUidRequest {
string BatchUid = 1 [json_name = "batch_uid"]; string batchUid = 1 [json_name = "batch_uid"];
} }
message GetTxInfoByBatchUidRespond { message GetTxInfoByBatchUidRespond {
string ArtistName = 1 [json_name = "artist_name"]; string artistName = 1 [json_name = "artist_name"];
repeated ArtworkTxDetail ArtworkTxDetail = 2 [json_name = "artwork_tx_detail"]; repeated ArtworkTxDetail artworkTxDetail = 2 [json_name = "artwork_tx_detail"];
repeated ArtworkSoldTxDetail ArtworkSoldTxDetail = 3 [json_name = "artwork_sold_tx_detail"]; repeated ArtworkSoldTxDetail artworkSoldTxDetail = 3 [json_name = "artwork_sold_tx_detail"];
string Msg = 4 [json_name = "msg"]; string msg = 4 [json_name = "msg"];
} }
message GetCopyInfoByBatchUidRequest { message GetCopyInfoByBatchUidRequest {
string BatchUid = 1 [json_name = "batch_uid"]; string batchUid = 1 [json_name = "batch_uid"];
} }
message GetCopyInfoByBatchUidRespond { message GetCopyInfoByBatchUidRespond {
string ArtistName = 1 [json_name = "artist_name"]; string artistName = 1 [json_name = "artist_name"];
repeated ArtworkCopyDetail ArtworkCopyDetail = 2 [json_name = "artwork_copy_detail"]; repeated ArtworkCopyDetail artworkCopyDetail = 2 [json_name = "artwork_copy_detail"];
repeated ArtworkSoldCopyDetail ArtworkSoldCopyDetail = 3 [json_name = "artwork_sold_copy_detail"]; repeated ArtworkSoldCopyDetail artworkSoldCopyDetail = 3 [json_name = "artwork_sold_copy_detail"];
string Msg = 4 [json_name = "msg"]; string msg = 4 [json_name = "msg"];
} }

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT. // Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: statement.proto // source: Statement.proto
package statement package statement
@ -30,6 +30,115 @@ func (this *ArtworkCopyDetail) Validate() error {
func (this *ArtworkSoldCopyDetail) Validate() error { func (this *ArtworkSoldCopyDetail) Validate() error {
return nil return nil
} }
func (this *ExcelOneInfo) Validate() error {
return nil
}
func (this *ExcelTwoInfo) Validate() error {
return nil
}
func (this *ArtworkSoldDetailList) Validate() error {
return nil
}
func (this *ArtistList) Validate() error {
for _, item := range this.ArtworkSoldDetailList {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ArtworkSoldDetailList", err)
}
}
}
return nil
}
func (this *UploadExcelOneTxRequest) Validate() error {
for _, item := range this.ExcelOneInfo {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ExcelOneInfo", err)
}
}
}
return nil
}
func (this *UploadExcelOneTxRespond) Validate() error {
return nil
}
func (this *UploadExcelTwoTxRequest) Validate() error {
for _, item := range this.ExcelTwoInfo {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ExcelTwoInfo", err)
}
}
}
return nil
}
func (this *UploadExcelTwoTxRespond) Validate() error {
return nil
}
func (this *UploadExcelOneCopyRequest) Validate() error {
for _, item := range this.ExcelOneInfo {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ExcelOneInfo", err)
}
}
}
return nil
}
func (this *UploadExcelOneCopyRespond) Validate() error {
return nil
}
func (this *UploadExcelTwoCopyRequest) Validate() error {
for _, item := range this.ExcelTwoInfo {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ExcelTwoInfo", err)
}
}
}
return nil
}
func (this *UploadExcelTwoCopyRespond) Validate() error {
return nil
}
func (this *GetAllBatchTimeTxRequest) Validate() error {
return nil
}
func (this *GetAllBatchTimeTxRespond) Validate() error {
return nil
}
func (this *GetAllBatchTimeCopyRequest) Validate() error {
return nil
}
func (this *GetAllBatchTimeCopyRespond) Validate() error {
return nil
}
func (this *GetArtworkSoldTxDetailListRequest) Validate() error {
return nil
}
func (this *GetArtworkSoldTxDetailListRespond) Validate() error {
for _, item := range this.ArtistList {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistList", err)
}
}
}
return nil
}
func (this *GetArtworkSoldCopyDetailListRequest) Validate() error {
return nil
}
func (this *GetArtworkSoldCopyDetailListRespond) Validate() error {
for _, item := range this.ArtistList {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistList", err)
}
}
}
return nil
}
func (this *StatementListRequest) Validate() error { func (this *StatementListRequest) Validate() error {
return nil return nil
} }

View File

@ -2,7 +2,7 @@
// versions: // versions:
// - protoc-gen-go-triple v1.0.8 // - protoc-gen-go-triple v1.0.8
// - protoc v3.21.8 // - protoc v3.21.8
// source: statement.proto // source: Statement.proto
package statement package statement
@ -28,6 +28,14 @@ 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. // 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 { type StatementClient interface {
UploadExcelOneTx(ctx context.Context, in *UploadExcelOneTxRequest, opts ...grpc_go.CallOption) (*UploadExcelOneTxRespond, common.ErrorWithAttachment)
UploadExcelTwoTx(ctx context.Context, in *UploadExcelTwoTxRequest, opts ...grpc_go.CallOption) (*UploadExcelTwoTxRespond, common.ErrorWithAttachment)
UploadExcelOneCopy(ctx context.Context, in *UploadExcelOneCopyRequest, opts ...grpc_go.CallOption) (*UploadExcelOneCopyRespond, common.ErrorWithAttachment)
UploadExcelTwoCopy(ctx context.Context, in *UploadExcelTwoCopyRequest, opts ...grpc_go.CallOption) (*UploadExcelTwoCopyRespond, common.ErrorWithAttachment)
GetAllBatchTimeTx(ctx context.Context, in *GetAllBatchTimeTxRequest, opts ...grpc_go.CallOption) (*GetAllBatchTimeTxRespond, common.ErrorWithAttachment)
GetAllBatchTimeCopy(ctx context.Context, in *GetAllBatchTimeCopyRequest, opts ...grpc_go.CallOption) (*GetAllBatchTimeCopyRespond, common.ErrorWithAttachment)
GetArtworkSoldTxDetailList(ctx context.Context, in *GetArtworkSoldTxDetailListRequest, opts ...grpc_go.CallOption) (*GetArtworkSoldTxDetailListRespond, common.ErrorWithAttachment)
GetArtworkSoldCopyDetailList(ctx context.Context, in *GetArtworkSoldCopyDetailListRequest, opts ...grpc_go.CallOption) (*GetArtworkSoldCopyDetailListRespond, common.ErrorWithAttachment)
StatementList(ctx context.Context, in *StatementListRequest, opts ...grpc_go.CallOption) (*StatementListRespond, common.ErrorWithAttachment) StatementList(ctx context.Context, in *StatementListRequest, opts ...grpc_go.CallOption) (*StatementListRespond, common.ErrorWithAttachment)
GetTxInfoByBatchUid(ctx context.Context, in *GetTxInfoByBatchUidRequest, opts ...grpc_go.CallOption) (*GetTxInfoByBatchUidRespond, common.ErrorWithAttachment) GetTxInfoByBatchUid(ctx context.Context, in *GetTxInfoByBatchUidRequest, opts ...grpc_go.CallOption) (*GetTxInfoByBatchUidRespond, common.ErrorWithAttachment)
GetCopyInfoByBatchUid(ctx context.Context, in *GetCopyInfoByBatchUidRequest, opts ...grpc_go.CallOption) (*GetCopyInfoByBatchUidRespond, common.ErrorWithAttachment) GetCopyInfoByBatchUid(ctx context.Context, in *GetCopyInfoByBatchUidRequest, opts ...grpc_go.CallOption) (*GetCopyInfoByBatchUidRespond, common.ErrorWithAttachment)
@ -38,9 +46,17 @@ type statementClient struct {
} }
type StatementClientImpl struct { type StatementClientImpl struct {
StatementList func(ctx context.Context, in *StatementListRequest) (*StatementListRespond, error) UploadExcelOneTx func(ctx context.Context, in *UploadExcelOneTxRequest) (*UploadExcelOneTxRespond, error)
GetTxInfoByBatchUid func(ctx context.Context, in *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error) UploadExcelTwoTx func(ctx context.Context, in *UploadExcelTwoTxRequest) (*UploadExcelTwoTxRespond, error)
GetCopyInfoByBatchUid func(ctx context.Context, in *GetCopyInfoByBatchUidRequest) (*GetCopyInfoByBatchUidRespond, error) UploadExcelOneCopy func(ctx context.Context, in *UploadExcelOneCopyRequest) (*UploadExcelOneCopyRespond, error)
UploadExcelTwoCopy func(ctx context.Context, in *UploadExcelTwoCopyRequest) (*UploadExcelTwoCopyRespond, error)
GetAllBatchTimeTx func(ctx context.Context, in *GetAllBatchTimeTxRequest) (*GetAllBatchTimeTxRespond, error)
GetAllBatchTimeCopy func(ctx context.Context, in *GetAllBatchTimeCopyRequest) (*GetAllBatchTimeCopyRespond, error)
GetArtworkSoldTxDetailList func(ctx context.Context, in *GetArtworkSoldTxDetailListRequest) (*GetArtworkSoldTxDetailListRespond, error)
GetArtworkSoldCopyDetailList func(ctx context.Context, in *GetArtworkSoldCopyDetailListRequest) (*GetArtworkSoldCopyDetailListRespond, error)
StatementList func(ctx context.Context, in *StatementListRequest) (*StatementListRespond, error)
GetTxInfoByBatchUid func(ctx context.Context, in *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error)
GetCopyInfoByBatchUid func(ctx context.Context, in *GetCopyInfoByBatchUidRequest) (*GetCopyInfoByBatchUidRespond, error)
} }
func (c *StatementClientImpl) GetDubboStub(cc *triple.TripleConn) StatementClient { func (c *StatementClientImpl) GetDubboStub(cc *triple.TripleConn) StatementClient {
@ -55,6 +71,54 @@ func NewStatementClient(cc *triple.TripleConn) StatementClient {
return &statementClient{cc} return &statementClient{cc}
} }
func (c *statementClient) UploadExcelOneTx(ctx context.Context, in *UploadExcelOneTxRequest, opts ...grpc_go.CallOption) (*UploadExcelOneTxRespond, common.ErrorWithAttachment) {
out := new(UploadExcelOneTxRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadExcelOneTx", in, out)
}
func (c *statementClient) UploadExcelTwoTx(ctx context.Context, in *UploadExcelTwoTxRequest, opts ...grpc_go.CallOption) (*UploadExcelTwoTxRespond, common.ErrorWithAttachment) {
out := new(UploadExcelTwoTxRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadExcelTwoTx", in, out)
}
func (c *statementClient) UploadExcelOneCopy(ctx context.Context, in *UploadExcelOneCopyRequest, opts ...grpc_go.CallOption) (*UploadExcelOneCopyRespond, common.ErrorWithAttachment) {
out := new(UploadExcelOneCopyRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadExcelOneCopy", in, out)
}
func (c *statementClient) UploadExcelTwoCopy(ctx context.Context, in *UploadExcelTwoCopyRequest, opts ...grpc_go.CallOption) (*UploadExcelTwoCopyRespond, common.ErrorWithAttachment) {
out := new(UploadExcelTwoCopyRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadExcelTwoCopy", in, out)
}
func (c *statementClient) GetAllBatchTimeTx(ctx context.Context, in *GetAllBatchTimeTxRequest, opts ...grpc_go.CallOption) (*GetAllBatchTimeTxRespond, common.ErrorWithAttachment) {
out := new(GetAllBatchTimeTxRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetAllBatchTimeTx", in, out)
}
func (c *statementClient) GetAllBatchTimeCopy(ctx context.Context, in *GetAllBatchTimeCopyRequest, opts ...grpc_go.CallOption) (*GetAllBatchTimeCopyRespond, common.ErrorWithAttachment) {
out := new(GetAllBatchTimeCopyRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetAllBatchTimeCopy", in, out)
}
func (c *statementClient) GetArtworkSoldTxDetailList(ctx context.Context, in *GetArtworkSoldTxDetailListRequest, opts ...grpc_go.CallOption) (*GetArtworkSoldTxDetailListRespond, common.ErrorWithAttachment) {
out := new(GetArtworkSoldTxDetailListRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtworkSoldTxDetailList", in, out)
}
func (c *statementClient) GetArtworkSoldCopyDetailList(ctx context.Context, in *GetArtworkSoldCopyDetailListRequest, opts ...grpc_go.CallOption) (*GetArtworkSoldCopyDetailListRespond, common.ErrorWithAttachment) {
out := new(GetArtworkSoldCopyDetailListRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtworkSoldCopyDetailList", in, out)
}
func (c *statementClient) StatementList(ctx context.Context, in *StatementListRequest, opts ...grpc_go.CallOption) (*StatementListRespond, common.ErrorWithAttachment) { func (c *statementClient) StatementList(ctx context.Context, in *StatementListRequest, opts ...grpc_go.CallOption) (*StatementListRespond, common.ErrorWithAttachment) {
out := new(StatementListRespond) out := new(StatementListRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string) interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -77,6 +141,14 @@ func (c *statementClient) GetCopyInfoByBatchUid(ctx context.Context, in *GetCopy
// All implementations must embed UnimplementedStatementServer // All implementations must embed UnimplementedStatementServer
// for forward compatibility // for forward compatibility
type StatementServer interface { type StatementServer interface {
UploadExcelOneTx(context.Context, *UploadExcelOneTxRequest) (*UploadExcelOneTxRespond, error)
UploadExcelTwoTx(context.Context, *UploadExcelTwoTxRequest) (*UploadExcelTwoTxRespond, error)
UploadExcelOneCopy(context.Context, *UploadExcelOneCopyRequest) (*UploadExcelOneCopyRespond, error)
UploadExcelTwoCopy(context.Context, *UploadExcelTwoCopyRequest) (*UploadExcelTwoCopyRespond, error)
GetAllBatchTimeTx(context.Context, *GetAllBatchTimeTxRequest) (*GetAllBatchTimeTxRespond, error)
GetAllBatchTimeCopy(context.Context, *GetAllBatchTimeCopyRequest) (*GetAllBatchTimeCopyRespond, error)
GetArtworkSoldTxDetailList(context.Context, *GetArtworkSoldTxDetailListRequest) (*GetArtworkSoldTxDetailListRespond, error)
GetArtworkSoldCopyDetailList(context.Context, *GetArtworkSoldCopyDetailListRequest) (*GetArtworkSoldCopyDetailListRespond, error)
StatementList(context.Context, *StatementListRequest) (*StatementListRespond, error) StatementList(context.Context, *StatementListRequest) (*StatementListRespond, error)
GetTxInfoByBatchUid(context.Context, *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error) GetTxInfoByBatchUid(context.Context, *GetTxInfoByBatchUidRequest) (*GetTxInfoByBatchUidRespond, error)
GetCopyInfoByBatchUid(context.Context, *GetCopyInfoByBatchUidRequest) (*GetCopyInfoByBatchUidRespond, error) GetCopyInfoByBatchUid(context.Context, *GetCopyInfoByBatchUidRequest) (*GetCopyInfoByBatchUidRespond, error)
@ -88,6 +160,30 @@ type UnimplementedStatementServer struct {
proxyImpl protocol.Invoker proxyImpl protocol.Invoker
} }
func (UnimplementedStatementServer) UploadExcelOneTx(context.Context, *UploadExcelOneTxRequest) (*UploadExcelOneTxRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadExcelOneTx not implemented")
}
func (UnimplementedStatementServer) UploadExcelTwoTx(context.Context, *UploadExcelTwoTxRequest) (*UploadExcelTwoTxRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadExcelTwoTx not implemented")
}
func (UnimplementedStatementServer) UploadExcelOneCopy(context.Context, *UploadExcelOneCopyRequest) (*UploadExcelOneCopyRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadExcelOneCopy not implemented")
}
func (UnimplementedStatementServer) UploadExcelTwoCopy(context.Context, *UploadExcelTwoCopyRequest) (*UploadExcelTwoCopyRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadExcelTwoCopy not implemented")
}
func (UnimplementedStatementServer) GetAllBatchTimeTx(context.Context, *GetAllBatchTimeTxRequest) (*GetAllBatchTimeTxRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetAllBatchTimeTx not implemented")
}
func (UnimplementedStatementServer) GetAllBatchTimeCopy(context.Context, *GetAllBatchTimeCopyRequest) (*GetAllBatchTimeCopyRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetAllBatchTimeCopy not implemented")
}
func (UnimplementedStatementServer) GetArtworkSoldTxDetailList(context.Context, *GetArtworkSoldTxDetailListRequest) (*GetArtworkSoldTxDetailListRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetArtworkSoldTxDetailList not implemented")
}
func (UnimplementedStatementServer) GetArtworkSoldCopyDetailList(context.Context, *GetArtworkSoldCopyDetailListRequest) (*GetArtworkSoldCopyDetailListRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetArtworkSoldCopyDetailList not implemented")
}
func (UnimplementedStatementServer) StatementList(context.Context, *StatementListRequest) (*StatementListRespond, error) { func (UnimplementedStatementServer) StatementList(context.Context, *StatementListRequest) (*StatementListRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatementList not implemented") return nil, status.Errorf(codes.Unimplemented, "method StatementList not implemented")
} }
@ -125,6 +221,238 @@ func RegisterStatementServer(s grpc_go.ServiceRegistrar, srv StatementServer) {
s.RegisterService(&Statement_ServiceDesc, srv) s.RegisterService(&Statement_ServiceDesc, srv)
} }
func _Statement_UploadExcelOneTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadExcelOneTxRequest)
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("UploadExcelOneTx", 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_UploadExcelTwoTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadExcelTwoTxRequest)
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("UploadExcelTwoTx", 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_UploadExcelOneCopy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadExcelOneCopyRequest)
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("UploadExcelOneCopy", 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_UploadExcelTwoCopy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadExcelTwoCopyRequest)
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("UploadExcelTwoCopy", 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_GetAllBatchTimeTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetAllBatchTimeTxRequest)
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("GetAllBatchTimeTx", 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_GetAllBatchTimeCopy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetAllBatchTimeCopyRequest)
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("GetAllBatchTimeCopy", 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_GetArtworkSoldTxDetailList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetArtworkSoldTxDetailListRequest)
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("GetArtworkSoldTxDetailList", 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_GetArtworkSoldCopyDetailList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetArtworkSoldCopyDetailListRequest)
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("GetArtworkSoldCopyDetailList", 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_StatementList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { func _Statement_StatementList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(StatementListRequest) in := new(StatementListRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@ -219,6 +547,38 @@ var Statement_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "statement.Statement", ServiceName: "statement.Statement",
HandlerType: (*StatementServer)(nil), HandlerType: (*StatementServer)(nil),
Methods: []grpc_go.MethodDesc{ Methods: []grpc_go.MethodDesc{
{
MethodName: "UploadExcelOneTx",
Handler: _Statement_UploadExcelOneTx_Handler,
},
{
MethodName: "UploadExcelTwoTx",
Handler: _Statement_UploadExcelTwoTx_Handler,
},
{
MethodName: "UploadExcelOneCopy",
Handler: _Statement_UploadExcelOneCopy_Handler,
},
{
MethodName: "UploadExcelTwoCopy",
Handler: _Statement_UploadExcelTwoCopy_Handler,
},
{
MethodName: "GetAllBatchTimeTx",
Handler: _Statement_GetAllBatchTimeTx_Handler,
},
{
MethodName: "GetAllBatchTimeCopy",
Handler: _Statement_GetAllBatchTimeCopy_Handler,
},
{
MethodName: "GetArtworkSoldTxDetailList",
Handler: _Statement_GetArtworkSoldTxDetailList_Handler,
},
{
MethodName: "GetArtworkSoldCopyDetailList",
Handler: _Statement_GetArtworkSoldCopyDetailList_Handler,
},
{ {
MethodName: "StatementList", MethodName: "StatementList",
Handler: _Statement_StatementList_Handler, Handler: _Statement_StatementList_Handler,
@ -233,5 +593,5 @@ var Statement_ServiceDesc = grpc_go.ServiceDesc{
}, },
}, },
Streams: []grpc_go.StreamDesc{}, Streams: []grpc_go.StreamDesc{},
Metadata: "statement.proto", Metadata: "Statement.proto",
} }

View File

@ -40,7 +40,7 @@ type Contracts struct {
SignTime string `protobuf:"bytes,13,opt,name=SignTime,json=sign_time,proto3" json:"SignTime,omitempty"` SignTime string `protobuf:"bytes,13,opt,name=SignTime,json=sign_time,proto3" json:"SignTime,omitempty"`
BatchTime string `protobuf:"bytes,14,opt,name=BatchTime,json=batch_time,proto3" json:"BatchTime,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"` 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"` StType int32 `protobuf:"varint,16,opt,name=StType,json=st_type,proto3" json:"StType,omitempty"`
} }
func (x *Contracts) Reset() { func (x *Contracts) Reset() {
@ -194,7 +194,9 @@ type CreateContractRequest struct {
ArtistUid string `protobuf:"bytes,1,opt,name=ArtistUid,json=artist_uid,proto3" json:"ArtistUid,omitempty"` ArtistUid string `protobuf:"bytes,1,opt,name=ArtistUid,json=artist_uid,proto3" json:"ArtistUid,omitempty"`
ArtworkUid []string `protobuf:"bytes,2,rep,name=ArtworkUid,json=artwork_uid,proto3" json:"ArtworkUid,omitempty"` ArtworkUid []string `protobuf:"bytes,2,rep,name=ArtworkUid,json=artwork_uid,proto3" json:"ArtworkUid,omitempty"`
Type int32 `protobuf:"varint,3,opt,name=Type,json=type,proto3" json:"Type,omitempty"` BatchUid string `protobuf:"bytes,3,opt,name=BatchUid,json=batch_uid,proto3" json:"BatchUid,omitempty"`
BatchTime string `protobuf:"bytes,4,opt,name=BatchTime,json=batch_time,proto3" json:"BatchTime,omitempty"`
Type int32 `protobuf:"varint,5,opt,name=Type,json=type,proto3" json:"Type,omitempty"`
} }
func (x *CreateContractRequest) Reset() { func (x *CreateContractRequest) Reset() {
@ -243,6 +245,20 @@ func (x *CreateContractRequest) GetArtworkUid() []string {
return nil return nil
} }
func (x *CreateContractRequest) GetBatchUid() string {
if x != nil {
return x.BatchUid
}
return ""
}
func (x *CreateContractRequest) GetBatchTime() string {
if x != nil {
return x.BatchTime
}
return ""
}
func (x *CreateContractRequest) GetType() int32 { func (x *CreateContractRequest) GetType() int32 {
if x != nil { if x != nil {
return x.Type return x.Type
@ -1441,194 +1457,198 @@ var file_contract_proto_rawDesc = []byte{
0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x42, 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, 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, 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, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x22, 0x6b, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74,
0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41,
0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72,
0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x42,
0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62,
0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x76, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18,
0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x43,
0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x76, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01,
0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64,
0x6d, 0x22, 0x5a, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x74, 0x4d, 0x67, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65,
0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03,
0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x5a,
0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x67,
0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x6d, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74,
0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x13, 0x43, 0x6f,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01,
0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64,
0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01,
0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 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, 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, 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, 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, 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, 0x67, 0x22, 0x49, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69,
0x69, 0x73, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74,
0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63,
0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x23,
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, 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, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0c, 0x53,
0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x72,
0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53, 0x69, 0x67,
0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x23, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x69, 0x73,
0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73,
0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72,
0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72,
0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x1c,
0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 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, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70,
0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x04, 0x64, 0x61,
0x74, 0x1a, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72,
0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x03, 0x0a, 0x15, 0x55,
0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, 0x06, 0x70, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
0x72, 0x6f, 0x74, 0x6f, 0x33, 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, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x53,
0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e,
0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x46,
0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73,
0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x25, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x12, 0x33, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x43, 0x6f, 0x6e, 0x74,
0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33,
0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e,
0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42,
0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
} }
var ( var (

View File

@ -33,13 +33,15 @@ message Contracts{
string SignTime = 13 [json_name = "sign_time"]; string SignTime = 13 [json_name = "sign_time"];
string BatchTime = 14 [json_name = "batch_time"]; string BatchTime = 14 [json_name = "batch_time"];
string BatchUid = 15 [json_name = "batch_uid"]; string BatchUid = 15 [json_name = "batch_uid"];
int32 StType = 16 [json_name = "st_yype"]; int32 StType = 16 [json_name = "st_type"];
} }
message CreateContractRequest { message CreateContractRequest {
string ArtistUid = 1 [json_name="artist_uid"]; string ArtistUid = 1 [json_name="artist_uid"];
repeated string ArtworkUid = 2 [json_name="artwork_uid"]; repeated string ArtworkUid = 2 [json_name="artwork_uid"];
int32 Type = 3 [json_name="type"]; string BatchUid = 3 [json_name="batch_uid"];
string BatchTime = 4 [json_name="batch_time"];
int32 Type = 5 [json_name="type"];
} }
message CreateContractRespond{ message CreateContractRespond{

View File

@ -75,4 +75,7 @@ const (
ERROR_BATCH_INSERT = "批量插入失败" ERROR_BATCH_INSERT = "批量插入失败"
CREATE_BATCH_SUCCESS = "批量插入成功" CREATE_BATCH_SUCCESS = "批量插入成功"
ERROR_UPDATE_STATEMENT = "更新对账单状态失败"
ERROR_CRE_ART = "创建失败"
) )

View File

@ -2,6 +2,7 @@ package util
import ( import (
"bytes" "bytes"
"errors"
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
@ -14,6 +15,7 @@ import (
"github.com/fonchain/fonchain-artistinfo/pkg/m" "github.com/fonchain/fonchain-artistinfo/pkg/m"
"github.com/fonchain/utils/objstorage" "github.com/fonchain/utils/objstorage"
uuid "github.com/satori/go.uuid"
) )
// IdCardTurnAge 身份证号读取年龄 // IdCardTurnAge 身份证号读取年龄
@ -165,3 +167,13 @@ func Post(url, data string) (string, error) {
// str := (*string)(unsafe.Pointer(&respBytes)) // str := (*string)(unsafe.Pointer(&respBytes))
return string(respBytes), nil return string(respBytes), nil
} }
// 生成uid
func GetUid() (uuids string, err error) {
var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID)
return "", err
}
return uid.String(), nil
}