diff --git a/DockerBuildProd.bat b/DockerBuildProd.bat new file mode 100644 index 0000000..9567990 --- /dev/null +++ b/DockerBuildProd.bat @@ -0,0 +1,8 @@ +go env -w GOOS=linux +go build -ldflags "-s -w" -o ./build/artShowServerProd ./cmd/app.go +docker rmi artshow-server-prod +docker rmi 192.168.12.3:9015/artshow-server +docker build . -f .\DockerfileProd -t artshow-server-prod +docker tag artshow-server-prod 192.168.12.3:9015/artshow-server +docker push 192.168.12.3:9015/artshow-server +pause \ No newline at end of file diff --git a/DockerBuildTest.bat b/DockerBuildTest.bat new file mode 100644 index 0000000..a714d41 --- /dev/null +++ b/DockerBuildTest.bat @@ -0,0 +1,8 @@ +go env -w GOOS=linux +go build -ldflags "-s -w" -o ./build/artShowServerTest ./cmd/app.go +docker rmi artshow-server-test +docker rmi 121.229.45.214:9006/artshow-server +docker build . -f .\Dockerfile -t artshow-server-test +docker tag artshow-server-test 121.229.45.214:9006/artshow-server +docker push 121.229.45.214:9006/artshow-server +pause \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5b1d7ef..9dc6df4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,29 @@ FROM golang:alpine AS builder LABEL stage=gobuilder -#ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml -#ENV MODE_ENV test +ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml ENV CGO_ENABLED 0 +ENV GOOS linux ENV GOPROXY https://goproxy.cn,direct #RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories #RUN apk update --no-cache && apk add --no-cache tzdata WORKDIR /build -COPY ./utils ../utils -ADD ./fonchain-artshow/go.mod . -ADD ./fonchain-artshow/go.sum . -RUN go mod download -COPY ./fonchain-artshow . +#COPY ./utils ../utils +#ADD ./fonchain-artshow/go.mod . +#ADD ./fonchain-artshow/go.sum . +#RUN go mod download +#COPY ./fonchain-artshow . -RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go +#RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go +COPY ./build/artShowServerTest /app/artshowServer FROM alpine RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk update --no-cache RUN apk add --no-cache ca-certificates RUN apk add --no-cache tzdata -COPY ./fonchain-artshow/conf /app/conf +COPY ./conf /app/conf ENV TZ Asia/Shanghai #ENV MODE_ENV test diff --git a/Dockerfile1 b/Dockerfile1 new file mode 100644 index 0000000..c218163 --- /dev/null +++ b/Dockerfile1 @@ -0,0 +1,32 @@ +FROM golang:alpine AS builder + +LABEL stage=gobuilder +#ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml +#ENV MODE_ENV test +ENV CGO_ENABLED 0 +ENV GOPROXY https://goproxy.cn,direct +#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +#RUN apk update --no-cache && apk add --no-cache tzdata + +WORKDIR /build +#COPY ./utils ../utils +#ADD ./fonchain-artshow/go.mod . +#ADD ./fonchain-artshow/go.sum . +#RUN go mod download +#COPY ./fonchain-artshow . + +RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go + +FROM alpine +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk update --no-cache +RUN apk add --no-cache ca-certificates +RUN apk add --no-cache tzdata +COPY ./fonchain-artshow/conf /app/conf + +ENV TZ Asia/Shanghai +#ENV MODE_ENV test +WORKDIR /app +COPY --from=builder /app/artshowServer . +#EXPOSE 9022 +CMD ["/app/artshowServer"] diff --git a/DockerfileProd b/DockerfileProd new file mode 100644 index 0000000..65c1c87 --- /dev/null +++ b/DockerfileProd @@ -0,0 +1,33 @@ +FROM golang:alpine AS builder + +LABEL stage=gobuilder +ENV DUBBO_GO_CONFIG_PATH ./conf/dubbogo.yaml +ENV CGO_ENABLED 0 +ENV GOOS linux +ENV GOPROXY https://goproxy.cn,direct +#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +#RUN apk update --no-cache && apk add --no-cache tzdata + +WORKDIR /build +#COPY ./utils ../utils +#ADD ./fonchain-artshow/go.mod . +#ADD ./fonchain-artshow/go.sum . +#RUN go mod download +#COPY ./fonchain-artshow . + +#RUN go build -ldflags "-s -w" -o /app/artshowServer ./cmd/app.go +COPY ./build/artShowServerProd /app/artshowServer + +FROM alpine +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk update --no-cache +RUN apk add --no-cache ca-certificates +RUN apk add --no-cache tzdata +COPY ./conf /app/conf + +ENV TZ Asia/Shanghai +#ENV MODE_ENV test +WORKDIR /app +COPY --from=builder /app/artshowServer . +#EXPOSE 9022 +CMD ["/app/artshowServer"] diff --git a/build/artShowServerProd b/build/artShowServerProd new file mode 100644 index 0000000..6e5c4da Binary files /dev/null and b/build/artShowServerProd differ diff --git a/build/artShowServerTest b/build/artShowServerTest new file mode 100644 index 0000000..6e5c4da Binary files /dev/null and b/build/artShowServerTest differ diff --git a/clear.sh b/clear.sh new file mode 100644 index 0000000..20c15f9 --- /dev/null +++ b/clear.sh @@ -0,0 +1,2 @@ + +ls pb/artShow/*.pb.go | xargs -n1 -IX bash -c 'sed s/,omitempty// X > X.tmp && mv X{.tmp,}'; \ No newline at end of file diff --git a/cmd/controller/art_show.go b/cmd/controller/art_show.go index fa9d92c..c54bc68 100644 --- a/cmd/controller/art_show.go +++ b/cmd/controller/art_show.go @@ -13,36 +13,42 @@ type ArtShowProvider struct { artShow.UnimplementedArtShowServer } -func (p *ArtShowProvider) CreateShow(ctx context.Context, req *artShow.SaveShowReq) (res *artShow.SaveShowRes, err error) { +func (p *ArtShowProvider) CreateShow(_ context.Context, req *artShow.SaveShowReq) (res *artShow.SaveShowRes, err error) { + //fmt.Println("artShow create info ======== ", req.ShowSeq) if req.ShowName == "" { err = errors.New(m.ERROR_SHOW_NAME) return nil, err } - if req.ShowTime == "" { + if req.CreateTime == "" { err = errors.New(m.ERROR_TIME) return nil, err } + if req.ShowSeq == "" { + err = errors.New(m.ERROR_NOT_ARTIST_SEQ) + return nil, err + } + res = new(artShow.SaveShowRes) - err, showID := service.CreateArtShowWithArtworkPrice(req) + err, showUID := service.CreateArtShowWithArtworkPrice(req) if err != nil { res.Msg = err.Error() - err = errors.New(m.ERROR_CREATE) + err = errors.New(err.Error()) return res, err } res.Msg = m.CREATE_SUCCESS - res.ShowID = int64(showID) + res.ShowUID = showUID return res, nil } -func (p *ArtShowProvider) UpdateShow(ctx context.Context, req *artShow.SaveShowReq) (res *artShow.SaveShowRes, err error) { - if req.ID == 0 { +func (p *ArtShowProvider) UpdateShow(_ context.Context, req *artShow.SaveShowReq) (res *artShow.SaveShowRes, err error) { + if req.ShowUID == "" { err = errors.New(m.ERROR_INVALID_ID) return } res = new(artShow.SaveShowRes) if req.IsShow == m.ARTSHOW_INSIDE { showRel := new(model.ShowRel) - err, showRel = service.QueryShowRel(uint(req.ID)) + err, showRel = service.QueryShowRel_showUID(req.ShowUID) if err != nil { return res, err } @@ -52,33 +58,34 @@ func (p *ArtShowProvider) UpdateShow(ctx context.Context, req *artShow.SaveShowR } } - err, showID := service.UpdateArtShowWithArtworkPrice(req) + err, showUID := service.UpdateArtShowWithArtworkPrice(req) if err != nil { res.Msg = err.Error() err = errors.New(m.UPDATE_FAILED) return } res.Msg = m.UPDATE_SUCCESS - res.ShowID = int64(showID) + res.ShowUID = showUID return } -func (p *ArtShowProvider) DelShow(ctx context.Context, req *artShow.DelShowReq) (res *artShow.CommonRes, err error) { - if len(req.ShowID) < 1 { +func (p *ArtShowProvider) DelShow(_ context.Context, req *artShow.DelShowReq) (res *artShow.CommonRes, err error) { + res = new(artShow.CommonRes) + if len(req.ShowUID) == 0 { err = errors.New(m.ERROR_INVALID_ID) return } err = service.DelArtShow(req) if err != nil { res.Msg = err.Error() - err = errors.New(m.ERROR_DELETE) + err = errors.New(err.Error()) return } res.Msg = m.DELETE_SUCCESS return } -func (p *ArtShowProvider) ShowList(ctx context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) { +func (p *ArtShowProvider) ShowList(_ context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) { if req.Page == 0 { req.Page = 1 } @@ -95,8 +102,15 @@ func (p *ArtShowProvider) ShowList(ctx context.Context, req *artShow.ShowListReq return } -func (p *ArtShowProvider) ShowInfo(ctx context.Context, req *artShow.ShowDetailReq) (res *artShow.ShowArtworkDetailRes, err error) { - err, res = service.ShowInfo(req) +func (p *ArtShowProvider) ShowListWithRel(_ context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) { + if req.Page == 0 { + req.Page = 1 + } + if req.PageSize == 0 { + req.Page = 10 + } + res = new(artShow.ShowListRes) + err, res = service.ArtShowListWithRel(req) if err != nil { res.Msg = err.Error() err = errors.New(m.ERROR_QUERY) @@ -105,7 +119,28 @@ func (p *ArtShowProvider) ShowInfo(ctx context.Context, req *artShow.ShowDetailR return } -func (p *ArtShowProvider) ShowStatisticalInfo(ctx context.Context, req *artShow.ShowStatisticalInfoReq) (res *artShow.ShowStatisticalInfoRes, err error) { +func (p *ArtShowProvider) ShowArtworkInfo(_ context.Context, req *artShow.ArtworkDetailReq) (res *artShow.ShowArtworkDetailRes, err error) { + err, res = service.ShowArtworkInfo(req) + if err != nil { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + return +} + +func (p *ArtShowProvider) ShowDetail(_ context.Context, req *artShow.ShowDetailReq) (res *artShow.ShowDetailRes, err error) { + res = new(artShow.ShowDetailRes) + err, res = service.ShowDetail(req) + if err != nil { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + return +} + +func (p *ArtShowProvider) ShowStatisticalInfo(_ context.Context, req *artShow.ShowStatisticalInfoReq) (res *artShow.ShowStatisticalInfoRes, err error) { res = new(artShow.ShowStatisticalInfoRes) err, num := service.ShowStatisticalInfo(req) if err != nil { @@ -117,8 +152,8 @@ func (p *ArtShowProvider) ShowStatisticalInfo(ctx context.Context, req *artShow. return } -func (p *ArtShowProvider) ArtworkPrice(ctx context.Context, req *artShow.ArtworkPriceReq) (res *artShow.ArtworkPriceRes, err error) { - if req.ArtworkID == 0 { +func (p *ArtShowProvider) ArtworkPrice(_ context.Context, req *artShow.ArtworkPriceReq) (res *artShow.ArtworkPriceRes, err error) { + if req.ArtworkUID == "" { err = errors.New(m.ERROR_INVALID_ID) return } @@ -132,15 +167,15 @@ func (p *ArtShowProvider) ArtworkPrice(ctx context.Context, req *artShow.Artwork return } -func (p *ArtShowProvider) ShowListWithApply(ctx context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) { +func (p *ArtShowProvider) ShowListWithApply(_ context.Context, req *artShow.ShowListReq) (res *artShow.ShowListRes, err error) { if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.Page = 10 } - if req.IsShow == 0 { - req.IsShow = 2 + if len(req.IsShow) == 0 { + req.IsShow = append(req.IsShow, 2) } res = new(artShow.ShowListRes) err, res = service.ArtShowListWithApply(req) @@ -151,3 +186,36 @@ func (p *ArtShowProvider) ShowListWithApply(ctx context.Context, req *artShow.Sh } return } + +func (p *ArtShowProvider) ShowListForArtwork(_ context.Context, req *artShow.ShowListForArtworkReq) (res *artShow.ShowListForArtworkRes, err error) { + if req.Page == 0 { + req.Page = 1 + } + if req.PageSize == 0 { + req.Page = 10 + } + res = new(artShow.ShowListForArtworkRes) + err, res = service.QueryArtShowForArtwork(req) + if err != nil { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + return +} + +func (p *ArtShowProvider) ArtworkPriceList(_ context.Context, req *artShow.ShowDetailReq) (res *artShow.ArtworkPriceListRes, err error) { + if len(req.ShowUID) != 1 && req.ShowUID[len(req.ShowUID)-1] == "" { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + res = new(artShow.ArtworkPriceListRes) + err, res.Data = service.ArtworkPriceList(req) + if err != nil { + res.Msg = err.Error() + err = errors.New(m.ERROR_QUERY) + return + } + return +} diff --git a/cmd/controller/show_apply.go b/cmd/controller/show_apply.go index b73ed00..c9f55ea 100644 --- a/cmd/controller/show_apply.go +++ b/cmd/controller/show_apply.go @@ -8,7 +8,7 @@ import ( "fonchain-artshow/pkg/m" ) -func (p *ArtShowProvider) CreateApply(ctx context.Context, req *artShow.SaveApplyReq) (res *artShow.SaveApplyRes, err error) { +func (p *ArtShowProvider) CreateApply(_ context.Context, req *artShow.SaveApplyReq) (res *artShow.SaveApplyRes, err error) { if req.Applicant == "" { err = errors.New(m.ERROR_APPLICANT) return @@ -18,35 +18,35 @@ func (p *ArtShowProvider) CreateApply(ctx context.Context, req *artShow.SaveAppl return } res = new(artShow.SaveApplyRes) - err, applyID := service.CreateShowApply(req) + err, applyUID := service.CreateShowApply(req) if err != nil { res.Msg = err.Error() err = errors.New(m.ERROR_CREATE) return } res.Msg = m.CREATE_SUCCESS - res.ApplyID = int64(applyID) + res.ApplyUID = applyUID return } -func (p *ArtShowProvider) UpdateApply(ctx context.Context, req *artShow.SaveApplyReq) (res *artShow.SaveApplyRes, err error) { - if req.ID == 0 { +func (p *ArtShowProvider) UpdateApply(_ context.Context, req *artShow.SaveApplyReq) (res *artShow.SaveApplyRes, err error) { + if req.ApplyUID == "" { err = errors.New(m.ERROR_INVALID_ID) return } res = new(artShow.SaveApplyRes) - err, showID := service.UpdateShowApplyWithShowRel(req) + err, applyUID := service.UpdateShowApplyWithShowRel(req) if err != nil { res.Msg = err.Error() err = errors.New(m.UPDATE_FAILED) return } res.Msg = m.UPDATE_SUCCESS - res.ApplyID = int64(showID) + res.ApplyUID = applyUID return } -func (p *ArtShowProvider) ApplyList(ctx context.Context, req *artShow.ApplyListReq) (res *artShow.ApplyListRes, err error) { +func (p *ArtShowProvider) ApplyList(_ context.Context, req *artShow.ApplyListReq) (res *artShow.ApplyListRes, err error) { res = new(artShow.ApplyListRes) if req.Page == 0 { req.Page = 1 @@ -63,13 +63,13 @@ func (p *ArtShowProvider) ApplyList(ctx context.Context, req *artShow.ApplyListR return } -func (p *ArtShowProvider) ApplyDetail(ctx context.Context, req *artShow.ApplyShowReq) (res *artShow.ApplyShowRes, err error) { - if req.ApplyID == 0 { +func (p *ArtShowProvider) ApplyDetail(_ context.Context, req *artShow.ApplyShowReq) (res *artShow.ApplyShowRes, err error) { + if req.ApplyUID == "" { err = errors.New(m.ERROR_INVALID_ID) return } res = new(artShow.ApplyShowRes) - err, res = service.ShowApplyDetail(uint(req.ApplyID)) + err, res = service.ShowApplyDetail(req.ApplyUID) if err != nil { res.Msg = err.Error() err = errors.New(m.ERROR_QUERY) @@ -78,13 +78,13 @@ func (p *ArtShowProvider) ApplyDetail(ctx context.Context, req *artShow.ApplySho return } -func (p *ArtShowProvider) DelApply(ctx context.Context, req *artShow.DelApplyReq) (res *artShow.CommonRes, err error) { - if len(req.ApplyID) < 1 { +func (p *ArtShowProvider) DelApply(_ context.Context, req *artShow.DelApplyReq) (res *artShow.CommonRes, err error) { + if len(req.ApplyUID) < 1 { err = errors.New(m.ERROR_INVALID_ID) return } res = new(artShow.CommonRes) - err = service.DelApplyByApplyID(req) + err = service.DelApplyByApplyUID(req) if err != nil { res.Msg = err.Error() err = errors.New(m.ERROR_DELETE) @@ -94,8 +94,8 @@ func (p *ArtShowProvider) DelApply(ctx context.Context, req *artShow.DelApplyReq return } -func (p *ArtShowProvider) UpdateApplyStatus(ctx context.Context, req *artShow.UpdateApplyStatusReq) (res *artShow.CommonRes, err error) { - if req.ApplyID == 0 { +func (p *ArtShowProvider) UpdateApplyStatus(_ context.Context, req *artShow.UpdateApplyStatusReq) (res *artShow.CommonRes, err error) { + if req.ApplyUID == "" { err = errors.New(m.ERROR_INVALID_ID) return } diff --git a/cmd/dao/art_show.go b/cmd/dao/art_show.go index a9c7cfd..47f6bf0 100644 --- a/cmd/dao/art_show.go +++ b/cmd/dao/art_show.go @@ -4,17 +4,31 @@ import ( "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/db" + "fonchain-artshow/pkg/m" + uuid "github.com/satori/go.uuid" "go.uber.org/zap" "gorm.io/gorm" + "strconv" + "strings" + "time" ) func SaveArtShow(tx *gorm.DB, artShow *model.ArtShow) (err error) { - - if artShow.ID != uint(0) { - err = tx.Model(&model.ArtShow{}).Omit("id").Where("id = ?", artShow.ID).Updates(&artShow).Error - } else { - err = tx.Model(&model.ArtShow{}).Create(artShow).Error + uid, err := uuid.NewV4() + if err != nil { + return nil } + artShow.ShowUID = uid.String() + artShow.ShowSeq = strings.Replace(artShow.ShowSeq, "T", m.ARTSHOW_PREFIX, -1) + num := countArtistNumInShowCurrentYear(artShow.ArtistUID) + if num < 10 { + artShow.ShowSeq = strings.Join([]string{artShow.ShowSeq, time.Now().Format("06"), "00" + strconv.FormatInt(num, 10)}, "") + } else if num >= 10 && num < 100 { + artShow.ShowSeq = strings.Join([]string{artShow.ShowSeq, time.Now().Format("06"), "0" + strconv.FormatInt(num, 10)}, "") + } else if num >= 100 { + artShow.ShowSeq = strings.Join([]string{artShow.ShowSeq, time.Now().Format("06"), strconv.FormatInt(num, 10)}, "") + } + err = tx.Model(&model.ArtShow{}).Create(&artShow).Error if err != nil { zap.L().Error("ArtShow err", zap.Error(err)) return @@ -23,38 +37,108 @@ func SaveArtShow(tx *gorm.DB, artShow *model.ArtShow) (err error) { return } -func ArtShowList(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShow) { - queryDB := db.DbArtShow.Model(&model.ArtShow{}) - - if in.ArtistID != "" { - queryDB = queryDB.Where("artist_id = ? ", in.ArtistID) - } - if in.StartTime != "" && in.EndTime != "" { - queryDB = queryDB.Where("convert(show_time, date) between ? and ?", in.StartTime, in.EndTime) - } - if in.IsShow != 0 { - queryDB = queryDB.Where("is_show = ?", in.IsShow) - } - - err = queryDB.Count(&total).Error +func UpdateArtShow(tx *gorm.DB, artShow *model.ArtShow) (err error) { + err = tx.Model(&model.ArtShow{}).Omit("show_uid,operator").Where("show_uid = ?", artShow.ShowUID).Updates(artShow).Error if err != nil { - zap.L().Error("ArtShowList Count err", zap.Error(err)) - return - } - - out = make([]*model.ArtShow, 0) - err = queryDB.Offset(int((in.Page - 1) * in.PageSize)). - Limit(int(in.PageSize)).Find(&out).Error - if err != nil { - zap.L().Error("ArtShowList Find err", zap.Error(err)) + zap.L().Error("ArtShow err", zap.Error(err)) return } return } -func ArtShowList_apply(applyID uint) (err error, out []*model.ArtShow) { - out = make([]*model.ArtShow, 0) - err = db.DbArtShow.Table("art_show as a ").Select("a.*").Distinct("a.id").Joins(" right join show_rel as b on a.id = b.show_id").Where("b.apply_id = ? ", applyID).Find(&out).Error +func ArtShowListWithRel(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShowRes) { + queryDB := db.DbArtShow.Table("art_show as a ").Omit("a.created_at").Distinct("a.id"). + Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.reward ,a.create_time, a.operator, a.is_show, c.address ,c.show_time, a.created_at"). + Joins("left join artwork_price as b on a.show_uid = b.show_uid"). + Joins("left join show_rel as c on a.show_uid = c.show_uid ") + countDB := db.DbArtShow.Table("art_show as a ").Distinct("a.id"). + Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.reward , a.create_time, a.operator, a.is_show, c.address ,c.show_time"). + Joins("left join artwork_price as b on a.show_uid = b.show_uid"). + Joins("left join show_rel as c on a.show_uid = c.show_uid ") + if in.ArtistName != "" { + queryDB.Where(" a.artist_name like ? ", "%"+in.ArtistName+"%") + countDB.Where(" a.artist_name like ? ", "%"+in.ArtistName+"%") + } + if in.ShowName != "" { + queryDB.Where(" a.show_name like ? ", "%"+in.ShowName+"%") + countDB.Where(" a.show_name like ? ", "%"+in.ShowName+"%") + } + if in.ShowSeq != "" { + queryDB.Where(" a.show_seq like ? ", "%"+in.ShowSeq+"%") + countDB.Where(" a.show_seq like ? ", "%"+in.ShowSeq+"%") + } + if in.StartShowTime != "" && in.EndShowTime != "" { + queryDB.Where("c.show_time between ? and ?", in.StartShowTime, in.EndShowTime) + countDB.Where("c.show_time between ? and ?", in.StartShowTime, in.EndShowTime) + } + if in.EndPrice != 0 { + queryDB.Where(" a.price between ? and ?", in.StartPrice, in.EndPrice) + countDB.Where(" a.price between ? and ?", in.StartPrice, in.EndPrice) + } + if in.EndReward != 0 { + queryDB.Where(" a.reward between ? and ?", in.StartReward, in.EndReward) + countDB.Where(" a.reward between ? and ?", in.StartReward, in.EndReward) + } + if in.Address != "" { + queryDB.Where(" c.address like ?", "%"+in.Address+"%") + countDB.Where(" c.address like ?", "%"+in.Address+"%") + } + if len(in.IsShow) > 0 { + queryDB.Where(" a.is_show in ?", in.IsShow) + countDB.Where(" a.is_show in ?", in.IsShow) + } + //selectDb := queryDB + //countDb := queryDB + + out = make([]*model.ArtShowRes, 0) + err = queryDB.Where("a.deleted_at is null and c.deleted_at is null").Offset(int((in.Page - 1) * in.PageSize)). + Limit(int(in.PageSize)).Order("a.created_at desc ").Find(&out).Error + if err != nil { + zap.L().Error("ArtShowList Find err", zap.Error(err)) + return + } + + err = countDB.Where("a.deleted_at is null").Group("a.id").Count(&total).Error + if err != nil { + zap.L().Error("ArtShowList Count err", zap.Error(err)) + return + } + + return +} + +func ArtShowList(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShowRes) { + queryDB := db.DbArtShow.Table("art_show as a ").Omit("a.created_at").Distinct("a.id"). + Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.create_time, a.operator, a.is_show, c.address ,c.show_time, a.created_at"). + Joins("left join show_rel as c on a.show_uid = c.show_uid ") + + countDB := db.DbArtShow.Table("art_show as a ").Distinct("a.id"). + Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.create_time, a.operator, a.is_show, c.address ,c.show_time, a.created_at"). + Joins("left join show_rel as c on a.show_uid = c.show_uid ") + + if len(in.IsShow) > 0 { + queryDB.Where(" is_show in ?", in.IsShow) + countDB.Where(" is_show in ?", in.IsShow) + } + + err = queryDB.Where("a.deleted_at is null and c.deleted_at is null").Offset(int((in.Page - 1) * in.PageSize)). + Limit(int(in.PageSize)).Order("a.created_at desc ").Find(&out).Error + if err != nil { + zap.L().Error("ArtShowList Find err", zap.Error(err)) + return + } + + err = countDB.Where("a.deleted_at is null").Group("a.id").Count(&total).Error + if err != nil { + zap.L().Error("ArtShowList Count err", zap.Error(err)) + return + } + return +} + +func ArtShowList_apply(applyUID string) (err error, out []*model.ArtShowRes) { + out = make([]*model.ArtShowRes, 0) + err = db.DbArtShow.Table("art_show as a ").Distinct("a.show_uid").Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.reward, a.create_time, a.is_show, b.address ,b.show_time").Joins(" right join show_rel as b on a.show_uid = b.show_uid").Where("b.apply_uid = ? ", applyUID).Find(&out).Error if err != nil { zap.L().Error("ArtShowList_apply Find err", zap.Error(err)) return @@ -62,18 +146,16 @@ func ArtShowList_apply(applyID uint) (err error, out []*model.ArtShow) { return } -func ArtShowListByApplyStatus(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShow) { - out = make([]*model.ArtShow, 0) - tx := db.DbArtShow.Table("art_show as a") - - tx.Joins(" left join show_rel as b on b.show_id = a.id").Where("a.is_show = ?", in.IsShow) - err = tx.Count(&total).Error +func ArtShowListByApplyStatus(in *artShow.ShowListReq) (err error, total int64, out []*model.ArtShowRes) { + out = make([]*model.ArtShowRes, 0) + queryDB := db.DbArtShow.Table("art_show as a").Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.create_time, a.is_show, b.address ,b.show_time").Joins(" left join show_rel as b on b.show_uid = a.show_uid").Where("a.is_show = ?", in.IsShow[len(in.IsShow)-1]) + err = queryDB.Count(&total).Error if err != nil { zap.L().Error("ArtShowListByApplyStatus Count err", zap.Error(err)) return } - err = tx.Offset(int((in.Page - 1) * in.PageSize)). + err = queryDB.Offset(int((in.Page - 1) * in.PageSize)). Limit(int(in.PageSize)).Find(&out).Error if err != nil { zap.L().Error("ArtShowListByApplyStatus Find err", zap.Error(err)) @@ -82,17 +164,18 @@ func ArtShowListByApplyStatus(in *artShow.ShowListReq) (err error, total int64, return } -func DelArtShow(in *artShow.DelShowReq) (err error) { - err = db.DbArtShow.Where("id = ?", in.ShowID).Delete(&model.ArtShow{}).Error +func DelArtShow(tx *gorm.DB, showUid string) (err error) { + err = tx.Where("show_uid = ?", showUid).Delete(&model.ArtShow{}).Error if err != nil { zap.L().Error("ArtShow delete err", zap.Error(err)) return } - return + return nil } -func QueryArtShow(id uint) (err error, out *model.ArtShow) { - err = db.DbArtShow.Model(&model.ArtShow{}).Where("id = ?", id).Find(&out).Error +func UniqueShowName(showName string) (out *model.ArtShowRes, err error) { + out = new(model.ArtShowRes) + err = db.DbArtShow.Table("art_show as a ").Select("a.show_uid").Joins("left join show_rel as b on a.show_uid = b.show_uid").Where("a.show_name = ?", showName).Find(&out).Error if err != nil { zap.L().Error("ArtShow Find err", zap.Error(err)) return @@ -100,18 +183,79 @@ func QueryArtShow(id uint) (err error, out *model.ArtShow) { return } -func ShowStatistical(isShow int32) (err error, artistNum int64, packageNum int64) { +func QueryArtShow(showUids []string) (err error, out []*model.ArtShowRes) { + out = make([]*model.ArtShowRes, 0) + err = db.DbArtShow.Table("art_show as a ").Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.create_time, a.operator,a.is_show, b.address ,b.show_time").Joins("left join show_rel as b on a.show_uid = b.show_uid").Where("a.show_uid in ?", showUids).Find(&out).Error + if err != nil { + zap.L().Error("ArtShow Find err", zap.Error(err)) + return + } + return +} +func ShowStatistical(isShow int32) (err error, artistNum, packageNum, totalNum, NotShowNum, ShowHisNum int64) { + + artistNum = 0 err = db.DbArtShow.Model(&model.ArtShow{}).Distinct("artist_name").Where("is_show = ?", isShow).Count(&artistNum).Error if err != nil { zap.L().Error("ShowStatistical artistNum count err", zap.Error(err)) return } + packageNum = 0 err = db.DbArtShow.Model(&model.ArtShow{}).Where("is_show = ?", isShow).Count(&packageNum).Error if err != nil { zap.L().Error("ShowStatistical packageNum count err", zap.Error(err)) return } + + totalNum = 0 + err = db.DbArtShow.Model(&model.ArtShow{}).Count(&totalNum).Error + if err != nil { + zap.L().Error("ShowStatistical totalNum count err", zap.Error(err)) + return + } + + NotShowNum = 0 + err = db.DbArtShow.Table("art_show as a").Distinct("a.artist_uid").Joins(" join artwork_price as b on b.show_uid = a.show_uid").Where("a.is_show in (1,2) and a.deleted_at is null").Count(&NotShowNum).Error + if err != nil { + zap.L().Error("ShowStatistical totalNum count err", zap.Error(err)) + return + } + + ShowHisNum = 0 + err = db.DbArtShow.Table("art_show as a").Distinct("a.artist_uid").Joins(" join artwork_price as b on b.show_uid = a.show_uid").Where("a.is_show = 3 and a.deleted_at is null").Count(&ShowHisNum).Error + if err != nil { + zap.L().Error("ShowStatistical totalNum count err", zap.Error(err)) + return + } + return +} + +func QueryArtShowForArtwork(in *artShow.ShowListForArtworkReq) (err error, total int64, out []*model.ArtShowRes) { + // 查询 画家已出展 画展包 + queryDB := db.DbArtShow.Table("art_show as a ").Select("a.show_uid, a.show_seq, a.show_name, a.artist_name, a.artist_uid, a.artwork_num, a.ruler, a.price, a.create_time, a.is_show, b.address ,b.show_time").Joins("left join show_rel as b on a.show_uid = b.show_uid").Where("a.artist_uid = ? and a.is_show = ?", in.ArtistUID, 3) + + err = queryDB.Count(&total).Error + if err != nil { + zap.L().Error("QueryArtShowForArtwork count err", zap.Error(err)) + return + } + out = make([]*model.ArtShowRes, 0) + err = queryDB.Offset(int((in.Page - 1) * in.PageSize)). + Limit(int(in.PageSize)).Find(&out).Error + if err != nil { + zap.L().Error("QueryArtShowForArtwork err", zap.Error(err)) + return + } + return +} + +func countArtistNumInShowCurrentYear(artistUid string) (num int64) { + err := db.DbArtShow.Table("art_show").Where("artist_uid = ? and date_format(created_at,\"%Y\") = ? ", artistUid, time.Now().Format("2006")).Count(&num).Error + if err != nil { + return -1 + } + num = num + 1 return } diff --git a/cmd/dao/artwork_price.go b/cmd/dao/artwork_price.go index e5d99f2..ccbc4c8 100644 --- a/cmd/dao/artwork_price.go +++ b/cmd/dao/artwork_price.go @@ -3,31 +3,37 @@ package dao import ( "fonchain-artshow/cmd/model" "fonchain-artshow/pkg/db" + uuid "github.com/satori/go.uuid" "go.uber.org/zap" "gorm.io/gorm" ) -func SaveArtworkPrice(tx *gorm.DB, artworks []*model.ArtworkPrice) (err error, ids []uint) { - ids = make([]uint, 0) // 用于记录 更新的记录ID - - for i := 0; i < len(artworks); i++ { - if artworks[i].ID != 0 { - err = tx.Model(&model.ArtworkPrice{}).Omit("id").Where("id = ?", artworks[i].ID).Updates(artworks[i]).Error - } else { - err = tx.Model(&model.ArtworkPrice{}).Create(&artworks[i]).Error - } - if err != nil { - zap.L().Error("Artwork price save err", zap.Error(err)) - return - } - ids = append(ids, artworks[i].ID) +func SaveArtworkPrice(tx *gorm.DB, artwork *model.ArtworkPrice) (err error) { + uid, err := uuid.NewV4() + if err != nil { + return err + } + artwork.ArtworkPriceUID = uid.String() + err = tx.Model(&model.ArtworkPrice{}).Create(&artwork).Error + if err != nil { + zap.L().Error("Artwork price save err", zap.Error(err)) + return } return } -func ArtworkPriceList(showID uint) (err error, out []*model.ArtworkPrice) { +func UpdateArtworkPrice(tx *gorm.DB, artwork *model.ArtworkPrice) (err error) { + err = tx.Model(&model.ArtworkPrice{}).Omit("artwork_price_uid").Where("artwork_price_uid = ?", artwork.ArtworkPriceUID).Updates(artwork).Error + if err != nil { + zap.L().Error("Artwork price save err", zap.Error(err)) + return + } + return +} + +func ArtworkPriceList(showUID string) (err error, out []*model.ArtworkPrice) { out = make([]*model.ArtworkPrice, 0) - err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("show_id = ? ", showID).Find(&out).Error + err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("show_uid = ? ", showUID).Find(&out).Error if err != nil { zap.L().Error("Artwork list err", zap.Error(err)) return @@ -35,9 +41,9 @@ func ArtworkPriceList(showID uint) (err error, out []*model.ArtworkPrice) { return } -func QueryArtworkPrice_artworkID(artworkID int64) (err error, out *model.ArtworkPrice) { +func QueryArtworkPrice_artworkUID(artworkUID string) (err error, out *model.ArtworkPrice) { out = new(model.ArtworkPrice) - err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("artwork_id = ? ", artworkID).Find(&out).Error + err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("artwork_uid = ? ", artworkUID).Find(&out).Error if err != nil { zap.L().Error("Artwork price artwork_id query err", zap.Error(err)) return @@ -45,9 +51,9 @@ func QueryArtworkPrice_artworkID(artworkID int64) (err error, out *model.Artwork return } -func QueryArtworkPrice_id(id uint) (err error, out *model.ArtworkPrice) { +func QueryArtworkPrice_uid(uid string) (err error, out *model.ArtworkPrice) { out = new(model.ArtworkPrice) - err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("id = ? ", id).Find(&out).Error + err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("artwork_price_uid = ? ", uid).Find(&out).Error if err != nil { zap.L().Error("Artwork price id query err", zap.Error(err)) return @@ -55,8 +61,17 @@ func QueryArtworkPrice_id(id uint) (err error, out *model.ArtworkPrice) { return } -func DelArtworkPrice(tx *gorm.DB, ids []uint) (err error) { - err = tx.Where("id in (?)", ids).Delete(&model.ArtworkPrice{}, ids).Error +func DelArtworkPrice(tx *gorm.DB, artworkPriceUids []string) (err error) { + err = tx.Where("artwork_price_uid in (?)", artworkPriceUids).Delete(&model.ArtworkPrice{}).Error + if err != nil { + zap.L().Error("Artwork delete err", zap.Error(err)) + return + } + return +} + +func DelArtworkPrice_showUID(tx *gorm.DB, show_uid string) (err error) { + err = tx.Where("show_uid = ? ", show_uid).Delete(&model.ArtworkPrice{}).Error if err != nil { zap.L().Error("Artwork delete err", zap.Error(err)) return diff --git a/cmd/dao/show_apply.go b/cmd/dao/show_apply.go index 7e4659a..e749279 100644 --- a/cmd/dao/show_apply.go +++ b/cmd/dao/show_apply.go @@ -5,23 +5,36 @@ import ( "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/db" "fonchain-artshow/pkg/m" + uuid "github.com/satori/go.uuid" "go.uber.org/zap" "gorm.io/gorm" + "strings" + "time" ) -func SaveShowApply(showApply *model.ShowApply) (tx *gorm.DB, err error) { - tx = db.DbArtShow.Begin() - - if showApply.ID != uint(0) { - err = tx.Model(&model.ShowApply{}).Omit("id").Where("id = ?", showApply.ID).Updates(showApply).Error - } else { - err = tx.Model(&model.ShowApply{}).Create(showApply).Error +func SaveShowApply(showApply *model.ShowApply) (err error) { + uid, err := uuid.NewV4() + if err != nil { + return err } + showApply.ApplyUID = uid.String() + showApply.ApplySeq = strings.Join([]string{m.ARTSHOWAPPLY_PREFIX, time.Now().Format("20060102150405")}, "") + showApply.Status = m.SHOWAPPLYStatusDoing + err = db.DbArtShow.Model(&model.ShowApply{}).Create(&showApply).Error if err != nil { zap.L().Error("ShowApply err", zap.Error(err)) return } + return +} +func UpdateShowApply(showApply *model.ShowApply) (tx *gorm.DB, err error) { + tx = db.DbArtShow.Begin() + err = tx.Model(&model.ShowApply{}).Omit("apply_uid").Where("apply_uid = ?", showApply.ApplyUID).Updates(showApply).Error + if err != nil { + zap.L().Error("ShowApply err", zap.Error(err)) + return + } return } @@ -29,7 +42,7 @@ func ShowApplyList(in *artShow.ApplyListReq) (err error, total int64, out []*mod out = make([]*model.ShowApply, 0) queryDB := db.DbArtShow.Model(&model.ShowApply{}) if in.Status == 0 { - in.Status = m.SHOWAPPLY_ADD + in.Status = m.SHOWAPPLYStatusOk } queryDB.Where("status = ?", in.Status) @@ -51,18 +64,19 @@ func ShowApplyList(in *artShow.ApplyListReq) (err error, total int64, out []*mod return } -func ShowApplyDetail(applyID uint) (err error, out *model.ShowApply) { +func ShowApplyDetail(applyUID string) (err error, out *model.ShowApply) { out = new(model.ShowApply) - err = db.DbArtShow.Model(&model.ShowApply{}).Where("id = ?", applyID).Find(&out).Error + err = db.DbArtShow.Model(&model.ShowApply{}).Where("apply_uid = ?", applyUID).Find(&out).Error if err != nil { zap.L().Error("ShowApplyDetail err", zap.Error(err)) return } return } + func DelShowApply(in *artShow.DelApplyReq) (tx *gorm.DB, err error) { tx = db.DbArtShow.Begin() - err = tx.Delete(&model.ShowApply{}, in.ApplyID).Error + err = tx.Where("apply_uid = ?", in.ApplyUID).Delete(&model.ShowApply{}).Error if err != nil { zap.L().Error("ShowApply delete err", zap.Error(err)) return diff --git a/cmd/dao/show_rel.go b/cmd/dao/show_rel.go index 5c9edcd..a454e80 100644 --- a/cmd/dao/show_rel.go +++ b/cmd/dao/show_rel.go @@ -3,29 +3,52 @@ package dao import ( "fonchain-artshow/cmd/model" "fonchain-artshow/pkg/db" + uuid "github.com/satori/go.uuid" "go.uber.org/zap" "gorm.io/gorm" ) -func SaveShowRels(tx *gorm.DB, showRels []*model.ShowRel) (err error, out []uint) { - out = make([]uint, 0) +func SaveShowRels(tx *gorm.DB, showRels []*model.ShowRel) (err error, out []string) { + out = make([]string, 0) for i := 0; i < len(showRels); i++ { - if showRels[i].ID != 0 { - err = tx.Model(&model.ShowRel{}).Omit("id").Where("id = ?", showRels[i].ID).Updates(showRels[i]).Error - } else { + if showRels[i].ShowRelUID == "" { + uid, err := uuid.NewV4() + if err != nil { + return err, out + } + showRels[i].ShowRelUID = uid.String() err = tx.Model(&model.ShowRel{}).Create(&showRels[i]).Error + if err != nil { + zap.L().Error("ShowRels save err", zap.Error(err)) + return err, nil + } + } else { + err = tx.Model(&model.ShowRel{}).Where("show_uid = ? and apply_uid = ?", showRels[i].ShowUID, showRels[i].ApplyUID).First(&showRels[i]).Error + if err != nil { + zap.L().Error("ShowRels updates err", zap.Error(err)) + return err, nil + } } - if err != nil { - zap.L().Error("ShowRels err", zap.Error(err)) + out = append(out, showRels[i].ApplyUID) + } + return +} + +func UpdateShowRels(tx *gorm.DB, showRels []*model.ShowRel) (err error, out []string) { + out = make([]string, 0) + for i := 0; i < len(showRels); i++ { + results := tx.Model(&model.ShowRel{}).Where("show_uid = ? and apply_uid = ?", showRels[i].ShowUID, showRels[i].ApplyUID).First(&showRels[i]) + if results.Error != nil { + zap.L().Error("ShowRels updates err", zap.Error(err)) return err, nil } - out = append(out, showRels[i].ID) + out = append(out, showRels[i].ApplyUID) } return } func SaveShowRel(tx *gorm.DB, showRel *model.ShowRel) (err error) { - err = tx.Model(&model.ShowRel{}).Where("show_id = ?", showRel.ShowID).Updates(showRel).Error + err = tx.Model(&model.ShowRel{}).Where("show_uid = ?", showRel.ShowUID).Updates(showRel).Error if err != nil { zap.L().Error("ShowRel err", zap.Error(err)) return err @@ -33,8 +56,8 @@ func SaveShowRel(tx *gorm.DB, showRel *model.ShowRel) (err error) { return } -func DelShowRel(tx *gorm.DB, ids []uint) (err error) { - err = tx.Where("id in (?)", ids).Delete(&model.ShowRel{}).Error +func DelShowRel(tx *gorm.DB, showRelUIDs []string) (err error) { + err = tx.Where("show_rel_uid in (?)", showRelUIDs).Delete(&model.ShowRel{}).Error if err != nil { zap.L().Error("ShowRel delete err", zap.Error(err)) return @@ -42,20 +65,20 @@ func DelShowRel(tx *gorm.DB, ids []uint) (err error) { return } -func DelShowRelByApplyID(tx *gorm.DB, applyID uint) (err error) { - err = tx.Where("apply_id = ? ", applyID).Delete(&model.ShowRel{}).Error +func DelShowRelByApplyUID(tx *gorm.DB, applyUID string) (err error) { + err = tx.Where("apply_uid = ? ", applyUID).Delete(&model.ShowRel{}).Error if err != nil { - zap.L().Error("ShowRel by applyID delete err", zap.Error(err)) + zap.L().Error("ShowRel by applyUID delete err", zap.Error(err)) return } return } -func QueryShowRel(showID uint) (err error, out *model.ShowRel) { +func QueryShowRel_showUID(showUID string) (err error, out *model.ShowRel) { out = new(model.ShowRel) findDB := db.DbArtShow.Model(&model.ShowRel{}) - if showID != 0 { - findDB = findDB.Where("id = ? ", showID) + if showUID != "" { + findDB = findDB.Where("show_uid = ? ", showUID) } err = findDB.Find(&out).Error if err != nil { @@ -65,11 +88,11 @@ func QueryShowRel(showID uint) (err error, out *model.ShowRel) { return } -func QueryShowRelList(applyID uint) (err error, out []*model.ShowRel) { +func QueryShowRelList(applyUID string) (err error, out []*model.ShowRel) { out = make([]*model.ShowRel, 0) findDB := db.DbArtShow.Model(&model.ShowRel{}) - if applyID != 0 { - findDB = findDB.Where("apply_id = ? ", applyID) + if applyUID != "" { + findDB = findDB.Where("apply_uid = ? ", applyUID) } err = findDB.Find(&out).Error if err != nil { @@ -78,3 +101,20 @@ func QueryShowRelList(applyID uint) (err error, out []*model.ShowRel) { } return } + +func QueryShowRel(applyUID, showUID string) (err error, out *model.ShowRel) { + out = new(model.ShowRel) + findDB := db.DbArtShow.Model(&model.ShowRel{}) + if showUID != "" { + findDB = findDB.Where("show_uid = ? ", showUID) + } + if applyUID != "" { + findDB = findDB.Where("apply_uid = ? ", applyUID) + } + err = findDB.Find(&out).Error + if err != nil { + zap.L().Error("QueryShowRel err", zap.Error(err)) + return + } + return +} diff --git a/cmd/main.go b/cmd/main.go index d4601dc..5b08534 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -2,20 +2,19 @@ package main import ( "fmt" - "fonchain-artshow/pb/artShow" - "google.golang.org/grpc" - - //grpc_go "github.com/dubbogo/grpc-go" + "fonchain-artshow/cmd/controller" + grpc2 "fonchain-artshow/pb/grpc" "net" - "fonchain-artshow/cmd/controller" + "google.golang.org/grpc" + "fonchain-artshow/pkg/db" "fonchain-artshow/pkg/logger" "fonchain-artshow/pkg/m" ) type server struct { - artShow.UnimplementedArtShowServer + grpc2.UnimplementedArtShowServer } func main() { @@ -25,8 +24,8 @@ func main() { return } - s := grpc.NewServer() // 创建gRPC服务器 - artShow.RegisterArtShowServer(s, &controller.ArtShowProvider{}) // 在gRPC服务端注册服务 + s := grpc.NewServer() // 创建gRPC服务器 + grpc2.RegisterArtShowServer(s, &controller.ArtShowProvider{}) // 在gRPC服务端注册服务 db.Init(m.SERVER_CONFIG) //初始化zap diff --git a/cmd/model/art_show.go b/cmd/model/art_show.go index 5b48147..c6be0b0 100644 --- a/cmd/model/art_show.go +++ b/cmd/model/art_show.go @@ -5,14 +5,34 @@ import "gorm.io/gorm" type ArtShow struct { gorm.Model + ShowUID string `json:"show_uid" gorm:"show_uid"` ShowSeq string `json:"show_seq" gorm:"show_seq"` // 画展包序列 ShowName string `json:"show_name" gorm:"show_name"` // 画展包名称 ArtistName string `json:"artist_name" gorm:"artist_name"` // 画家 - ArtistID string `json:"artist_id" gorm:"artist_id"` // 画家ID + ArtistUID string `json:"artist_uid" gorm:"artist_uid"` // 画家ID ArtworkNum int32 `json:"artwork_num" gorm:"artwork_num"` // 画作数量 Ruler int32 `json:"ruler" gorm:"ruler"` // 画作总平尺 Price int64 `json:"price" gorm:"price"` // 画展包价格 Reward int64 `json:"reward" gorm:"reward"` // 润格 - ShowTime string `json:"show_time" gorm:"show_time"` // 画展时间 + CreateTime string `json:"create_time" gorm:"create_time"` // 创建时间 + Operator string `json:"operator" gorm:"operator"` // 操作人 IsShow int8 `json:"is_show" gorm:"is_show"` // 是否出展 1,内部(default) 2,可展 3,已展 } + +type ArtShowRes struct { + ShowUID string `json:"show_uid" gorm:"show_uid"` + ShowSeq string `json:"show_seq" gorm:"show_seq"` // 画展包序列 + ShowName string `json:"show_name" gorm:"show_name"` // 画展包名称 + ArtistName string `json:"artist_name" gorm:"artist_name"` // 画家 + ArtistUID string `json:"artist_uid" gorm:"artist_uid"` // 画家ID + ArtworkNum int32 `json:"artwork_num" gorm:"artwork_num"` // 画作数量 + Ruler int32 `json:"ruler" gorm:"ruler"` // 画作总平尺 + Price int64 `json:"price" gorm:"price"` // 画展包价格 + Reward int64 `json:"reward" gorm:"reward"` // 润格 + CreateTime string `json:"create_time" gorm:"create_time"` // 创建时间 + Operator string `json:"operator" gorm:"operator"` // 操作人 + IsShow int8 `json:"is_show" gorm:"is_show"` // 是否出展 1,内部(default) 2,可展 3,已展 + + Address string `json:"address" gorm:"address"` // 地点 + ShowTime string `json:"show_time" gorm:"show_time"` // 时间 +} diff --git a/cmd/model/artwork_price.go b/cmd/model/artwork_price.go index f525cb3..fab9dae 100644 --- a/cmd/model/artwork_price.go +++ b/cmd/model/artwork_price.go @@ -5,17 +5,20 @@ import "gorm.io/gorm" type ArtworkPrice struct { gorm.Model - ShowID uint `json:"show_id" gorm:"show_id"` // 画展ID - ArtworkID int64 `json:"artwork_id" gorm:"artwork_id"` // 画作ID - ArtworkName string `json:"artwork_name" gorm:"artwork_name"` // 画作名称 - ArtistName string `json:"artist_name" gorm:"artist_name"` // 画家名称 - SmallPic string `json:"small_pic" gorm:"small_pic"` // 画作小图 - Price int64 `json:"price" gorm:"price"` // 总价 - RulerPrice int64 `json:"ruler_price" gorm:"ruler_price"` // 平尺价 - Ruler int32 `json:"ruler" gorm:"ruler"` // 画作平尺 - ArtworkPrice int64 `json:"artwork_price" gorm:"artwork_price"` // 画作价格 - MarketPrice int64 `json:"market_price" gorm:"market_price"` // 市场价 - CopyrightPrice int64 `json:"copyright_price" gorm:"copyright_price"` // 版权价格 - ArtistPrice int64 `json:"artist_price" gorm:"artist_price"` // 画家价格 (润格 * 平尺) - FloatPrice int64 `json:"float_price" gorm:"float_price"` // 浮动价格 + ArtworkPriceUID string `json:"artwork_price_uid" gorm:"artwork_price_uid"` + ShowUID string `json:"show_uid" gorm:"show_uid"` // 画展ID + ArtworkUID string `json:"artwork_uid" gorm:"artwork_uid"` // 画作ID + ArtworkName string `json:"artwork_name" gorm:"artwork_name"` // 画作名称 + ArtistName string `json:"artist_name" gorm:"artist_name"` // 画家名称 + SmallPic string `json:"small_pic" gorm:"small_pic"` // 画作小图 + Price int64 `json:"price" gorm:"price"` // 总价 + RulerPrice int64 `json:"ruler_price" gorm:"ruler_price"` // 平尺价 + Length int32 `json:"length" gorm:"length"` // 画作长度 + Width int32 `json:"width" gorm:"width"` // 画作宽度 + Ruler int32 `json:"ruler" gorm:"ruler"` // 画作平尺 + ArtworkPrice int64 `json:"artwork_price" gorm:"artwork_price"` // 画作价格 + MarketPrice int64 `json:"market_price" gorm:"market_price"` // 市场价 + CopyrightPrice int64 `json:"copyright_price" gorm:"copyright_price"` // 版权价格 + ArtistPrice int64 `json:"artist_price" gorm:"artist_price"` // 画家价格 (润格 * 平尺) + FloatPrice int64 `json:"float_price" gorm:"float_price"` // 浮动价格 } diff --git a/cmd/model/show_apply.go b/cmd/model/show_apply.go index d7fecc3..ec5edc3 100644 --- a/cmd/model/show_apply.go +++ b/cmd/model/show_apply.go @@ -7,11 +7,12 @@ import ( type ShowApply struct { gorm.Model + ApplyUID string `json:"apply_uid" gorm:"apply_uid"` ApplySeq string `json:"apply_seq" gorm:"apply_seq"` // 画展包申请序列号 Applicant string `json:"applicant" gorm:"applicant"` // 申请人 - ApplicantID uint `json:"applicant_id" gorm:"applicant_id"` // 申请人 + ApplicantID string `json:"applicant_id" gorm:"applicant_id"` // 申请人 Num int32 `json:"num" gorm:"num"` // 申请画展包数量 ApplyTime string `json:"apply_time" gorm:"apply_time"` // 申请时间 - Status int `json:"status" gorm:"status"` // 申请画展包状态 10,创建 11,数量审批 12,数量审批驳回 13,关联画展包 14,画展包关联审批 15,关联审批驳回 16,可展 + Status int `json:"status" gorm:"status"` // 申请画展包状态 Remark string `json:"remark" gorm:"remark"` // 备注 } diff --git a/cmd/model/show_rel.go b/cmd/model/show_rel.go index f519432..575a71e 100644 --- a/cmd/model/show_rel.go +++ b/cmd/model/show_rel.go @@ -5,12 +5,10 @@ import "gorm.io/gorm" type ShowRel struct { gorm.Model - //ShowSeq string `json:"show_seq" gorm:"show_seq"` // 画展包序列 - ShowID uint `json:"show_id" gorm:"show_id"` // 画展包ID - //ApplySeq string `json:"apply_seq" gorm:"apply_seq"` // 申请序列 - ApplyID uint `json:"apply_id" gorm:"apply_id"` // 申请ID - Index int32 `json:"index" gorm:"index"` // 申请下标 - Address string `json:"address" gorm:"address"` // 参展地址 - //Status int32 `json:"status" gorm:"status"` // 参展状态 1、待展 2、驳回 3、可展 - //Remark string `json:"remark" gorm:"remark"` // 备注 + ShowRelUID string `json:"show_rel_uid" gorm:"show_rel_uid"` // 画展包申请关联画展UID + ShowUID string `json:"show_uid" gorm:"show_uid"` // 画展包ID + ApplyUID string `json:"apply_uid" gorm:"show_uid"` // 申请ID + Index int32 `json:"index" gorm:"index"` // 申请下标 + Address string `json:"address" gorm:"address"` // 参展地址 + ShowTime string `json:"show_time" gorm:"show_time"` // 画展时间 } diff --git a/cmd/service/art_show.go b/cmd/service/art_show.go index 8c9cd22..e1672c6 100644 --- a/cmd/service/art_show.go +++ b/cmd/service/art_show.go @@ -1,18 +1,28 @@ package service import ( + "errors" "fonchain-artshow/cmd/dao" "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/db" "fonchain-artshow/pkg/m" "fonchain-artshow/pkg/serializer" - "fonchain-artshow/pkg/utils" ) -func CreateArtShowWithArtworkPrice(in *artShow.SaveShowReq) (err error, showID uint) { +// 创建 画展包 及 关联画作 +func CreateArtShowWithArtworkPrice(in *artShow.SaveShowReq) (err error, showUID string) { artShowM := serializer.BuildArtShowM(in) + out, err := dao.UniqueShowName(in.ShowName) + if err != nil { + return err, "" + } + + if out.ShowUID != "" { + return errors.New(m.ERROR_SHOW_EXIST), "" + } + tx := db.DbArtShow.Begin() err = dao.SaveArtShow(tx, artShowM) @@ -21,111 +31,145 @@ func CreateArtShowWithArtworkPrice(in *artShow.SaveShowReq) (err error, showID u return } - artworks := serializer.BuildShowArtworkM(in.ShowArtwork, artShowM.ID) - - err, artworks = serializer.CalcPrice(artworks, artShowM.Ruler, artShowM.Price) - if err != nil { - return - } - err, artworks = serializer.CalcReward(artworks, artShowM.Reward) - if err != nil { - return - } - - err, _ = dao.SaveArtworkPrice(tx, artworks) - if err != nil { - tx.Rollback() - return + if len(in.Artwork) > 0 { + artworks := serializer.BuildShowArtworkM(in.Artwork, artShowM.ShowUID) + if in.Price > 0 && in.Ruler > 0 { + artworks = serializer.CalcPrice(artShowM.Price, artShowM.Ruler, artworks) + } + for i := 0; i < len(artworks); i++ { + err = dao.SaveArtworkPrice(tx, artworks[i]) + if err != nil { + tx.Rollback() + return errors.New(m.ERROR_ARTWORK_CREATE), "" + } + } } err = tx.Commit().Error - return err, artShowM.ID + return err, artShowM.ShowUID } -func UpdateArtShowWithArtworkPrice(in *artShow.SaveShowReq) (err error, showID uint) { - - err, artworkPrices := dao.ArtworkPriceList(uint(in.ID)) - if err != nil { - return - } - +// 更新 画展包 及 关联画作 +func UpdateArtShowWithArtworkPrice(in *artShow.SaveShowReq) (err error, showUID string) { tx := db.DbArtShow.Begin() artShowM := serializer.BuildArtShowM(in) // 构建画展包数据 artworks := make([]*model.ArtworkPrice, 0) - if len(in.ShowArtwork) < 1 && (in.Price != 0 || in.Reward != 0) { - artworks = artworkPrices - } else { - artworks = serializer.BuildShowArtworkM(in.ShowArtwork, uint(in.ID)) - for i := 0; i < len(artworks); i++ { // 查找 已存在 artwork_price 获取 ruler 信息 - if artworks[i].Ruler == 0 { - err, artwork := dao.QueryArtworkPrice_id(artworks[i].ID) - if err != nil { - return err, 0 + + // 查询是否已有画作存在 + /*err, artworkPrices := dao.ArtworkPriceList(in.ShowUID) + if err != nil { + return + } + fmt.Println("artworkPrices ==== ", artworkPrices) + + if len(artworkPrices) > 0 { + artworks = append(artworks, artworkPrices...) + }*/ + + // 判断是否有新增画作 + if len(in.Artwork) > 0 { + for i := 0; i < len(in.Artwork); i++ { + if in.Artwork[i].ArtworkPriceUID != "" { + queryErr, oldArtwork := dao.QueryArtworkPrice_uid(in.Artwork[i].ArtworkPriceUID) + if queryErr != nil { + return queryErr, "" } - artworks[i].Ruler = artwork.Ruler + artworks = append(artworks, oldArtwork) + //fmt.Println("artworkPrices ==== ", oldArtwork) + } else { + newArtwork := serializer.BuildShowArtwork(in.Artwork[i], in.ShowUID) + artworks = append(artworks, newArtwork) + //fmt.Println("artworkPrices ==== ", newArtwork) } } } + // 更新 画作 if len(artworks) > 0 { - if in.Price != 0 { - err, artworks = serializer.CalcPrice(artworks, artShowM.Ruler, artShowM.Price) - if err != nil { - return + if in.Price > 0 && in.Ruler > 0 { + artworks = serializer.CalcPrice(artShowM.Price, artShowM.Ruler, artworks) + } + + for i := 0; i < len(artworks); i++ { + if artworks[i].ArtworkPriceUID != "" { + // 更新画作价格 + err := dao.UpdateArtworkPrice(tx, artworks[i]) + if err != nil { + tx.Rollback() + return err, "" + } + } else { + err = dao.SaveArtworkPrice(tx, artworks[i]) + if err != nil { + tx.Rollback() + return err, "" + } } } - if in.Reward != 0 { - err, artworks = serializer.CalcReward(artworks, artShowM.Reward) - if err != nil { - return - } + } + + // 删除旧画作 + if len(in.DelArtwork) > 0 { + del := make([]string, 0) + for i := 0; i < len(in.DelArtwork); i++ { + del = append(del, in.DelArtwork[i].ArtworkPriceUID) } - // 更新画作价格 - err, newIDs := dao.SaveArtworkPrice(tx, artworks) + err = dao.DelArtworkPrice(tx, del) if err != nil { tx.Rollback() - return err, 0 - } - // 删除旧画作 - _, del, _ := utils.BeUniqueSlice_uint(serializer.BuildArtworkPriceIDs(artworkPrices), newIDs) - if len(del) > 0 { - err = dao.DelArtworkPrice(tx, del) - if err != nil { - tx.Rollback() - return err, 0 - } + return err, "" } } // 更新画展包 - err = dao.SaveArtShow(tx, artShowM) + err = dao.UpdateArtShow(tx, artShowM) if err != nil { tx.Rollback() return } err = tx.Commit().Error - return err, artShowM.ID + return err, artShowM.ShowUID } +// 删除画展包 func DelArtShow(in *artShow.DelShowReq) (err error) { - err = dao.DelArtShow(in) - if err != nil { - return + queryShowErr, shows := dao.QueryArtShow(in.ShowUID) + if queryShowErr != nil { + return queryShowErr } - // 暂不处理 画展包里的 画作 + tx := db.DbArtShow.Begin() + for i := 0; i < len(shows); i++ { + if shows[i].IsShow != m.ARTSHOW_SHOWING { + delArtShowErr := dao.DelArtShow(tx, in.ShowUID[i]) + if err != nil { + tx.Rollback() + return delArtShowErr + } + delArtworkPriceErr := dao.DelArtworkPrice_showUID(tx, in.ShowUID[i]) + if err != nil { + tx.Rollback() + return delArtworkPriceErr + } + } else { + tx.Rollback() + return errors.New("存在画展包被使用,无法删除") + } + } + err = tx.Commit().Error return } +// 画展包列表 不携带 画展地址 画展时间 func ArtShowList(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) { out = new(artShow.ShowListRes) - artShows := make([]*model.ArtShow, 0) + artShows := make([]*model.ArtShowRes, 0) err, out.Total, artShows = dao.ArtShowList(in) if err != nil { return } - err, out.TotalArtistNum, out.TotalPackageNum = dao.ShowStatistical(m.ARTSHOW_PASS) + err, out.TotalArtistNum, out.TotalPackageNum, _, _, _ = dao.ShowStatistical(m.ARTSHOW_PASS) if err != nil { return } @@ -133,10 +177,27 @@ func ArtShowList(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) return } -func ShowInfo(in *artShow.ShowDetailReq) (err error, out *artShow.ShowArtworkDetailRes) { +// 画展包列表 携带 画展地址 画展时间 +func ArtShowListWithRel(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) { + out = new(artShow.ShowListRes) + artShows := make([]*model.ArtShowRes, 0) + err, out.Total, artShows = dao.ArtShowListWithRel(in) + if err != nil { + return + } + err, out.TotalArtistNum, out.TotalPackageNum, _, _, _ = dao.ShowStatistical(m.ARTSHOW_PASS) + if err != nil { + return + } + out.Data = serializer.BuildArtShowListRes(artShows) + return +} + +// 画展包关联画作信息 +func ShowArtworkInfo(in *artShow.ArtworkDetailReq) (err error, out *artShow.ShowArtworkDetailRes) { out = new(artShow.ShowArtworkDetailRes) artworkPriceS := make([]*model.ArtworkPrice, 0) - err, artworkPriceS = dao.ArtworkPriceList(uint(in.ShowID)) + err, artworkPriceS = dao.ArtworkPriceList(in.ShowUID) if err != nil { return } @@ -144,11 +205,23 @@ func ShowInfo(in *artShow.ShowDetailReq) (err error, out *artShow.ShowArtworkDet return } +// 画展包详情 +func ShowDetail(in *artShow.ShowDetailReq) (err error, out *artShow.ShowDetailRes) { + out = new(artShow.ShowDetailRes) + shows := make([]*model.ArtShowRes, 0) + err, shows = dao.QueryArtShow(in.ShowUID) + if err != nil { + return + } + out.Data = serializer.BuildArtShowListRes(shows) + return +} + func ArtShowListWithApply(in *artShow.ShowListReq) (err error, out *artShow.ShowListRes) { out = new(artShow.ShowListRes) - artShows := make([]*model.ArtShow, 0) + artShows := make([]*model.ArtShowRes, 0) err, out.Total, artShows = dao.ArtShowListByApplyStatus(in) - err, out.TotalArtistNum, out.TotalPackageNum = dao.ShowStatistical(m.ARTSHOW_PASS) + err, out.TotalArtistNum, out.TotalPackageNum, _, _, _ = dao.ShowStatistical(m.ARTSHOW_PASS) if err != nil { return } @@ -158,9 +231,22 @@ func ArtShowListWithApply(in *artShow.ShowListReq) (err error, out *artShow.Show func ShowStatisticalInfo(in *artShow.ShowStatisticalInfoReq) (err error, out *artShow.ShowStatisticalInfoRes_Num) { out = new(artShow.ShowStatisticalInfoRes_Num) - err, out.ArtistNum, out.PackageNum = dao.ShowStatistical(in.IsShow) + err, out.ArtistNum, out.PackageNum, out.TotalNum, out.NotShowNum, out.ShowHisNum = dao.ShowStatistical(in.IsShow) if err != nil { return } return } + +func QueryArtShowForArtwork(in *artShow.ShowListForArtworkReq) (err error, out *artShow.ShowListForArtworkRes) { + out = new(artShow.ShowListForArtworkRes) + err, total, shows := dao.QueryArtShowForArtwork(in) + if err != nil { + return err, out + } + if len(shows) > 0 { + out.Total = total + out.Data = serializer.BuildArtShowListRes(shows) + } + return +} diff --git a/cmd/service/show_apply.go b/cmd/service/show_apply.go index e99228b..aa4df69 100644 --- a/cmd/service/show_apply.go +++ b/cmd/service/show_apply.go @@ -1,80 +1,104 @@ package service import ( + "fmt" "fonchain-artshow/cmd/dao" "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" + "fonchain-artshow/pkg/m" "fonchain-artshow/pkg/serializer" - "fonchain-artshow/pkg/utils" - "gorm.io/gorm" + "log" ) -func CreateShowApply(in *artShow.SaveApplyReq) (err error, applyID uint) { +// 创建画展包申请 +func CreateShowApply(in *artShow.SaveApplyReq) (err error, applyUID string) { showApply := serializer.BuildShowApply(in) - - tx, err := dao.SaveShowApply(showApply) + err = dao.SaveShowApply(showApply) if err != nil { - tx.Rollback() return } - err = tx.Commit().Error - - // 申请画展包时,暂时不携带画展包信息 - /* showRels := serializer.BuildShowRel(in.Rel, showApply.ID) - err = dao.SaveShowRels(tx, showRels) - if err != nil { - tx.Rollback() - return - } - err = tx.Commit().Error*/ - return err, showApply.ID + return err, showApply.ApplyUID } -func UpdateShowApplyWithShowRel(in *artShow.SaveApplyReq) (err error, applyID uint) { +// 更新画展包申请 及 关联记录 +func UpdateShowApplyWithShowRel(in *artShow.SaveApplyReq) (err error, applyUID string) { // 更新画展包申请 showApply := serializer.BuildShowApply(in) - tx, err := dao.SaveShowApply(showApply) + tx, err := dao.UpdateShowApply(showApply) if err != nil { tx.Rollback() return } - // 更新画展包申请关系 + // 更新 关联的 画展包的状态 为 已展 if len(in.Rel) > 0 { - err, oldShowRelS := dao.QueryShowRelList(showApply.ID) // 查找 旧 show_rel - if err != nil { - tx.Rollback() - return err, showApply.ID + // 保存 新 show_rel + newShowRelS := serializer.BuildShowRelM(in.Rel, showApply.ApplyUID) + for i := 0; i < len(newShowRelS); i++ { + log.Printf("%+v\n", newShowRelS[i]) + err, showRel := dao.QueryShowRel(newShowRelS[i].ApplyUID, newShowRelS[i].ShowUID) + if err != nil { + tx.Rollback() + return err, showApply.ApplyUID + } + if showRel.ShowRelUID != "" { + newShowRelS[i].ShowRelUID = showRel.ShowRelUID + } } - newShowRelS := serializer.BuildShowRelM(in.Rel, showApply.ID) - err, newIds := dao.SaveShowRels(tx, newShowRelS) // 保存 新 show_rel + err, _ = dao.SaveShowRels(tx, newShowRelS) + if err != nil { + tx.Rollback() + return err, showApply.ApplyUID + } - if len(oldShowRelS) > 0 { // 如果 旧 show_rel 有数据 则 删除 旧记录(去除 保留下来的) - _, del, _ := utils.BeUniqueSlice_uint(serializer.BuildShowRelIDs(oldShowRelS), newIds) - if len(del) > 0 { - err = dao.DelShowRel(tx, del) - if err != nil { - tx.Rollback() - return err, showApply.ID - } + for i := 0; i < len(newShowRelS); i++ { + // 更新 画展包状态 为 已展 + show := serializer.BuildArtShowIsShowM(newShowRelS[i].ShowUID, m.ARTSHOW_SHOWING) + err := dao.UpdateArtShow(tx, show) + if err != nil { + tx.Rollback() + return err, showApply.ApplyUID } } } + + // 更新 取消关联的 画展包的状态 为 可展 + if len(in.DelRel) > 0 { + del := make([]string, 0) + for i := 0; i < len(in.DelRel); i++ { + del = append(del, in.DelRel[i].ShowRelUID) + + // 更新 画展包状态 为 可展 + show := serializer.BuildArtShowIsShowM(in.DelRel[i].ShowUID, m.ARTSHOW_PASS) + err := dao.UpdateArtShow(tx, show) + if err != nil { + tx.Rollback() + return err, showApply.ApplyUID + } + } + + // 删除关联记录 + err = dao.DelShowRel(tx, del) + if err != nil { + tx.Rollback() + return err, showApply.ApplyUID + } + } + err = tx.Commit().Error - return err, showApply.ID + return err, showApply.ApplyUID } +// 更新画展包申请状态 func UpdateShowApplyStatus(in *artShow.UpdateApplyStatusReq) (err error) { - - // 更新画展包申请 状态 showApply := &model.ShowApply{ - Model: gorm.Model{ID: uint(in.ApplyID)}, - Status: int(in.Status), - Remark: in.Remark, + ApplyUID: in.ApplyUID, + Status: int(in.Status), + Remark: in.Remark, } - tx, err := dao.SaveShowApply(showApply) + tx, err := dao.UpdateShowApply(showApply) if err != nil { tx.Rollback() return @@ -83,6 +107,7 @@ func UpdateShowApplyStatus(in *artShow.UpdateApplyStatusReq) (err error) { return } +// 查询画展包申请列表 func ShowApplyList(in *artShow.ApplyListReq) (err error, total int64, out []*artShow.ApplyDetail) { out = make([]*artShow.ApplyDetail, 0) err, total, applyList := dao.ShowApplyList(in) @@ -98,44 +123,65 @@ func ShowApplyList(in *artShow.ApplyListReq) (err error, total int64, out []*art return } -func ShowApplyDetail(applyID uint) (err error, out *artShow.ApplyShowRes) { +// 查询画展包申请详情 +func ShowApplyDetail(applyUID string) (err error, out *artShow.ApplyShowRes) { out = new(artShow.ApplyShowRes) - err, showApply := dao.ShowApplyDetail(applyID) + err, showApply := dao.ShowApplyDetail(applyUID) if err != nil { return } out.Apply = serializer.BuildShowApplyRes(showApply) - err, artShow := dao.ArtShowList_apply(applyID) + err, artShow := dao.ArtShowList_apply(applyUID) if err != nil { return } out.Show = serializer.BuildArtShowListRes(artShow) + fmt.Println(out.Show) return } -func DelApplyByApplyID(in *artShow.DelApplyReq) (err error) { +// 删除画展包申请记录 +func DelApplyByApplyUID(in *artShow.DelApplyReq) (err error) { tx, err := dao.DelShowApply(in) if err != nil { tx.Rollback() return } - for i := 0; i < len(in.ApplyID); i++ { - err = dao.DelShowRelByApplyID(tx, uint(in.ApplyID[i])) + for i := 0; i < len(in.ApplyUID); i++ { + err = dao.DelShowRelByApplyUID(tx, in.ApplyUID[i]) if err != nil { tx.Rollback() return } + + queryShowRelErr, showRels := dao.QueryShowRelList(in.ApplyUID[i]) + if queryShowRelErr != nil { + tx.Rollback() + return queryShowRelErr + } + if len(showRels) > 0 { + for i := 0; i < len(showRels); i++ { + // 更新 画展包状态 为 可展 + show := serializer.BuildArtShowIsShowM(showRels[i].ShowUID, m.ARTSHOW_PASS) + updateArtShowErr := dao.UpdateArtShow(tx, show) + if updateArtShowErr != nil { + tx.Rollback() + return updateArtShowErr + } + } + } } err = tx.Commit().Error return } -func QueryShowRel(showID uint) (err error, out *model.ShowRel) { +// 查询画展包申请关联记录 +func QueryShowRel_showUID(showUID string) (err error, out *model.ShowRel) { out = new(model.ShowRel) - err, out = dao.QueryShowRel(showID) + err, out = dao.QueryShowRel_showUID(showUID) if err != nil { return err, nil } diff --git a/cmd/service/show_price.go b/cmd/service/show_price.go index a26e3aa..3e04869 100644 --- a/cmd/service/show_price.go +++ b/cmd/service/show_price.go @@ -2,15 +2,26 @@ package service import ( "fonchain-artshow/cmd/dao" + "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/serializer" ) func ArtworkPriceInfo(in *artShow.ArtworkPriceReq) (err error, artworkPriceRes *artShow.ArtworkPriceRes) { - err, artworkPrice := dao.QueryArtworkPrice_artworkID(in.ArtworkID) + err, artworkPrice := dao.QueryArtworkPrice_artworkUID(in.ArtworkUID) if err != nil { return } artworkPriceRes = serializer.BuildArtworkPriceRes(artworkPrice) return } + +func ArtworkPriceList(in *artShow.ShowDetailReq) (err error, artworkPriceList []*artShow.ArtworkPriceDetail) { + list := make([]*model.ArtworkPrice, 0) + artworkPriceList = make([]*artShow.ArtworkPriceDetail, 0) + err, list = dao.ArtworkPriceList(in.ShowUID[len(in.ShowUID)-1]) + if len(list) > 0 { + artworkPriceList = serializer.BuildShowArtworkListRpc(list) + } + return +} diff --git a/conf/conf.ini b/conf/conf.ini index 3a696dd..414078c 100644 --- a/conf/conf.ini +++ b/conf/conf.ini @@ -1,14 +1,61 @@ [system] -mode = dev #正式prod #测试dev +;mode = prod #正式prod #测试dev +mode = prod #正式prod #测试dev +;本地测试 +;[mysql] +;Db = mysql +;DbHost = 127.0.0.1 +;DbPort = 3306 +;DbUser = root +;DbPassWord = 123456 +;DbName = art_show + +;正式服 192.168.12.3 old +;[mysql] +;Db = mysql +;DbHost = mysql +;DbPort = 3306 +;DbUser = root +;DbPassWord = sLl0b7stlbwvZ883TV +;DbName = art_show + +;正式服 172.16.100.30 now [mysql] Db = mysql -DbHost = 172.16.100.99 -DbPort = 9007 -DbUser = artuser -DbPassWord = C250PflXIWv2SQm8 +DbHost = 172.16.100.30 +DbPort = 3306 +DbUser = root +DbPassWord = IhQmhg8HZjDmU=Ove5PnA^D DbName = art_show +;188 +;[mysql] +;Db = mysql +;DbHost = 172.16.100.22 +;DbPort = 9005 +;DbUser = root +;DbPassWord = sLl0b7stlbwvZ883TV +;DbName = art_show + +;214 +[mysql] +;Db = mysql +;DbHost = 172.16.100.99 #214 +;;DbHost = 172.16.39.93 #214 +;DbPort = 9007 +;DbUser = artuser +;DbPassWord = "C250PflXIWv2SQm8" +;DbName = art_show + +;[mysql] +;Db = mysql +;DbHost = 121.229.45.214 #214 +;DbPort = 9007 +;DbUser = artuser +;DbPassWord = "C250PflXIWv2SQm8" +;DbName = art_show + [redis] RedisDB = RedisAddr = 127.0.0.1:6379 @@ -17,7 +64,7 @@ RedisDBNAme = [zap_log] level: "info" -filename: "./runtime/log/artwork_server.log" +filename: "./runtime/log/artshow_server.log" max_size: 200 max_age: 30 max_backups: 7 \ No newline at end of file diff --git a/conf/dubbogo.yaml b/conf/dubbogo.yaml index bb35071..86ac194 100644 --- a/conf/dubbogo.yaml +++ b/conf/dubbogo.yaml @@ -3,7 +3,8 @@ dubbo: demoZK: protocol: zookeeper timeout: 3s - address: 127.0.0.1:2181 + address: zookeeper:2181 # 正式服务 +# address: 127.0.0.1:2181 # 测试服务 protocols: triple: #triple name: tri diff --git a/go.mod b/go.mod index 600287c..edf1978 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f github.com/mwitkow/go-proto-validators v0.3.2 github.com/natefinch/lumberjack v2.0.0+incompatible + github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b github.com/spf13/cast v1.3.0 go.uber.org/zap v1.21.0 google.golang.org/grpc v1.47.0 @@ -110,7 +111,6 @@ require ( github.com/prometheus/procfs v0.7.3 // indirect github.com/prometheus/statsd_exporter v0.21.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect github.com/shirou/gopsutil v3.20.11+incompatible // indirect github.com/shirou/gopsutil/v3 v3.21.6 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect diff --git a/pb/artShow/artshow.pb.go b/pb/artShow/artshow.pb.go index dff0062..3062707 100644 --- a/pb/artShow/artshow.pb.go +++ b/pb/artShow/artshow.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.4 +// protoc-gen-go v1.26.0 +// protoc v3.10.1 // source: pb/artshow.proto package artShow @@ -20,23 +20,25 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// 创建 更新画展包 type SaveShowReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShowName string `protobuf:"bytes,1,opt,name=ShowName,json=show_name,proto3" json:"ShowName,omitempty"` - ArtistName string `protobuf:"bytes,2,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` - ArtistID string `protobuf:"bytes,3,opt,name=ArtistID,json=artist_id,proto3" json:"ArtistID,omitempty"` - ArtworkNum int32 `protobuf:"varint,4,opt,name=ArtworkNum,json=artwork_num,proto3" json:"ArtworkNum,omitempty"` - Ruler int32 `protobuf:"varint,5,opt,name=Ruler,json=ruler,proto3" json:"Ruler,omitempty"` - Price int64 `protobuf:"varint,6,opt,name=Price,json=price,proto3" json:"Price,omitempty"` - Reward int64 `protobuf:"varint,7,opt,name=Reward,json=reward,proto3" json:"Reward,omitempty"` - IsShow int32 `protobuf:"varint,8,opt,name=IsShow,json=is_show,proto3" json:"IsShow,omitempty"` - ShowTime string `protobuf:"bytes,9,opt,name=ShowTime,json=show_time,proto3" json:"ShowTime,omitempty"` - ShowArtwork []*ShowArtworkDetail `protobuf:"bytes,10,rep,name=ShowArtwork,json=show_artwork,proto3" json:"ShowArtwork,omitempty"` - ID int64 `protobuf:"varint,11,opt,name=ID,json=id,proto3" json:"ID,omitempty"` + ShowName string `protobuf:"bytes,1,opt,name=ShowName,json=show_name,proto3" json:"ShowName"` + ArtistName string `protobuf:"bytes,2,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + ArtistUID string `protobuf:"bytes,3,opt,name=ArtistUID,json=artist_uid,proto3" json:"ArtistUID"` + ArtworkNum int32 `protobuf:"varint,4,opt,name=ArtworkNum,json=artwork_num,proto3" json:"ArtworkNum"` + Ruler int32 `protobuf:"varint,5,opt,name=Ruler,json=ruler,proto3" json:"Ruler"` + Price int64 `protobuf:"varint,6,opt,name=Price,json=price,proto3" json:"Price"` + Reward int64 `protobuf:"varint,7,opt,name=Reward,json=reward,proto3" json:"Reward"` + IsShow int32 `protobuf:"varint,8,opt,name=IsShow,json=is_show,proto3" json:"IsShow"` + CreateTime string `protobuf:"bytes,9,opt,name=CreateTime,json=create_time,proto3" json:"CreateTime"` + Operator string `protobuf:"bytes,10,opt,name=Operator,json=operator,proto3" json:"Operator"` + ShowSeq string `protobuf:"bytes,11,opt,name=ShowSeq,json=show_seq,proto3" json:"ShowSeq"` + ShowUID string `protobuf:"bytes,12,opt,name=ShowUID,json=id,proto3" json:"ShowUID"` + Artwork []*ArtworkDetail `protobuf:"bytes,13,rep,name=Artwork,json=show_artwork,proto3" json:"Artwork"` + DelArtwork []*DelArtworkDetail `protobuf:"bytes,14,rep,name=DelArtwork,json=del_show_artwork,proto3" json:"DelArtwork"` } func (x *SaveShowReq) Reset() { @@ -85,9 +87,9 @@ func (x *SaveShowReq) GetArtistName() string { return "" } -func (x *SaveShowReq) GetArtistID() string { +func (x *SaveShowReq) GetArtistUID() string { if x != nil { - return x.ArtistID + return x.ArtistUID } return "" } @@ -127,25 +129,46 @@ func (x *SaveShowReq) GetIsShow() int32 { return 0 } -func (x *SaveShowReq) GetShowTime() string { +func (x *SaveShowReq) GetCreateTime() string { if x != nil { - return x.ShowTime + return x.CreateTime } return "" } -func (x *SaveShowReq) GetShowArtwork() []*ShowArtworkDetail { +func (x *SaveShowReq) GetOperator() string { if x != nil { - return x.ShowArtwork + return x.Operator + } + return "" +} + +func (x *SaveShowReq) GetShowSeq() string { + if x != nil { + return x.ShowSeq + } + return "" +} + +func (x *SaveShowReq) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" +} + +func (x *SaveShowReq) GetArtwork() []*ArtworkDetail { + if x != nil { + return x.Artwork } return nil } -func (x *SaveShowReq) GetID() int64 { +func (x *SaveShowReq) GetDelArtwork() []*DelArtworkDetail { if x != nil { - return x.ID + return x.DelArtwork } - return 0 + return nil } type SaveShowRes struct { @@ -153,8 +176,8 @@ type SaveShowRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` - ShowID int64 `protobuf:"varint,2,opt,name=ShowID,json=show_id,proto3" json:"ShowID,omitempty"` + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg"` + ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` } func (x *SaveShowRes) Reset() { @@ -196,11 +219,11 @@ func (x *SaveShowRes) GetMsg() string { return "" } -func (x *SaveShowRes) GetShowID() int64 { +func (x *SaveShowRes) GetShowUID() string { if x != nil { - return x.ShowID + return x.ShowUID } - return 0 + return "" } type CommonRes struct { @@ -208,7 +231,7 @@ type CommonRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *CommonRes) Reset() { @@ -256,7 +279,7 @@ type ShowDetailReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShowID int64 `protobuf:"varint,1,opt,name=ShowID,json=show_id,proto3" json:"ShowID,omitempty"` + ShowUID []string `protobuf:"bytes,1,rep,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` } func (x *ShowDetailReq) Reset() { @@ -291,11 +314,58 @@ func (*ShowDetailReq) Descriptor() ([]byte, []int) { return file_pb_artshow_proto_rawDescGZIP(), []int{3} } -func (x *ShowDetailReq) GetShowID() int64 { +func (x *ShowDetailReq) GetShowUID() []string { if x != nil { - return x.ShowID + return x.ShowUID } - return 0 + return nil +} + +type ArtworkDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShowUID string `protobuf:"bytes,1,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` +} + +func (x *ArtworkDetailReq) Reset() { + *x = ArtworkDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkDetailReq) ProtoMessage() {} + +func (x *ArtworkDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkDetailReq.ProtoReflect.Descriptor instead. +func (*ArtworkDetailReq) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{4} +} + +func (x *ArtworkDetailReq) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" } type ShowDetail struct { @@ -303,23 +373,26 @@ type ShowDetail struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,json=id,proto3" json:"ID,omitempty"` - ShowSeq string `protobuf:"bytes,2,opt,name=ShowSeq,json=show_seq,proto3" json:"ShowSeq,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=show_name,proto3" json:"ShowName,omitempty"` - ArtistName string `protobuf:"bytes,4,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` - ArtistID string `protobuf:"bytes,5,opt,name=ArtistID,json=artist_id,proto3" json:"ArtistID,omitempty"` - ArtworkNum int32 `protobuf:"varint,6,opt,name=ArtworkNum,json=artwork_num,proto3" json:"ArtworkNum,omitempty"` - Ruler int32 `protobuf:"varint,7,opt,name=Ruler,json=ruler,proto3" json:"Ruler,omitempty"` - Price int64 `protobuf:"varint,8,opt,name=Price,json=price,proto3" json:"Price,omitempty"` - Reward int64 `protobuf:"varint,9,opt,name=Reward,json=reward,proto3" json:"Reward,omitempty"` - ShowTime string `protobuf:"bytes,10,opt,name=ShowTime,json=show_time,proto3" json:"ShowTime,omitempty"` - IsShow int32 `protobuf:"varint,11,opt,name=IsShow,json=is_show,proto3" json:"IsShow,omitempty"` + ShowUID string `protobuf:"bytes,1,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` + ShowSeq string `protobuf:"bytes,2,opt,name=ShowSeq,json=show_seq,proto3" json:"ShowSeq"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=show_name,proto3" json:"ShowName"` + ArtistName string `protobuf:"bytes,4,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,json=artist_uid,proto3" json:"ArtistUID"` + ArtworkNum int32 `protobuf:"varint,6,opt,name=ArtworkNum,json=artwork_num,proto3" json:"ArtworkNum"` + Ruler int32 `protobuf:"varint,7,opt,name=Ruler,json=ruler,proto3" json:"Ruler"` + Price int64 `protobuf:"varint,8,opt,name=Price,json=price,proto3" json:"Price"` + Reward int64 `protobuf:"varint,9,opt,name=Reward,json=reward,proto3" json:"Reward"` + CreateTime string `protobuf:"bytes,10,opt,name=CreateTime,json=create_time,proto3" json:"CreateTime"` + Operator string `protobuf:"bytes,11,opt,name=Operator,json=operator,proto3" json:"Operator"` + IsShow int32 `protobuf:"varint,12,opt,name=IsShow,json=is_show,proto3" json:"IsShow"` + ShowTime string `protobuf:"bytes,13,opt,name=ShowTime,json=show_time,proto3" json:"ShowTime"` + Address string `protobuf:"bytes,14,opt,name=Address,json=address,proto3" json:"Address"` } func (x *ShowDetail) Reset() { *x = ShowDetail{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[4] + mi := &file_pb_artshow_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -332,7 +405,7 @@ func (x *ShowDetail) String() string { func (*ShowDetail) ProtoMessage() {} func (x *ShowDetail) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[4] + mi := &file_pb_artshow_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -345,14 +418,14 @@ func (x *ShowDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowDetail.ProtoReflect.Descriptor instead. func (*ShowDetail) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{4} + return file_pb_artshow_proto_rawDescGZIP(), []int{5} } -func (x *ShowDetail) GetID() int64 { +func (x *ShowDetail) GetShowUID() string { if x != nil { - return x.ID + return x.ShowUID } - return 0 + return "" } func (x *ShowDetail) GetShowSeq() string { @@ -376,9 +449,9 @@ func (x *ShowDetail) GetArtistName() string { return "" } -func (x *ShowDetail) GetArtistID() string { +func (x *ShowDetail) GetArtistUID() string { if x != nil { - return x.ArtistID + return x.ArtistUID } return "" } @@ -411,9 +484,16 @@ func (x *ShowDetail) GetReward() int64 { return 0 } -func (x *ShowDetail) GetShowTime() string { +func (x *ShowDetail) GetCreateTime() string { if x != nil { - return x.ShowTime + return x.CreateTime + } + return "" +} + +func (x *ShowDetail) GetOperator() string { + if x != nil { + return x.Operator } return "" } @@ -425,19 +505,88 @@ func (x *ShowDetail) GetIsShow() int32 { return 0 } +func (x *ShowDetail) GetShowTime() string { + if x != nil { + return x.ShowTime + } + return "" +} + +func (x *ShowDetail) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +type ShowDetailRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ShowDetail `protobuf:"bytes,1,rep,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` +} + +func (x *ShowDetailRes) Reset() { + *x = ShowDetailRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShowDetailRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShowDetailRes) ProtoMessage() {} + +func (x *ShowDetailRes) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShowDetailRes.ProtoReflect.Descriptor instead. +func (*ShowDetailRes) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{6} +} + +func (x *ShowDetailRes) GetData() []*ShowDetail { + if x != nil { + return x.Data + } + return nil +} + +func (x *ShowDetailRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + type ShowArtworkDetailRes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*ShowArtworkDetail `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Data []*ArtworkDetail `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *ShowArtworkDetailRes) Reset() { *x = ShowArtworkDetailRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[5] + mi := &file_pb_artshow_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -450,7 +599,7 @@ func (x *ShowArtworkDetailRes) String() string { func (*ShowArtworkDetailRes) ProtoMessage() {} func (x *ShowArtworkDetailRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[5] + mi := &file_pb_artshow_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -463,10 +612,10 @@ func (x *ShowArtworkDetailRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowArtworkDetailRes.ProtoReflect.Descriptor instead. func (*ShowArtworkDetailRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{5} + return file_pb_artshow_proto_rawDescGZIP(), []int{7} } -func (x *ShowArtworkDetailRes) GetData() []*ShowArtworkDetail { +func (x *ShowArtworkDetailRes) GetData() []*ArtworkDetail { if x != nil { return x.Data } @@ -486,18 +635,25 @@ type ShowListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page,omitempty"` - PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize,omitempty"` - StartTime string `protobuf:"bytes,3,opt,name=StartTime,json=start_time,proto3" json:"StartTime,omitempty"` - EndTime string `protobuf:"bytes,4,opt,name=EndTime,json=end_time,proto3" json:"EndTime,omitempty"` - ArtistID string `protobuf:"bytes,5,opt,name=ArtistID,json=artist_id,proto3" json:"ArtistID,omitempty"` - IsShow int32 `protobuf:"varint,6,opt,name=IsShow,json=is_show,proto3" json:"IsShow,omitempty"` + Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page"` + PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize"` + StartShowTime string `protobuf:"bytes,3,opt,name=StartShowTime,json=start_show_time,proto3" json:"StartShowTime"` + EndShowTime string `protobuf:"bytes,4,opt,name=EndShowTime,json=end_show_time,proto3" json:"EndShowTime"` + ShowSeq string `protobuf:"bytes,5,opt,name=ShowSeq,json=show_seq,proto3" json:"ShowSeq"` + ShowName string `protobuf:"bytes,6,opt,name=ShowName,json=show_name,proto3" json:"ShowName"` + ArtistName string `protobuf:"bytes,7,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + StartPrice int64 `protobuf:"varint,8,opt,name=StartPrice,json=start_price,proto3" json:"StartPrice"` + EndPrice int64 `protobuf:"varint,9,opt,name=EndPrice,json=end_price,proto3" json:"EndPrice"` + StartReward int64 `protobuf:"varint,10,opt,name=StartReward,json=start_reward,proto3" json:"StartReward"` + EndReward int64 `protobuf:"varint,11,opt,name=EndReward,json=end_reward,proto3" json:"EndReward"` + Address string `protobuf:"bytes,12,opt,name=Address,json=address,proto3" json:"Address"` + IsShow []int32 `protobuf:"varint,13,rep,packed,name=IsShow,json=is_show,proto3" json:"IsShow"` } func (x *ShowListReq) Reset() { *x = ShowListReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[6] + mi := &file_pb_artshow_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -510,7 +666,7 @@ func (x *ShowListReq) String() string { func (*ShowListReq) ProtoMessage() {} func (x *ShowListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[6] + mi := &file_pb_artshow_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -523,7 +679,7 @@ func (x *ShowListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowListReq.ProtoReflect.Descriptor instead. func (*ShowListReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{6} + return file_pb_artshow_proto_rawDescGZIP(), []int{8} } func (x *ShowListReq) GetPage() int32 { @@ -540,50 +696,162 @@ func (x *ShowListReq) GetPageSize() int32 { return 0 } -func (x *ShowListReq) GetStartTime() string { +func (x *ShowListReq) GetStartShowTime() string { if x != nil { - return x.StartTime + return x.StartShowTime } return "" } -func (x *ShowListReq) GetEndTime() string { +func (x *ShowListReq) GetEndShowTime() string { if x != nil { - return x.EndTime + return x.EndShowTime } return "" } -func (x *ShowListReq) GetArtistID() string { +func (x *ShowListReq) GetShowSeq() string { if x != nil { - return x.ArtistID + return x.ShowSeq } return "" } -func (x *ShowListReq) GetIsShow() int32 { +func (x *ShowListReq) GetShowName() string { + if x != nil { + return x.ShowName + } + return "" +} + +func (x *ShowListReq) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ShowListReq) GetStartPrice() int64 { + if x != nil { + return x.StartPrice + } + return 0 +} + +func (x *ShowListReq) GetEndPrice() int64 { + if x != nil { + return x.EndPrice + } + return 0 +} + +func (x *ShowListReq) GetStartReward() int64 { + if x != nil { + return x.StartReward + } + return 0 +} + +func (x *ShowListReq) GetEndReward() int64 { + if x != nil { + return x.EndReward + } + return 0 +} + +func (x *ShowListReq) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ShowListReq) GetIsShow() []int32 { if x != nil { return x.IsShow } + return nil +} + +type ShowListForArtworkReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page"` + PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize"` + ArtistUID string `protobuf:"bytes,3,opt,name=ArtistUID,json=artist_uid,proto3" json:"ArtistUID"` +} + +func (x *ShowListForArtworkReq) Reset() { + *x = ShowListForArtworkReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShowListForArtworkReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShowListForArtworkReq) ProtoMessage() {} + +func (x *ShowListForArtworkReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShowListForArtworkReq.ProtoReflect.Descriptor instead. +func (*ShowListForArtworkReq) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{9} +} + +func (x *ShowListForArtworkReq) GetPage() int32 { + if x != nil { + return x.Page + } return 0 } +func (x *ShowListForArtworkReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ShowListForArtworkReq) GetArtistUID() string { + if x != nil { + return x.ArtistUID + } + return "" +} + type ShowListRes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total,omitempty"` - TotalPackageNum int64 `protobuf:"varint,2,opt,name=TotalPackageNum,json=total_package_num,proto3" json:"TotalPackageNum,omitempty"` - TotalArtistNum int64 `protobuf:"varint,3,opt,name=TotalArtistNum,json=total_artist_num,proto3" json:"TotalArtistNum,omitempty"` - Data []*ShowDetail `protobuf:"bytes,4,rep,name=Data,json=data,proto3" json:"Data,omitempty"` - Msg string `protobuf:"bytes,5,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Total int64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total"` + TotalPackageNum int64 `protobuf:"varint,2,opt,name=TotalPackageNum,json=total_package_num,proto3" json:"TotalPackageNum"` + TotalArtistNum int64 `protobuf:"varint,3,opt,name=TotalArtistNum,json=total_artist_num,proto3" json:"TotalArtistNum"` + Data []*ShowDetail `protobuf:"bytes,4,rep,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,5,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *ShowListRes) Reset() { *x = ShowListRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[7] + mi := &file_pb_artshow_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -596,7 +864,7 @@ func (x *ShowListRes) String() string { func (*ShowListRes) ProtoMessage() {} func (x *ShowListRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[7] + mi := &file_pb_artshow_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -609,7 +877,7 @@ func (x *ShowListRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowListRes.ProtoReflect.Descriptor instead. func (*ShowListRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{7} + return file_pb_artshow_proto_rawDescGZIP(), []int{10} } func (x *ShowListRes) GetTotal() int64 { @@ -647,19 +915,82 @@ func (x *ShowListRes) GetMsg() string { return "" } +type ShowListForArtworkRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` + Data []*ShowDetail `protobuf:"bytes,3,rep,name=Data,json=data,proto3" json:"Data"` +} + +func (x *ShowListForArtworkRes) Reset() { + *x = ShowListForArtworkRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShowListForArtworkRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShowListForArtworkRes) ProtoMessage() {} + +func (x *ShowListForArtworkRes) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShowListForArtworkRes.ProtoReflect.Descriptor instead. +func (*ShowListForArtworkRes) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{11} +} + +func (x *ShowListForArtworkRes) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *ShowListForArtworkRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *ShowListForArtworkRes) GetData() []*ShowDetail { + if x != nil { + return x.Data + } + return nil +} + // 删除画展包 type DelShowReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShowID []int64 `protobuf:"varint,1,rep,packed,name=ShowID,json=show_id,proto3" json:"ShowID,omitempty"` + ShowUID []string `protobuf:"bytes,1,rep,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` } func (x *DelShowReq) Reset() { *x = DelShowReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[8] + mi := &file_pb_artshow_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -672,7 +1003,7 @@ func (x *DelShowReq) String() string { func (*DelShowReq) ProtoMessage() {} func (x *DelShowReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[8] + mi := &file_pb_artshow_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -685,48 +1016,50 @@ func (x *DelShowReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DelShowReq.ProtoReflect.Descriptor instead. func (*DelShowReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{8} + return file_pb_artshow_proto_rawDescGZIP(), []int{12} } -func (x *DelShowReq) GetShowID() []int64 { +func (x *DelShowReq) GetShowUID() []string { if x != nil { - return x.ShowID + return x.ShowUID } return nil } // 画展包中画作详情 除价格 -type ShowArtworkDetail struct { +type ArtworkDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,json=id,proto3" json:"ID,omitempty"` - ShowID int64 `protobuf:"varint,2,opt,name=ShowID,json=show_id,proto3" json:"ShowID,omitempty"` - ArtworkID int64 `protobuf:"varint,3,opt,name=ArtworkID,json=artwork_id,proto3" json:"ArtworkID,omitempty"` - ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName,omitempty"` - ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName,omitempty"` - Ruler int32 `protobuf:"varint,6,opt,name=Ruler,json=ruler,proto3" json:"Ruler,omitempty"` - SmallPic string `protobuf:"bytes,7,opt,name=SmallPic,json=small_pic,proto3" json:"SmallPic,omitempty"` + ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,json=artwork_price_uid,proto3" json:"ArtworkPriceUID"` + ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` + ArtworkUID string `protobuf:"bytes,3,opt,name=ArtworkUID,json=artwork_uid,proto3" json:"ArtworkUID"` + ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName"` + ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + Length int32 `protobuf:"varint,6,opt,name=Length,json=length,proto3" json:"Length"` + Width int32 `protobuf:"varint,7,opt,name=Width,json=width,proto3" json:"Width"` + Ruler int32 `protobuf:"varint,8,opt,name=Ruler,json=ruler,proto3" json:"Ruler"` + SmallPic string `protobuf:"bytes,9,opt,name=SmallPic,json=small_pic,proto3" json:"SmallPic"` } -func (x *ShowArtworkDetail) Reset() { - *x = ShowArtworkDetail{} +func (x *ArtworkDetail) Reset() { + *x = ArtworkDetail{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[9] + mi := &file_pb_artshow_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShowArtworkDetail) String() string { +func (x *ArtworkDetail) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShowArtworkDetail) ProtoMessage() {} +func (*ArtworkDetail) ProtoMessage() {} -func (x *ShowArtworkDetail) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[9] +func (x *ArtworkDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -737,73 +1070,350 @@ func (x *ShowArtworkDetail) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ShowArtworkDetail.ProtoReflect.Descriptor instead. -func (*ShowArtworkDetail) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{9} +// Deprecated: Use ArtworkDetail.ProtoReflect.Descriptor instead. +func (*ArtworkDetail) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{13} } -func (x *ShowArtworkDetail) GetID() int64 { +func (x *ArtworkDetail) GetArtworkPriceUID() string { if x != nil { - return x.ID + return x.ArtworkPriceUID } - return 0 + return "" } -func (x *ShowArtworkDetail) GetShowID() int64 { +func (x *ArtworkDetail) GetShowUID() string { if x != nil { - return x.ShowID + return x.ShowUID } - return 0 + return "" } -func (x *ShowArtworkDetail) GetArtworkID() int64 { +func (x *ArtworkDetail) GetArtworkUID() string { if x != nil { - return x.ArtworkID + return x.ArtworkUID } - return 0 + return "" } -func (x *ShowArtworkDetail) GetArtworkName() string { +func (x *ArtworkDetail) GetArtworkName() string { if x != nil { return x.ArtworkName } return "" } -func (x *ShowArtworkDetail) GetArtistName() string { +func (x *ArtworkDetail) GetArtistName() string { if x != nil { return x.ArtistName } return "" } -func (x *ShowArtworkDetail) GetRuler() int32 { +func (x *ArtworkDetail) GetLength() int32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *ArtworkDetail) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *ArtworkDetail) GetRuler() int32 { if x != nil { return x.Ruler } return 0 } -func (x *ShowArtworkDetail) GetSmallPic() string { +func (x *ArtworkDetail) GetSmallPic() string { if x != nil { return x.SmallPic } return "" } +// 画作详情 +type ArtworkPriceDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,json=artwork_price_uid,proto3" json:"ArtworkPriceUID"` + ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` + ArtworkUID string `protobuf:"bytes,3,opt,name=ArtworkUID,json=artwork_uid,proto3" json:"ArtworkUID"` + ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,json=artwork_name,proto3" json:"ArtworkName"` + ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,json=artist_name,proto3" json:"ArtistName"` + Length int32 `protobuf:"varint,6,opt,name=Length,json=length,proto3" json:"Length"` + Width int32 `protobuf:"varint,7,opt,name=Width,json=width,proto3" json:"Width"` + Ruler int32 `protobuf:"varint,8,opt,name=Ruler,json=ruler,proto3" json:"Ruler"` + SmallPic string `protobuf:"bytes,9,opt,name=SmallPic,json=small_pic,proto3" json:"SmallPic"` + Price int64 `protobuf:"varint,10,opt,name=Price,json=price,proto3" json:"Price"` + RulerPrice int64 `protobuf:"varint,11,opt,name=RulerPrice,json=ruler_price,proto3" json:"RulerPrice"` + ArtworkPrice int64 `protobuf:"varint,12,opt,name=ArtworkPrice,json=artwork_price,proto3" json:"ArtworkPrice"` + MarketPrice int64 `protobuf:"varint,13,opt,name=MarketPrice,json=market_price,proto3" json:"MarketPrice"` + CopyrightPrice int64 `protobuf:"varint,14,opt,name=CopyrightPrice,json=copyright_price,proto3" json:"CopyrightPrice"` +} + +func (x *ArtworkPriceDetail) Reset() { + *x = ArtworkPriceDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkPriceDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkPriceDetail) ProtoMessage() {} + +func (x *ArtworkPriceDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkPriceDetail.ProtoReflect.Descriptor instead. +func (*ArtworkPriceDetail) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{14} +} + +func (x *ArtworkPriceDetail) GetArtworkPriceUID() string { + if x != nil { + return x.ArtworkPriceUID + } + return "" +} + +func (x *ArtworkPriceDetail) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" +} + +func (x *ArtworkPriceDetail) GetArtworkUID() string { + if x != nil { + return x.ArtworkUID + } + return "" +} + +func (x *ArtworkPriceDetail) GetArtworkName() string { + if x != nil { + return x.ArtworkName + } + return "" +} + +func (x *ArtworkPriceDetail) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ArtworkPriceDetail) GetLength() int32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *ArtworkPriceDetail) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *ArtworkPriceDetail) GetRuler() int32 { + if x != nil { + return x.Ruler + } + return 0 +} + +func (x *ArtworkPriceDetail) GetSmallPic() string { + if x != nil { + return x.SmallPic + } + return "" +} + +func (x *ArtworkPriceDetail) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *ArtworkPriceDetail) GetRulerPrice() int64 { + if x != nil { + return x.RulerPrice + } + return 0 +} + +func (x *ArtworkPriceDetail) GetArtworkPrice() int64 { + if x != nil { + return x.ArtworkPrice + } + return 0 +} + +func (x *ArtworkPriceDetail) GetMarketPrice() int64 { + if x != nil { + return x.MarketPrice + } + return 0 +} + +func (x *ArtworkPriceDetail) GetCopyrightPrice() int64 { + if x != nil { + return x.CopyrightPrice + } + return 0 +} + +type ArtworkPriceListRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*ArtworkPriceDetail `protobuf:"bytes,1,rep,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` +} + +func (x *ArtworkPriceListRes) Reset() { + *x = ArtworkPriceListRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtworkPriceListRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtworkPriceListRes) ProtoMessage() {} + +func (x *ArtworkPriceListRes) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtworkPriceListRes.ProtoReflect.Descriptor instead. +func (*ArtworkPriceListRes) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{15} +} + +func (x *ArtworkPriceListRes) GetData() []*ArtworkPriceDetail { + if x != nil { + return x.Data + } + return nil +} + +func (x *ArtworkPriceListRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +// 画展包 删除的画作信息 +type DelArtworkDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,json=artwork_price_uid,proto3" json:"ArtworkPriceUID"` + ArtworkUID string `protobuf:"bytes,2,opt,name=ArtworkUID,json=artwork_uid,proto3" json:"ArtworkUID"` +} + +func (x *DelArtworkDetail) Reset() { + *x = DelArtworkDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelArtworkDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelArtworkDetail) ProtoMessage() {} + +func (x *DelArtworkDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelArtworkDetail.ProtoReflect.Descriptor instead. +func (*DelArtworkDetail) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{16} +} + +func (x *DelArtworkDetail) GetArtworkPriceUID() string { + if x != nil { + return x.ArtworkPriceUID + } + return "" +} + +func (x *DelArtworkDetail) GetArtworkUID() string { + if x != nil { + return x.ArtworkUID + } + return "" +} + // 画展包 画家 画作 统计数据 type ShowStatisticalInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IsShow int32 `protobuf:"varint,1,opt,name=IsShow,json=is_show,proto3" json:"IsShow,omitempty"` + IsShow int32 `protobuf:"varint,1,opt,name=IsShow,json=is_show,proto3" json:"IsShow"` } func (x *ShowStatisticalInfoReq) Reset() { *x = ShowStatisticalInfoReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[10] + mi := &file_pb_artshow_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -816,7 +1426,7 @@ func (x *ShowStatisticalInfoReq) String() string { func (*ShowStatisticalInfoReq) ProtoMessage() {} func (x *ShowStatisticalInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[10] + mi := &file_pb_artshow_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -829,7 +1439,7 @@ func (x *ShowStatisticalInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowStatisticalInfoReq.ProtoReflect.Descriptor instead. func (*ShowStatisticalInfoReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{10} + return file_pb_artshow_proto_rawDescGZIP(), []int{17} } func (x *ShowStatisticalInfoReq) GetIsShow() int32 { @@ -844,14 +1454,14 @@ type ShowStatisticalInfoRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *ShowStatisticalInfoRes_Num `protobuf:"bytes,1,opt,name=Data,json=data,proto3" json:"Data,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Data *ShowStatisticalInfoRes_Num `protobuf:"bytes,1,opt,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *ShowStatisticalInfoRes) Reset() { *x = ShowStatisticalInfoRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[11] + mi := &file_pb_artshow_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -864,7 +1474,7 @@ func (x *ShowStatisticalInfoRes) String() string { func (*ShowStatisticalInfoRes) ProtoMessage() {} func (x *ShowStatisticalInfoRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[11] + mi := &file_pb_artshow_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -877,7 +1487,7 @@ func (x *ShowStatisticalInfoRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowStatisticalInfoRes.ProtoReflect.Descriptor instead. func (*ShowStatisticalInfoRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{11} + return file_pb_artshow_proto_rawDescGZIP(), []int{18} } func (x *ShowStatisticalInfoRes) GetData() *ShowStatisticalInfoRes_Num { @@ -899,13 +1509,13 @@ type ArtworkPriceReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtworkID int64 `protobuf:"varint,1,opt,name=ArtworkID,json=artwork_id,proto3" json:"ArtworkID,omitempty"` + ArtworkUID string `protobuf:"bytes,1,opt,name=ArtworkUID,json=artwork_uid,proto3" json:"ArtworkUID"` } func (x *ArtworkPriceReq) Reset() { *x = ArtworkPriceReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[12] + mi := &file_pb_artshow_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -918,7 +1528,7 @@ func (x *ArtworkPriceReq) String() string { func (*ArtworkPriceReq) ProtoMessage() {} func (x *ArtworkPriceReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[12] + mi := &file_pb_artshow_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -931,14 +1541,14 @@ func (x *ArtworkPriceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPriceReq.ProtoReflect.Descriptor instead. func (*ArtworkPriceReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{12} + return file_pb_artshow_proto_rawDescGZIP(), []int{19} } -func (x *ArtworkPriceReq) GetArtworkID() int64 { +func (x *ArtworkPriceReq) GetArtworkUID() string { if x != nil { - return x.ArtworkID + return x.ArtworkUID } - return 0 + return "" } type ArtworkPriceRes struct { @@ -946,14 +1556,14 @@ type ArtworkPriceRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *ArtworkPriceRes_PriceInfo `protobuf:"bytes,1,opt,name=Data,json=data,proto3" json:"Data,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Data *ArtworkPriceRes_PriceInfo `protobuf:"bytes,1,opt,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,2,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *ArtworkPriceRes) Reset() { *x = ArtworkPriceRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[13] + mi := &file_pb_artshow_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -966,7 +1576,7 @@ func (x *ArtworkPriceRes) String() string { func (*ArtworkPriceRes) ProtoMessage() {} func (x *ArtworkPriceRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[13] + mi := &file_pb_artshow_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -979,7 +1589,7 @@ func (x *ArtworkPriceRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPriceRes.ProtoReflect.Descriptor instead. func (*ArtworkPriceRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{13} + return file_pb_artshow_proto_rawDescGZIP(), []int{20} } func (x *ArtworkPriceRes) GetData() *ArtworkPriceRes_PriceInfo { @@ -1001,17 +1611,18 @@ type ShowRel struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,json=id,proto3" json:"ID,omitempty"` - ApplyID int64 `protobuf:"varint,2,opt,name=ApplyID,json=apply_id,proto3" json:"ApplyID,omitempty"` - ShowID int64 `protobuf:"varint,3,opt,name=ShowID,json=show_id,proto3" json:"ShowID,omitempty"` - Index int32 `protobuf:"varint,4,opt,name=Index,json=index,proto3" json:"Index,omitempty"` - Address string `protobuf:"bytes,5,opt,name=Address,json=address,proto3" json:"Address,omitempty"` + ShowRelUID string `protobuf:"bytes,1,opt,name=ShowRelUID,json=show_rel_uid,proto3" json:"ShowRelUID"` + ApplyUID string `protobuf:"bytes,2,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` + ShowUID string `protobuf:"bytes,3,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` + Index int32 `protobuf:"varint,4,opt,name=Index,json=index,proto3" json:"Index"` + Address string `protobuf:"bytes,5,opt,name=Address,json=address,proto3" json:"Address"` + ShowTime string `protobuf:"bytes,6,opt,name=ShowTime,json=show_time,proto3" json:"ShowTime"` } func (x *ShowRel) Reset() { *x = ShowRel{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[14] + mi := &file_pb_artshow_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1024,7 +1635,7 @@ func (x *ShowRel) String() string { func (*ShowRel) ProtoMessage() {} func (x *ShowRel) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[14] + mi := &file_pb_artshow_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1037,28 +1648,28 @@ func (x *ShowRel) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowRel.ProtoReflect.Descriptor instead. func (*ShowRel) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{14} + return file_pb_artshow_proto_rawDescGZIP(), []int{21} } -func (x *ShowRel) GetID() int64 { +func (x *ShowRel) GetShowRelUID() string { if x != nil { - return x.ID + return x.ShowRelUID } - return 0 + return "" } -func (x *ShowRel) GetApplyID() int64 { +func (x *ShowRel) GetApplyUID() string { if x != nil { - return x.ApplyID + return x.ApplyUID } - return 0 + return "" } -func (x *ShowRel) GetShowID() int64 { +func (x *ShowRel) GetShowUID() string { if x != nil { - return x.ShowID + return x.ShowUID } - return 0 + return "" } func (x *ShowRel) GetIndex() int32 { @@ -1075,25 +1686,88 @@ func (x *ShowRel) GetAddress() string { return "" } +func (x *ShowRel) GetShowTime() string { + if x != nil { + return x.ShowTime + } + return "" +} + +type DelShowRel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShowRelUID string `protobuf:"bytes,1,opt,name=ShowRelUID,json=show_rel_uid,proto3" json:"ShowRelUID"` + ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,json=show_uid,proto3" json:"ShowUID"` +} + +func (x *DelShowRel) Reset() { + *x = DelShowRel{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_artshow_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelShowRel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelShowRel) ProtoMessage() {} + +func (x *DelShowRel) ProtoReflect() protoreflect.Message { + mi := &file_pb_artshow_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelShowRel.ProtoReflect.Descriptor instead. +func (*DelShowRel) Descriptor() ([]byte, []int) { + return file_pb_artshow_proto_rawDescGZIP(), []int{22} +} + +func (x *DelShowRel) GetShowRelUID() string { + if x != nil { + return x.ShowRelUID + } + return "" +} + +func (x *DelShowRel) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" +} + type SaveApplyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Applicant string `protobuf:"bytes,1,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` - ApplicantID int64 `protobuf:"varint,2,opt,name=ApplicantID,json=applicant_id,proto3" json:"ApplicantID,omitempty"` - Num int32 `protobuf:"varint,3,opt,name=Num,json=num,proto3" json:"Num,omitempty"` - ApplyTime string `protobuf:"bytes,4,opt,name=ApplyTime,json=apply_time,proto3" json:"ApplyTime,omitempty"` - ID int64 `protobuf:"varint,5,opt,name=ID,json=id,proto3" json:"ID,omitempty"` - Status int32 `protobuf:"varint,6,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Remark string `protobuf:"bytes,7,opt,name=Remark,json=remark,proto3" json:"Remark,omitempty"` - Rel []*ShowRel `protobuf:"bytes,8,rep,name=Rel,json=rel,proto3" json:"Rel,omitempty"` + Applicant string `protobuf:"bytes,1,opt,name=Applicant,json=applicant,proto3" json:"Applicant"` + ApplicantID string `protobuf:"bytes,2,opt,name=ApplicantID,json=applicant_id,proto3" json:"ApplicantID"` + Num int32 `protobuf:"varint,3,opt,name=Num,json=num,proto3" json:"Num"` + ApplyTime string `protobuf:"bytes,4,opt,name=ApplyTime,json=apply_time,proto3" json:"ApplyTime"` + ApplyUID string `protobuf:"bytes,5,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` + Status int32 `protobuf:"varint,6,opt,name=Status,json=status,proto3" json:"Status"` + Remark string `protobuf:"bytes,7,opt,name=Remark,json=remark,proto3" json:"Remark"` + Rel []*ShowRel `protobuf:"bytes,8,rep,name=Rel,json=rel,proto3" json:"Rel"` + DelRel []*DelShowRel `protobuf:"bytes,9,rep,name=DelRel,json=del_rel,proto3" json:"DelRel"` } func (x *SaveApplyReq) Reset() { *x = SaveApplyReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[15] + mi := &file_pb_artshow_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1106,7 +1780,7 @@ func (x *SaveApplyReq) String() string { func (*SaveApplyReq) ProtoMessage() {} func (x *SaveApplyReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[15] + mi := &file_pb_artshow_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1119,7 +1793,7 @@ func (x *SaveApplyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveApplyReq.ProtoReflect.Descriptor instead. func (*SaveApplyReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{15} + return file_pb_artshow_proto_rawDescGZIP(), []int{23} } func (x *SaveApplyReq) GetApplicant() string { @@ -1129,11 +1803,11 @@ func (x *SaveApplyReq) GetApplicant() string { return "" } -func (x *SaveApplyReq) GetApplicantID() int64 { +func (x *SaveApplyReq) GetApplicantID() string { if x != nil { return x.ApplicantID } - return 0 + return "" } func (x *SaveApplyReq) GetNum() int32 { @@ -1150,11 +1824,11 @@ func (x *SaveApplyReq) GetApplyTime() string { return "" } -func (x *SaveApplyReq) GetID() int64 { +func (x *SaveApplyReq) GetApplyUID() string { if x != nil { - return x.ID + return x.ApplyUID } - return 0 + return "" } func (x *SaveApplyReq) GetStatus() int32 { @@ -1178,19 +1852,26 @@ func (x *SaveApplyReq) GetRel() []*ShowRel { return nil } +func (x *SaveApplyReq) GetDelRel() []*DelShowRel { + if x != nil { + return x.DelRel + } + return nil +} + type SaveApplyRes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` - ApplyID int64 `protobuf:"varint,2,opt,name=ApplyID,json=apply_id,proto3" json:"ApplyID,omitempty"` + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg"` + ApplyUID string `protobuf:"bytes,2,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` } func (x *SaveApplyRes) Reset() { *x = SaveApplyRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[16] + mi := &file_pb_artshow_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1203,7 +1884,7 @@ func (x *SaveApplyRes) String() string { func (*SaveApplyRes) ProtoMessage() {} func (x *SaveApplyRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[16] + mi := &file_pb_artshow_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1216,7 +1897,7 @@ func (x *SaveApplyRes) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveApplyRes.ProtoReflect.Descriptor instead. func (*SaveApplyRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{16} + return file_pb_artshow_proto_rawDescGZIP(), []int{24} } func (x *SaveApplyRes) GetMsg() string { @@ -1226,11 +1907,11 @@ func (x *SaveApplyRes) GetMsg() string { return "" } -func (x *SaveApplyRes) GetApplyID() int64 { +func (x *SaveApplyRes) GetApplyUID() string { if x != nil { - return x.ApplyID + return x.ApplyUID } - return 0 + return "" } type ApplyListReq struct { @@ -1238,15 +1919,15 @@ type ApplyListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page,omitempty"` - PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize,omitempty"` - Status int32 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Page int32 `protobuf:"varint,1,opt,name=Page,json=page,proto3" json:"Page"` + PageSize int32 `protobuf:"varint,2,opt,name=PageSize,json=page_size,proto3" json:"PageSize"` + Status int32 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status"` } func (x *ApplyListReq) Reset() { *x = ApplyListReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[17] + mi := &file_pb_artshow_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1259,7 +1940,7 @@ func (x *ApplyListReq) String() string { func (*ApplyListReq) ProtoMessage() {} func (x *ApplyListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[17] + mi := &file_pb_artshow_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,7 +1953,7 @@ func (x *ApplyListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyListReq.ProtoReflect.Descriptor instead. func (*ApplyListReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{17} + return file_pb_artshow_proto_rawDescGZIP(), []int{25} } func (x *ApplyListReq) GetPage() int32 { @@ -1301,15 +1982,15 @@ type ApplyListRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Total int64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total,omitempty"` - Data []*ApplyDetail `protobuf:"bytes,2,rep,name=Data,json=data,proto3" json:"Data,omitempty"` - Msg string `protobuf:"bytes,3,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Total int64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total"` + Data []*ApplyDetail `protobuf:"bytes,2,rep,name=Data,json=data,proto3" json:"Data"` + Msg string `protobuf:"bytes,3,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *ApplyListRes) Reset() { *x = ApplyListRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[18] + mi := &file_pb_artshow_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1322,7 +2003,7 @@ func (x *ApplyListRes) String() string { func (*ApplyListRes) ProtoMessage() {} func (x *ApplyListRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[18] + mi := &file_pb_artshow_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1335,7 +2016,7 @@ func (x *ApplyListRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyListRes.ProtoReflect.Descriptor instead. func (*ApplyListRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{18} + return file_pb_artshow_proto_rawDescGZIP(), []int{26} } func (x *ApplyListRes) GetTotal() int64 { @@ -1364,13 +2045,13 @@ type ApplyShowReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ApplyID int64 `protobuf:"varint,1,opt,name=ApplyID,json=apply_id,proto3" json:"ApplyID,omitempty"` + ApplyUID string `protobuf:"bytes,1,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` } func (x *ApplyShowReq) Reset() { *x = ApplyShowReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[19] + mi := &file_pb_artshow_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1383,7 +2064,7 @@ func (x *ApplyShowReq) String() string { func (*ApplyShowReq) ProtoMessage() {} func (x *ApplyShowReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[19] + mi := &file_pb_artshow_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1396,14 +2077,14 @@ func (x *ApplyShowReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyShowReq.ProtoReflect.Descriptor instead. func (*ApplyShowReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{19} + return file_pb_artshow_proto_rawDescGZIP(), []int{27} } -func (x *ApplyShowReq) GetApplyID() int64 { +func (x *ApplyShowReq) GetApplyUID() string { if x != nil { - return x.ApplyID + return x.ApplyUID } - return 0 + return "" } type ApplyShowRes struct { @@ -1411,15 +2092,15 @@ type ApplyShowRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Apply *ApplyDetail `protobuf:"bytes,1,opt,name=Apply,json=apply,proto3" json:"Apply,omitempty"` - Show []*ShowDetail `protobuf:"bytes,2,rep,name=Show,json=show,proto3" json:"Show,omitempty"` - Msg string `protobuf:"bytes,3,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` + Apply *ApplyDetail `protobuf:"bytes,1,opt,name=Apply,json=apply,proto3" json:"Apply"` + Show []*ShowDetail `protobuf:"bytes,2,rep,name=Show,json=show,proto3" json:"Show"` + Msg string `protobuf:"bytes,3,opt,name=Msg,json=msg,proto3" json:"Msg"` } func (x *ApplyShowRes) Reset() { *x = ApplyShowRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[20] + mi := &file_pb_artshow_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1432,7 +2113,7 @@ func (x *ApplyShowRes) String() string { func (*ApplyShowRes) ProtoMessage() {} func (x *ApplyShowRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[20] + mi := &file_pb_artshow_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1445,7 +2126,7 @@ func (x *ApplyShowRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyShowRes.ProtoReflect.Descriptor instead. func (*ApplyShowRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{20} + return file_pb_artshow_proto_rawDescGZIP(), []int{28} } func (x *ApplyShowRes) GetApply() *ApplyDetail { @@ -1474,20 +2155,20 @@ type ApplyDetail struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,json=id,proto3" json:"ID,omitempty"` - ApplySeq string `protobuf:"bytes,2,opt,name=ApplySeq,json=apply_seq,proto3" json:"ApplySeq,omitempty"` - Applicant string `protobuf:"bytes,3,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` - ApplicantID int64 `protobuf:"varint,4,opt,name=ApplicantID,json=applicant_id,proto3" json:"ApplicantID,omitempty"` - Num int32 `protobuf:"varint,5,opt,name=Num,json=num,proto3" json:"Num,omitempty"` - ApplyTime string `protobuf:"bytes,6,opt,name=ApplyTime,json=apply_time,proto3" json:"ApplyTime,omitempty"` - Status int32 `protobuf:"varint,7,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Remark string `protobuf:"bytes,8,opt,name=Remark,json=remark,proto3" json:"Remark,omitempty"` + ApplyUID string `protobuf:"bytes,1,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` + ApplySeq string `protobuf:"bytes,2,opt,name=ApplySeq,json=apply_seq,proto3" json:"ApplySeq"` + Applicant string `protobuf:"bytes,3,opt,name=Applicant,json=applicant,proto3" json:"Applicant"` + ApplicantID string `protobuf:"bytes,4,opt,name=ApplicantID,json=applicant_id,proto3" json:"ApplicantID"` + Num int32 `protobuf:"varint,5,opt,name=Num,json=num,proto3" json:"Num"` + ApplyTime string `protobuf:"bytes,6,opt,name=ApplyTime,json=apply_time,proto3" json:"ApplyTime"` + Status int32 `protobuf:"varint,7,opt,name=Status,json=status,proto3" json:"Status"` + Remark string `protobuf:"bytes,8,opt,name=Remark,json=remark,proto3" json:"Remark"` } func (x *ApplyDetail) Reset() { *x = ApplyDetail{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[21] + mi := &file_pb_artshow_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +2181,7 @@ func (x *ApplyDetail) String() string { func (*ApplyDetail) ProtoMessage() {} func (x *ApplyDetail) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[21] + mi := &file_pb_artshow_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,14 +2194,14 @@ func (x *ApplyDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyDetail.ProtoReflect.Descriptor instead. func (*ApplyDetail) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{21} + return file_pb_artshow_proto_rawDescGZIP(), []int{29} } -func (x *ApplyDetail) GetID() int64 { +func (x *ApplyDetail) GetApplyUID() string { if x != nil { - return x.ID + return x.ApplyUID } - return 0 + return "" } func (x *ApplyDetail) GetApplySeq() string { @@ -1537,11 +2218,11 @@ func (x *ApplyDetail) GetApplicant() string { return "" } -func (x *ApplyDetail) GetApplicantID() int64 { +func (x *ApplyDetail) GetApplicantID() string { if x != nil { return x.ApplicantID } - return 0 + return "" } func (x *ApplyDetail) GetNum() int32 { @@ -1577,13 +2258,13 @@ type ShowRelListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ApplyID int64 `protobuf:"varint,1,opt,name=ApplyID,json=apply_id,proto3" json:"ApplyID,omitempty"` + ApplyUID string `protobuf:"bytes,1,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` } func (x *ShowRelListReq) Reset() { *x = ShowRelListReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[22] + mi := &file_pb_artshow_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1596,7 +2277,7 @@ func (x *ShowRelListReq) String() string { func (*ShowRelListReq) ProtoMessage() {} func (x *ShowRelListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[22] + mi := &file_pb_artshow_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1609,14 +2290,14 @@ func (x *ShowRelListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowRelListReq.ProtoReflect.Descriptor instead. func (*ShowRelListReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{22} + return file_pb_artshow_proto_rawDescGZIP(), []int{30} } -func (x *ShowRelListReq) GetApplyID() int64 { +func (x *ShowRelListReq) GetApplyUID() string { if x != nil { - return x.ApplyID + return x.ApplyUID } - return 0 + return "" } type ShowRelListRes struct { @@ -1624,14 +2305,14 @@ type ShowRelListRes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` - Data []*ShowRel `protobuf:"bytes,2,rep,name=Data,json=data,proto3" json:"Data,omitempty"` + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg"` + Data []*ShowRel `protobuf:"bytes,2,rep,name=Data,json=data,proto3" json:"Data"` } func (x *ShowRelListRes) Reset() { *x = ShowRelListRes{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[23] + mi := &file_pb_artshow_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1644,7 +2325,7 @@ func (x *ShowRelListRes) String() string { func (*ShowRelListRes) ProtoMessage() {} func (x *ShowRelListRes) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[23] + mi := &file_pb_artshow_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1657,7 +2338,7 @@ func (x *ShowRelListRes) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowRelListRes.ProtoReflect.Descriptor instead. func (*ShowRelListRes) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{23} + return file_pb_artshow_proto_rawDescGZIP(), []int{31} } func (x *ShowRelListRes) GetMsg() string { @@ -1679,15 +2360,15 @@ type UpdateApplyStatusReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status int32 `protobuf:"varint,1,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=Remark,json=remark,proto3" json:"Remark,omitempty"` - ApplyID int64 `protobuf:"varint,3,opt,name=ApplyID,json=apply_id,proto3" json:"ApplyID,omitempty"` + Status int32 `protobuf:"varint,1,opt,name=Status,json=status,proto3" json:"Status"` + Remark string `protobuf:"bytes,2,opt,name=Remark,json=remark,proto3" json:"Remark"` + ApplyUID string `protobuf:"bytes,3,opt,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` } func (x *UpdateApplyStatusReq) Reset() { *x = UpdateApplyStatusReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[24] + mi := &file_pb_artshow_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1700,7 +2381,7 @@ func (x *UpdateApplyStatusReq) String() string { func (*UpdateApplyStatusReq) ProtoMessage() {} func (x *UpdateApplyStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[24] + mi := &file_pb_artshow_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1713,7 +2394,7 @@ func (x *UpdateApplyStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateApplyStatusReq.ProtoReflect.Descriptor instead. func (*UpdateApplyStatusReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{24} + return file_pb_artshow_proto_rawDescGZIP(), []int{32} } func (x *UpdateApplyStatusReq) GetStatus() int32 { @@ -1730,11 +2411,11 @@ func (x *UpdateApplyStatusReq) GetRemark() string { return "" } -func (x *UpdateApplyStatusReq) GetApplyID() int64 { +func (x *UpdateApplyStatusReq) GetApplyUID() string { if x != nil { - return x.ApplyID + return x.ApplyUID } - return 0 + return "" } type DelApplyReq struct { @@ -1742,13 +2423,13 @@ type DelApplyReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ApplyID []int64 `protobuf:"varint,1,rep,packed,name=ApplyID,json=apply_id,proto3" json:"ApplyID,omitempty"` + ApplyUID []string `protobuf:"bytes,1,rep,name=ApplyUID,json=apply_uid,proto3" json:"ApplyUID"` } func (x *DelApplyReq) Reset() { *x = DelApplyReq{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[25] + mi := &file_pb_artshow_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1761,7 +2442,7 @@ func (x *DelApplyReq) String() string { func (*DelApplyReq) ProtoMessage() {} func (x *DelApplyReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[25] + mi := &file_pb_artshow_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1774,12 +2455,12 @@ func (x *DelApplyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DelApplyReq.ProtoReflect.Descriptor instead. func (*DelApplyReq) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{25} + return file_pb_artshow_proto_rawDescGZIP(), []int{33} } -func (x *DelApplyReq) GetApplyID() []int64 { +func (x *DelApplyReq) GetApplyUID() []string { if x != nil { - return x.ApplyID + return x.ApplyUID } return nil } @@ -1789,14 +2470,17 @@ type ShowStatisticalInfoRes_Num struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistNum int64 `protobuf:"varint,1,opt,name=ArtistNum,json=artist_num,proto3" json:"ArtistNum,omitempty"` - PackageNum int64 `protobuf:"varint,2,opt,name=PackageNum,json=package_num,proto3" json:"PackageNum,omitempty"` + ArtistNum int64 `protobuf:"varint,1,opt,name=ArtistNum,json=artist_num,proto3" json:"ArtistNum"` + PackageNum int64 `protobuf:"varint,2,opt,name=PackageNum,json=package_num,proto3" json:"PackageNum"` + TotalNum int64 `protobuf:"varint,3,opt,name=TotalNum,json=total_num,proto3" json:"TotalNum"` + NotShowNum int64 `protobuf:"varint,4,opt,name=NotShowNum,json=not_show_num,proto3" json:"NotShowNum"` + ShowHisNum int64 `protobuf:"varint,5,opt,name=ShowHisNum,json=show_his_num,proto3" json:"ShowHisNum"` } func (x *ShowStatisticalInfoRes_Num) Reset() { *x = ShowStatisticalInfoRes_Num{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[26] + mi := &file_pb_artshow_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1809,7 +2493,7 @@ func (x *ShowStatisticalInfoRes_Num) String() string { func (*ShowStatisticalInfoRes_Num) ProtoMessage() {} func (x *ShowStatisticalInfoRes_Num) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[26] + mi := &file_pb_artshow_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1822,7 +2506,7 @@ func (x *ShowStatisticalInfoRes_Num) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowStatisticalInfoRes_Num.ProtoReflect.Descriptor instead. func (*ShowStatisticalInfoRes_Num) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{11, 0} + return file_pb_artshow_proto_rawDescGZIP(), []int{18, 0} } func (x *ShowStatisticalInfoRes_Num) GetArtistNum() int64 { @@ -1839,22 +2523,43 @@ func (x *ShowStatisticalInfoRes_Num) GetPackageNum() int64 { return 0 } +func (x *ShowStatisticalInfoRes_Num) GetTotalNum() int64 { + if x != nil { + return x.TotalNum + } + return 0 +} + +func (x *ShowStatisticalInfoRes_Num) GetNotShowNum() int64 { + if x != nil { + return x.NotShowNum + } + return 0 +} + +func (x *ShowStatisticalInfoRes_Num) GetShowHisNum() int64 { + if x != nil { + return x.ShowHisNum + } + return 0 +} + type ArtworkPriceRes_PriceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Price int64 `protobuf:"varint,1,opt,name=Price,json=price,proto3" json:"Price,omitempty"` - RulerPrice int64 `protobuf:"varint,2,opt,name=RulerPrice,json=ruler_price,proto3" json:"RulerPrice,omitempty"` - ArtworkPrice int64 `protobuf:"varint,3,opt,name=ArtworkPrice,json=artwork_price,proto3" json:"ArtworkPrice,omitempty"` - MarketPrice int64 `protobuf:"varint,4,opt,name=MarketPrice,json=market_price,proto3" json:"MarketPrice,omitempty"` - CopyrightPrice int64 `protobuf:"varint,5,opt,name=CopyrightPrice,json=copyright_price,proto3" json:"CopyrightPrice,omitempty"` + Price int64 `protobuf:"varint,1,opt,name=Price,json=price,proto3" json:"Price"` + RulerPrice int64 `protobuf:"varint,2,opt,name=RulerPrice,json=ruler_price,proto3" json:"RulerPrice"` + ArtworkPrice int64 `protobuf:"varint,3,opt,name=ArtworkPrice,json=artwork_price,proto3" json:"ArtworkPrice"` + MarketPrice int64 `protobuf:"varint,4,opt,name=MarketPrice,json=market_price,proto3" json:"MarketPrice"` + CopyrightPrice int64 `protobuf:"varint,5,opt,name=CopyrightPrice,json=copyright_price,proto3" json:"CopyrightPrice"` } func (x *ArtworkPriceRes_PriceInfo) Reset() { *x = ArtworkPriceRes_PriceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_artshow_proto_msgTypes[27] + mi := &file_pb_artshow_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1867,7 +2572,7 @@ func (x *ArtworkPriceRes_PriceInfo) String() string { func (*ArtworkPriceRes_PriceInfo) ProtoMessage() {} func (x *ArtworkPriceRes_PriceInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_artshow_proto_msgTypes[27] + mi := &file_pb_artshow_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1880,7 +2585,7 @@ func (x *ArtworkPriceRes_PriceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtworkPriceRes_PriceInfo.ProtoReflect.Descriptor instead. func (*ArtworkPriceRes_PriceInfo) Descriptor() ([]byte, []int) { - return file_pb_artshow_proto_rawDescGZIP(), []int{13, 0} + return file_pb_artshow_proto_rawDescGZIP(), []int{20, 0} } func (x *ArtworkPriceRes_PriceInfo) GetPrice() int64 { @@ -1922,231 +2627,359 @@ var File_pb_artshow_proto protoreflect.FileDescriptor var file_pb_artshow_proto_rawDesc = []byte{ 0x0a, 0x10, 0x70, 0x62, 0x2f, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x07, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x22, 0xd2, 0x02, 0x0a, 0x0b, + 0x74, 0x6f, 0x12, 0x07, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x22, 0xcd, 0x03, 0x0a, 0x0b, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x49, - 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, - 0x73, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x38, 0x0a, 0x0b, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x09, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x28, 0x0a, 0x0d, 0x53, 0x68, 0x6f, - 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x68, - 0x6f, 0x77, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, - 0x5f, 0x69, 0x64, 0x22, 0xad, 0x02, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x71, 0x12, 0x1b, 0x0a, - 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, - 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, - 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, - 0x68, 0x6f, 0x77, 0x22, 0x58, 0x0a, 0x14, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x41, 0x72, 0x74, 0x53, - 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xae, 0x01, - 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, - 0x65, 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, 0x1d, - 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x22, 0xb4, - 0x01, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, - 0x12, 0x28, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, - 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, - 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x22, 0xd2, 0x01, 0x0a, - 0x11, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x69, - 0x63, 0x22, 0x31, 0x0a, 0x16, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x06, 0x49, - 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, - 0x73, 0x68, 0x6f, 0x77, 0x22, 0xaa, 0x01, 0x0a, 0x16, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x12, - 0x37, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x2e, 0x4e, - 0x75, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x1a, 0x45, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x12, 0x1f, 0x0a, 0x0a, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x22, 0x30, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x69, 0x64, 0x22, 0x91, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x2e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x17, 0x0a, + 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, + 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x71, 0x12, 0x13, + 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x73, 0x68, + 0x6f, 0x77, 0x5f, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3f, 0x0a, 0x0a, 0x44, 0x65, + 0x6c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x5f, 0x73, + 0x68, 0x6f, 0x77, 0x5f, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x3a, 0x0a, 0x0b, 0x53, + 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x19, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, + 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, + 0x64, 0x22, 0x91, 0x03, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, + 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, + 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, + 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, + 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x1b, + 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x4a, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, + 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x1a, 0xb3, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x72, - 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, - 0x0a, 0x0e, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x7d, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x52, - 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x12, 0x17, 0x0a, - 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, - 0x68, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x03, 0x52, 0x65, 0x6c, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x22, 0x3b, 0x0a, - 0x0c, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x19, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x22, 0x57, 0x0a, 0x0c, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x60, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, - 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, - 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x64, - 0x22, 0x75, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, - 0x12, 0x2a, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x67, 0x22, 0x54, 0x0a, 0x14, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0x96, 0x03, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x26, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x71, 0x12, + 0x1b, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1b, + 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1d, + 0x0a, 0x09, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, + 0x77, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, + 0x22, 0x67, 0x0a, 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x1d, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x0b, 0x53, 0x68, + 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x2a, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0e, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, + 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0x68, 0x0a, 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x27, 0x0a, 0x0a, 0x44, 0x65, + 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, + 0x75, 0x69, 0x64, 0x22, 0x9c, 0x02, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, + 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, + 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, + 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x70, + 0x69, 0x63, 0x22, 0xc9, 0x03, 0x0a, 0x12, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, + 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, + 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x6d, 0x61, + 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x5f, 0x70, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0a, + 0x52, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, + 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x58, + 0x0a, 0x13, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 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, 0x5f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0f, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x16, 0x53, 0x68, 0x6f, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x22, 0x8c, 0x02, 0x0a, + 0x16, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x2e, 0x4e, 0x75, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x1a, 0xa6, 0x01, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0a, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x08, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x53, 0x68, + 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x6f, 0x74, + 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0a, 0x53, 0x68, 0x6f, + 0x77, 0x48, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, + 0x68, 0x6f, 0x77, 0x5f, 0x68, 0x69, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x0f, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1f, + 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x69, 0x64, 0x22, + 0x91, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x1a, 0xb3, 0x01, + 0x0a, 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x43, 0x6f, + 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x12, + 0x20, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6c, 0x5f, 0x75, 0x69, + 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, + 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x08, 0x53, 0x68, 0x6f, + 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, + 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, + 0x77, 0x52, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x55, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x72, + 0x65, 0x6c, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x75, 0x69, + 0x64, 0x22, 0x9f, 0x02, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, + 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, + 0x6b, 0x12, 0x22, 0x0a, 0x03, 0x52, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, + 0x52, 0x03, 0x72, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x6c, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, + 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x5f, + 0x72, 0x65, 0x6c, 0x22, 0x3d, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, + 0x69, 0x64, 0x22, 0x57, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x60, 0x0a, 0x0c, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, - 0x53, 0x68, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, - 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdc, 0x01, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x5f, 0x73, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x49, - 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x2b, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, - 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x5f, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, - 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x61, 0x0a, - 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x19, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x64, - 0x22, 0x28, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, - 0x19, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, - 0x52, 0x08, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x32, 0x96, 0x07, 0x0a, 0x07, 0x41, - 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, - 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, - 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, - 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, - 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, - 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x34, - 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, - 0x68, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12, - 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x43, - 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, - 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2b, 0x0a, + 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, + 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x75, 0x0a, 0x0c, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x05, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, + 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0xe9, 0x01, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x12, 0x1b, + 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1d, + 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x2d, 0x0a, + 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x1b, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0e, + 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x24, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x6c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1b, + 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x0b, 0x44, + 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x08, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x32, 0xc5, 0x09, 0x0a, 0x07, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x12, 0x3a, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x6f, + 0x77, 0x12, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, + 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x2e, + 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x61, + 0x76, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x07, 0x44, + 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x13, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, + 0x2e, 0x44, 0x65, 0x6c, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x41, 0x72, + 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x22, + 0x00, 0x12, 0x38, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, + 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, + 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0f, 0x53, + 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x6c, 0x12, 0x14, + 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, + 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, + 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x12, 0x1e, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, + 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, + 0x77, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x73, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, + 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, @@ -2185,8 +3018,13 @@ var file_pb_artshow_proto_rawDesc = []byte{ 0x61, 0x69, 0x6c, 0x12, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, - 0x73, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x61, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, - 0x3b, 0x61, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, + 0x77, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x41, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x22, 0x00, 0x42, + 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x61, 0x72, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x3b, 0x61, 0x72, 0x74, + 0x53, 0x68, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2201,81 +3039,102 @@ func file_pb_artshow_proto_rawDescGZIP() []byte { return file_pb_artshow_proto_rawDescData } -var file_pb_artshow_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_pb_artshow_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_pb_artshow_proto_goTypes = []interface{}{ (*SaveShowReq)(nil), // 0: ArtShow.SaveShowReq (*SaveShowRes)(nil), // 1: ArtShow.SaveShowRes (*CommonRes)(nil), // 2: ArtShow.CommonRes (*ShowDetailReq)(nil), // 3: ArtShow.ShowDetailReq - (*ShowDetail)(nil), // 4: ArtShow.ShowDetail - (*ShowArtworkDetailRes)(nil), // 5: ArtShow.ShowArtworkDetailRes - (*ShowListReq)(nil), // 6: ArtShow.ShowListReq - (*ShowListRes)(nil), // 7: ArtShow.ShowListRes - (*DelShowReq)(nil), // 8: ArtShow.DelShowReq - (*ShowArtworkDetail)(nil), // 9: ArtShow.ShowArtworkDetail - (*ShowStatisticalInfoReq)(nil), // 10: ArtShow.ShowStatisticalInfoReq - (*ShowStatisticalInfoRes)(nil), // 11: ArtShow.ShowStatisticalInfoRes - (*ArtworkPriceReq)(nil), // 12: ArtShow.ArtworkPriceReq - (*ArtworkPriceRes)(nil), // 13: ArtShow.ArtworkPriceRes - (*ShowRel)(nil), // 14: ArtShow.ShowRel - (*SaveApplyReq)(nil), // 15: ArtShow.SaveApplyReq - (*SaveApplyRes)(nil), // 16: ArtShow.SaveApplyRes - (*ApplyListReq)(nil), // 17: ArtShow.ApplyListReq - (*ApplyListRes)(nil), // 18: ArtShow.ApplyListRes - (*ApplyShowReq)(nil), // 19: ArtShow.ApplyShowReq - (*ApplyShowRes)(nil), // 20: ArtShow.ApplyShowRes - (*ApplyDetail)(nil), // 21: ArtShow.ApplyDetail - (*ShowRelListReq)(nil), // 22: ArtShow.ShowRelListReq - (*ShowRelListRes)(nil), // 23: ArtShow.ShowRelListRes - (*UpdateApplyStatusReq)(nil), // 24: ArtShow.UpdateApplyStatusReq - (*DelApplyReq)(nil), // 25: ArtShow.DelApplyReq - (*ShowStatisticalInfoRes_Num)(nil), // 26: ArtShow.ShowStatisticalInfoRes.Num - (*ArtworkPriceRes_PriceInfo)(nil), // 27: ArtShow.ArtworkPriceRes.PriceInfo + (*ArtworkDetailReq)(nil), // 4: ArtShow.ArtworkDetailReq + (*ShowDetail)(nil), // 5: ArtShow.ShowDetail + (*ShowDetailRes)(nil), // 6: ArtShow.ShowDetailRes + (*ShowArtworkDetailRes)(nil), // 7: ArtShow.ShowArtworkDetailRes + (*ShowListReq)(nil), // 8: ArtShow.ShowListReq + (*ShowListForArtworkReq)(nil), // 9: ArtShow.ShowListForArtworkReq + (*ShowListRes)(nil), // 10: ArtShow.ShowListRes + (*ShowListForArtworkRes)(nil), // 11: ArtShow.ShowListForArtworkRes + (*DelShowReq)(nil), // 12: ArtShow.DelShowReq + (*ArtworkDetail)(nil), // 13: ArtShow.ArtworkDetail + (*ArtworkPriceDetail)(nil), // 14: ArtShow.ArtworkPriceDetail + (*ArtworkPriceListRes)(nil), // 15: ArtShow.ArtworkPriceListRes + (*DelArtworkDetail)(nil), // 16: ArtShow.DelArtworkDetail + (*ShowStatisticalInfoReq)(nil), // 17: ArtShow.ShowStatisticalInfoReq + (*ShowStatisticalInfoRes)(nil), // 18: ArtShow.ShowStatisticalInfoRes + (*ArtworkPriceReq)(nil), // 19: ArtShow.ArtworkPriceReq + (*ArtworkPriceRes)(nil), // 20: ArtShow.ArtworkPriceRes + (*ShowRel)(nil), // 21: ArtShow.ShowRel + (*DelShowRel)(nil), // 22: ArtShow.DelShowRel + (*SaveApplyReq)(nil), // 23: ArtShow.SaveApplyReq + (*SaveApplyRes)(nil), // 24: ArtShow.SaveApplyRes + (*ApplyListReq)(nil), // 25: ArtShow.ApplyListReq + (*ApplyListRes)(nil), // 26: ArtShow.ApplyListRes + (*ApplyShowReq)(nil), // 27: ArtShow.ApplyShowReq + (*ApplyShowRes)(nil), // 28: ArtShow.ApplyShowRes + (*ApplyDetail)(nil), // 29: ArtShow.ApplyDetail + (*ShowRelListReq)(nil), // 30: ArtShow.ShowRelListReq + (*ShowRelListRes)(nil), // 31: ArtShow.ShowRelListRes + (*UpdateApplyStatusReq)(nil), // 32: ArtShow.UpdateApplyStatusReq + (*DelApplyReq)(nil), // 33: ArtShow.DelApplyReq + (*ShowStatisticalInfoRes_Num)(nil), // 34: ArtShow.ShowStatisticalInfoRes.Num + (*ArtworkPriceRes_PriceInfo)(nil), // 35: ArtShow.ArtworkPriceRes.PriceInfo } var file_pb_artshow_proto_depIdxs = []int32{ - 9, // 0: ArtShow.SaveShowReq.ShowArtwork:type_name -> ArtShow.ShowArtworkDetail - 9, // 1: ArtShow.ShowArtworkDetailRes.data:type_name -> ArtShow.ShowArtworkDetail - 4, // 2: ArtShow.ShowListRes.Data:type_name -> ArtShow.ShowDetail - 26, // 3: ArtShow.ShowStatisticalInfoRes.Data:type_name -> ArtShow.ShowStatisticalInfoRes.Num - 27, // 4: ArtShow.ArtworkPriceRes.Data:type_name -> ArtShow.ArtworkPriceRes.PriceInfo - 14, // 5: ArtShow.SaveApplyReq.Rel:type_name -> ArtShow.ShowRel - 21, // 6: ArtShow.ApplyListRes.Data:type_name -> ArtShow.ApplyDetail - 21, // 7: ArtShow.ApplyShowRes.Apply:type_name -> ArtShow.ApplyDetail - 4, // 8: ArtShow.ApplyShowRes.Show:type_name -> ArtShow.ShowDetail - 14, // 9: ArtShow.ShowRelListRes.Data:type_name -> ArtShow.ShowRel - 0, // 10: ArtShow.ArtShow.CreateShow:input_type -> ArtShow.SaveShowReq - 0, // 11: ArtShow.ArtShow.UpdateShow:input_type -> ArtShow.SaveShowReq - 8, // 12: ArtShow.ArtShow.DelShow:input_type -> ArtShow.DelShowReq - 6, // 13: ArtShow.ArtShow.ShowList:input_type -> ArtShow.ShowListReq - 3, // 14: ArtShow.ArtShow.ShowInfo:input_type -> ArtShow.ShowDetailReq - 10, // 15: ArtShow.ArtShow.ShowStatisticalInfo:input_type -> ArtShow.ShowStatisticalInfoReq - 12, // 16: ArtShow.ArtShow.ArtworkPrice:input_type -> ArtShow.ArtworkPriceReq - 15, // 17: ArtShow.ArtShow.CreateApply:input_type -> ArtShow.SaveApplyReq - 15, // 18: ArtShow.ArtShow.UpdateApply:input_type -> ArtShow.SaveApplyReq - 25, // 19: ArtShow.ArtShow.DelApply:input_type -> ArtShow.DelApplyReq - 6, // 20: ArtShow.ArtShow.ShowListWithApply:input_type -> ArtShow.ShowListReq - 24, // 21: ArtShow.ArtShow.UpdateApplyStatus:input_type -> ArtShow.UpdateApplyStatusReq - 17, // 22: ArtShow.ArtShow.ApplyList:input_type -> ArtShow.ApplyListReq - 19, // 23: ArtShow.ArtShow.ApplyDetail:input_type -> ArtShow.ApplyShowReq - 1, // 24: ArtShow.ArtShow.CreateShow:output_type -> ArtShow.SaveShowRes - 1, // 25: ArtShow.ArtShow.UpdateShow:output_type -> ArtShow.SaveShowRes - 2, // 26: ArtShow.ArtShow.DelShow:output_type -> ArtShow.CommonRes - 7, // 27: ArtShow.ArtShow.ShowList:output_type -> ArtShow.ShowListRes - 5, // 28: ArtShow.ArtShow.ShowInfo:output_type -> ArtShow.ShowArtworkDetailRes - 11, // 29: ArtShow.ArtShow.ShowStatisticalInfo:output_type -> ArtShow.ShowStatisticalInfoRes - 13, // 30: ArtShow.ArtShow.ArtworkPrice:output_type -> ArtShow.ArtworkPriceRes - 16, // 31: ArtShow.ArtShow.CreateApply:output_type -> ArtShow.SaveApplyRes - 16, // 32: ArtShow.ArtShow.UpdateApply:output_type -> ArtShow.SaveApplyRes - 2, // 33: ArtShow.ArtShow.DelApply:output_type -> ArtShow.CommonRes - 7, // 34: ArtShow.ArtShow.ShowListWithApply:output_type -> ArtShow.ShowListRes - 2, // 35: ArtShow.ArtShow.UpdateApplyStatus:output_type -> ArtShow.CommonRes - 18, // 36: ArtShow.ArtShow.ApplyList:output_type -> ArtShow.ApplyListRes - 20, // 37: ArtShow.ArtShow.ApplyDetail:output_type -> ArtShow.ApplyShowRes - 24, // [24:38] is the sub-list for method output_type - 10, // [10:24] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 13, // 0: ArtShow.SaveShowReq.Artwork:type_name -> ArtShow.ArtworkDetail + 16, // 1: ArtShow.SaveShowReq.DelArtwork:type_name -> ArtShow.DelArtworkDetail + 5, // 2: ArtShow.ShowDetailRes.Data:type_name -> ArtShow.ShowDetail + 13, // 3: ArtShow.ShowArtworkDetailRes.data:type_name -> ArtShow.ArtworkDetail + 5, // 4: ArtShow.ShowListRes.Data:type_name -> ArtShow.ShowDetail + 5, // 5: ArtShow.ShowListForArtworkRes.Data:type_name -> ArtShow.ShowDetail + 14, // 6: ArtShow.ArtworkPriceListRes.Data:type_name -> ArtShow.ArtworkPriceDetail + 34, // 7: ArtShow.ShowStatisticalInfoRes.Data:type_name -> ArtShow.ShowStatisticalInfoRes.Num + 35, // 8: ArtShow.ArtworkPriceRes.Data:type_name -> ArtShow.ArtworkPriceRes.PriceInfo + 21, // 9: ArtShow.SaveApplyReq.Rel:type_name -> ArtShow.ShowRel + 22, // 10: ArtShow.SaveApplyReq.DelRel:type_name -> ArtShow.DelShowRel + 29, // 11: ArtShow.ApplyListRes.Data:type_name -> ArtShow.ApplyDetail + 29, // 12: ArtShow.ApplyShowRes.Apply:type_name -> ArtShow.ApplyDetail + 5, // 13: ArtShow.ApplyShowRes.Show:type_name -> ArtShow.ShowDetail + 21, // 14: ArtShow.ShowRelListRes.Data:type_name -> ArtShow.ShowRel + 0, // 15: ArtShow.ArtShow.CreateShow:input_type -> ArtShow.SaveShowReq + 0, // 16: ArtShow.ArtShow.UpdateShow:input_type -> ArtShow.SaveShowReq + 12, // 17: ArtShow.ArtShow.DelShow:input_type -> ArtShow.DelShowReq + 8, // 18: ArtShow.ArtShow.ShowList:input_type -> ArtShow.ShowListReq + 8, // 19: ArtShow.ArtShow.ShowListWithRel:input_type -> ArtShow.ShowListReq + 9, // 20: ArtShow.ArtShow.ShowListForArtwork:input_type -> ArtShow.ShowListForArtworkReq + 4, // 21: ArtShow.ArtShow.ShowArtworkInfo:input_type -> ArtShow.ArtworkDetailReq + 3, // 22: ArtShow.ArtShow.ShowDetail:input_type -> ArtShow.ShowDetailReq + 17, // 23: ArtShow.ArtShow.ShowStatisticalInfo:input_type -> ArtShow.ShowStatisticalInfoReq + 19, // 24: ArtShow.ArtShow.ArtworkPrice:input_type -> ArtShow.ArtworkPriceReq + 23, // 25: ArtShow.ArtShow.CreateApply:input_type -> ArtShow.SaveApplyReq + 23, // 26: ArtShow.ArtShow.UpdateApply:input_type -> ArtShow.SaveApplyReq + 33, // 27: ArtShow.ArtShow.DelApply:input_type -> ArtShow.DelApplyReq + 8, // 28: ArtShow.ArtShow.ShowListWithApply:input_type -> ArtShow.ShowListReq + 32, // 29: ArtShow.ArtShow.UpdateApplyStatus:input_type -> ArtShow.UpdateApplyStatusReq + 25, // 30: ArtShow.ArtShow.ApplyList:input_type -> ArtShow.ApplyListReq + 27, // 31: ArtShow.ArtShow.ApplyDetail:input_type -> ArtShow.ApplyShowReq + 3, // 32: ArtShow.ArtShow.ArtworkPriceList:input_type -> ArtShow.ShowDetailReq + 1, // 33: ArtShow.ArtShow.CreateShow:output_type -> ArtShow.SaveShowRes + 1, // 34: ArtShow.ArtShow.UpdateShow:output_type -> ArtShow.SaveShowRes + 2, // 35: ArtShow.ArtShow.DelShow:output_type -> ArtShow.CommonRes + 10, // 36: ArtShow.ArtShow.ShowList:output_type -> ArtShow.ShowListRes + 10, // 37: ArtShow.ArtShow.ShowListWithRel:output_type -> ArtShow.ShowListRes + 11, // 38: ArtShow.ArtShow.ShowListForArtwork:output_type -> ArtShow.ShowListForArtworkRes + 7, // 39: ArtShow.ArtShow.ShowArtworkInfo:output_type -> ArtShow.ShowArtworkDetailRes + 6, // 40: ArtShow.ArtShow.ShowDetail:output_type -> ArtShow.ShowDetailRes + 18, // 41: ArtShow.ArtShow.ShowStatisticalInfo:output_type -> ArtShow.ShowStatisticalInfoRes + 20, // 42: ArtShow.ArtShow.ArtworkPrice:output_type -> ArtShow.ArtworkPriceRes + 24, // 43: ArtShow.ArtShow.CreateApply:output_type -> ArtShow.SaveApplyRes + 24, // 44: ArtShow.ArtShow.UpdateApply:output_type -> ArtShow.SaveApplyRes + 2, // 45: ArtShow.ArtShow.DelApply:output_type -> ArtShow.CommonRes + 10, // 46: ArtShow.ArtShow.ShowListWithApply:output_type -> ArtShow.ShowListRes + 2, // 47: ArtShow.ArtShow.UpdateApplyStatus:output_type -> ArtShow.CommonRes + 26, // 48: ArtShow.ArtShow.ApplyList:output_type -> ArtShow.ApplyListRes + 28, // 49: ArtShow.ArtShow.ApplyDetail:output_type -> ArtShow.ApplyShowRes + 15, // 50: ArtShow.ArtShow.ArtworkPriceList:output_type -> ArtShow.ArtworkPriceListRes + 33, // [33:51] is the sub-list for method output_type + 15, // [15:33] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_pb_artshow_proto_init() } @@ -2333,7 +3192,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowDetail); i { + switch v := v.(*ArtworkDetailReq); i { case 0: return &v.state case 1: @@ -2345,7 +3204,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowArtworkDetailRes); i { + switch v := v.(*ShowDetail); i { case 0: return &v.state case 1: @@ -2357,7 +3216,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowListReq); i { + switch v := v.(*ShowDetailRes); i { case 0: return &v.state case 1: @@ -2369,7 +3228,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowListRes); i { + switch v := v.(*ShowArtworkDetailRes); i { case 0: return &v.state case 1: @@ -2381,7 +3240,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelShowReq); i { + switch v := v.(*ShowListReq); i { case 0: return &v.state case 1: @@ -2393,7 +3252,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowArtworkDetail); i { + switch v := v.(*ShowListForArtworkReq); i { case 0: return &v.state case 1: @@ -2405,7 +3264,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowStatisticalInfoReq); i { + switch v := v.(*ShowListRes); i { case 0: return &v.state case 1: @@ -2417,7 +3276,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowStatisticalInfoRes); i { + switch v := v.(*ShowListForArtworkRes); i { case 0: return &v.state case 1: @@ -2429,7 +3288,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPriceReq); i { + switch v := v.(*DelShowReq); i { case 0: return &v.state case 1: @@ -2441,7 +3300,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtworkPriceRes); i { + switch v := v.(*ArtworkDetail); i { case 0: return &v.state case 1: @@ -2453,7 +3312,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowRel); i { + switch v := v.(*ArtworkPriceDetail); i { case 0: return &v.state case 1: @@ -2465,7 +3324,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveApplyReq); i { + switch v := v.(*ArtworkPriceListRes); i { case 0: return &v.state case 1: @@ -2477,7 +3336,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveApplyRes); i { + switch v := v.(*DelArtworkDetail); i { case 0: return &v.state case 1: @@ -2489,7 +3348,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyListReq); i { + switch v := v.(*ShowStatisticalInfoReq); i { case 0: return &v.state case 1: @@ -2501,7 +3360,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyListRes); i { + switch v := v.(*ShowStatisticalInfoRes); i { case 0: return &v.state case 1: @@ -2513,7 +3372,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyShowReq); i { + switch v := v.(*ArtworkPriceReq); i { case 0: return &v.state case 1: @@ -2525,7 +3384,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyShowRes); i { + switch v := v.(*ArtworkPriceRes); i { case 0: return &v.state case 1: @@ -2537,7 +3396,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyDetail); i { + switch v := v.(*ShowRel); i { case 0: return &v.state case 1: @@ -2549,7 +3408,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowRelListReq); i { + switch v := v.(*DelShowRel); i { case 0: return &v.state case 1: @@ -2561,7 +3420,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowRelListRes); i { + switch v := v.(*SaveApplyReq); i { case 0: return &v.state case 1: @@ -2573,7 +3432,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateApplyStatusReq); i { + switch v := v.(*SaveApplyRes); i { case 0: return &v.state case 1: @@ -2585,7 +3444,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelApplyReq); i { + switch v := v.(*ApplyListReq); i { case 0: return &v.state case 1: @@ -2597,7 +3456,7 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowStatisticalInfoRes_Num); i { + switch v := v.(*ApplyListRes); i { case 0: return &v.state case 1: @@ -2609,6 +3468,102 @@ func file_pb_artshow_proto_init() { } } file_pb_artshow_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplyShowReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplyShowRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplyDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowRelListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowRelListRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplyStatusReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelApplyReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowStatisticalInfoRes_Num); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_artshow_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtworkPriceRes_PriceInfo); i { case 0: return &v.state @@ -2627,7 +3582,7 @@ func file_pb_artshow_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_artshow_proto_rawDesc, NumEnums: 0, - NumMessages: 28, + NumMessages: 36, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/artShow/artshow.validator.pb.go b/pb/artShow/artshow.validator.pb.go index 1d098d3..c67fbaa 100644 --- a/pb/artShow/artshow.validator.pb.go +++ b/pb/artShow/artshow.validator.pb.go @@ -16,10 +16,17 @@ var _ = fmt.Errorf var _ = math.Inf func (this *SaveShowReq) Validate() error { - for _, item := range this.ShowArtwork { + for _, item := range this.Artwork { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ShowArtwork", err) + return github_com_mwitkow_go_proto_validators.FieldError("Artwork", err) + } + } + } + for _, item := range this.DelArtwork { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("DelArtwork", err) } } } @@ -37,6 +44,14 @@ func (this *ShowDetailReq) Validate() error { func (this *ShowDetail) Validate() error { return nil } +func (this *ShowDetailRes) Validate() error { + if this.Data != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + return nil +} func (this *ShowArtworkDetailRes) Validate() error { for _, item := range this.Data { if item != nil { @@ -50,6 +65,9 @@ func (this *ShowArtworkDetailRes) Validate() error { func (this *ShowListReq) Validate() error { return nil } +func (this *ShowListForArtworkReq) Validate() error { + return nil +} func (this *ShowListRes) Validate() error { for _, item := range this.Data { if item != nil { @@ -60,10 +78,36 @@ func (this *ShowListRes) Validate() error { } return nil } +func (this *ShowListForArtworkRes) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} func (this *DelShowReq) Validate() error { return nil } -func (this *ShowArtworkDetail) Validate() error { +func (this *ArtworkDetail) Validate() error { + return nil +} +func (this *ArtworkPriceDetail) Validate() error { + return nil +} +func (this *ArtworkPriceListRes) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *DelArtworkDetail) Validate() error { return nil } func (this *ShowStatisticalInfoReq) Validate() error { @@ -97,6 +141,9 @@ func (this *ArtworkPriceRes_PriceInfo) Validate() error { func (this *ShowRel) Validate() error { return nil } +func (this *DelShowRel) Validate() error { + return nil +} func (this *SaveApplyReq) Validate() error { for _, item := range this.Rel { if item != nil { @@ -105,6 +152,13 @@ func (this *SaveApplyReq) Validate() error { } } } + for _, item := range this.DelRel { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("DelRel", err) + } + } + } return nil } func (this *SaveApplyRes) Validate() error { diff --git a/pb/artShow/artshow_triple.pb.go b/pb/artShow/artshow_triple.pb.go index 958edae..f6cecd9 100644 --- a/pb/artShow/artshow_triple.pb.go +++ b/pb/artShow/artshow_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.8 -// - protoc v3.21.4 +// - protoc v3.10.1 // source: pb/artshow.proto package artShow @@ -32,7 +32,10 @@ type ArtShowClient interface { UpdateShow(ctx context.Context, in *SaveShowReq, opts ...grpc_go.CallOption) (*SaveShowRes, common.ErrorWithAttachment) DelShow(ctx context.Context, in *DelShowReq, opts ...grpc_go.CallOption) (*CommonRes, common.ErrorWithAttachment) ShowList(ctx context.Context, in *ShowListReq, opts ...grpc_go.CallOption) (*ShowListRes, common.ErrorWithAttachment) - ShowInfo(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ShowArtworkDetailRes, common.ErrorWithAttachment) + ShowListWithRel(ctx context.Context, in *ShowListReq, opts ...grpc_go.CallOption) (*ShowListRes, common.ErrorWithAttachment) + ShowListForArtwork(ctx context.Context, in *ShowListForArtworkReq, opts ...grpc_go.CallOption) (*ShowListForArtworkRes, common.ErrorWithAttachment) + ShowArtworkInfo(ctx context.Context, in *ArtworkDetailReq, opts ...grpc_go.CallOption) (*ShowArtworkDetailRes, common.ErrorWithAttachment) + ShowDetail(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ShowDetailRes, common.ErrorWithAttachment) ShowStatisticalInfo(ctx context.Context, in *ShowStatisticalInfoReq, opts ...grpc_go.CallOption) (*ShowStatisticalInfoRes, common.ErrorWithAttachment) ArtworkPrice(ctx context.Context, in *ArtworkPriceReq, opts ...grpc_go.CallOption) (*ArtworkPriceRes, common.ErrorWithAttachment) CreateApply(ctx context.Context, in *SaveApplyReq, opts ...grpc_go.CallOption) (*SaveApplyRes, common.ErrorWithAttachment) @@ -42,6 +45,7 @@ type ArtShowClient interface { UpdateApplyStatus(ctx context.Context, in *UpdateApplyStatusReq, opts ...grpc_go.CallOption) (*CommonRes, common.ErrorWithAttachment) ApplyList(ctx context.Context, in *ApplyListReq, opts ...grpc_go.CallOption) (*ApplyListRes, common.ErrorWithAttachment) ApplyDetail(ctx context.Context, in *ApplyShowReq, opts ...grpc_go.CallOption) (*ApplyShowRes, common.ErrorWithAttachment) + ArtworkPriceList(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ArtworkPriceListRes, common.ErrorWithAttachment) } type artShowClient struct { @@ -53,7 +57,10 @@ type ArtShowClientImpl struct { UpdateShow func(ctx context.Context, in *SaveShowReq) (*SaveShowRes, error) DelShow func(ctx context.Context, in *DelShowReq) (*CommonRes, error) ShowList func(ctx context.Context, in *ShowListReq) (*ShowListRes, error) - ShowInfo func(ctx context.Context, in *ShowDetailReq) (*ShowArtworkDetailRes, error) + ShowListWithRel func(ctx context.Context, in *ShowListReq) (*ShowListRes, error) + ShowListForArtwork func(ctx context.Context, in *ShowListForArtworkReq) (*ShowListForArtworkRes, error) + ShowArtworkInfo func(ctx context.Context, in *ArtworkDetailReq) (*ShowArtworkDetailRes, error) + ShowDetail func(ctx context.Context, in *ShowDetailReq) (*ShowDetailRes, error) ShowStatisticalInfo func(ctx context.Context, in *ShowStatisticalInfoReq) (*ShowStatisticalInfoRes, error) ArtworkPrice func(ctx context.Context, in *ArtworkPriceReq) (*ArtworkPriceRes, error) CreateApply func(ctx context.Context, in *SaveApplyReq) (*SaveApplyRes, error) @@ -63,6 +70,7 @@ type ArtShowClientImpl struct { UpdateApplyStatus func(ctx context.Context, in *UpdateApplyStatusReq) (*CommonRes, error) ApplyList func(ctx context.Context, in *ApplyListReq) (*ApplyListRes, error) ApplyDetail func(ctx context.Context, in *ApplyShowReq) (*ApplyShowRes, error) + ArtworkPriceList func(ctx context.Context, in *ShowDetailReq) (*ArtworkPriceListRes, error) } func (c *ArtShowClientImpl) GetDubboStub(cc *triple.TripleConn) ArtShowClient { @@ -101,10 +109,28 @@ func (c *artShowClient) ShowList(ctx context.Context, in *ShowListReq, opts ...g return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowList", in, out) } -func (c *artShowClient) ShowInfo(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ShowArtworkDetailRes, common.ErrorWithAttachment) { +func (c *artShowClient) ShowListWithRel(ctx context.Context, in *ShowListReq, opts ...grpc_go.CallOption) (*ShowListRes, common.ErrorWithAttachment) { + out := new(ShowListRes) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowListWithRel", in, out) +} + +func (c *artShowClient) ShowListForArtwork(ctx context.Context, in *ShowListForArtworkReq, opts ...grpc_go.CallOption) (*ShowListForArtworkRes, common.ErrorWithAttachment) { + out := new(ShowListForArtworkRes) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowListForArtwork", in, out) +} + +func (c *artShowClient) ShowArtworkInfo(ctx context.Context, in *ArtworkDetailReq, opts ...grpc_go.CallOption) (*ShowArtworkDetailRes, common.ErrorWithAttachment) { out := new(ShowArtworkDetailRes) interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowInfo", in, out) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowArtworkInfo", in, out) +} + +func (c *artShowClient) ShowDetail(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ShowDetailRes, common.ErrorWithAttachment) { + out := new(ShowDetailRes) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ShowDetail", in, out) } func (c *artShowClient) ShowStatisticalInfo(ctx context.Context, in *ShowStatisticalInfoReq, opts ...grpc_go.CallOption) (*ShowStatisticalInfoRes, common.ErrorWithAttachment) { @@ -161,6 +187,12 @@ func (c *artShowClient) ApplyDetail(ctx context.Context, in *ApplyShowReq, opts return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ApplyDetail", in, out) } +func (c *artShowClient) ArtworkPriceList(ctx context.Context, in *ShowDetailReq, opts ...grpc_go.CallOption) (*ArtworkPriceListRes, common.ErrorWithAttachment) { + out := new(ArtworkPriceListRes) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ArtworkPriceList", in, out) +} + // ArtShowServer is the server API for ArtShow service. // All implementations must embed UnimplementedArtShowServer // for forward compatibility @@ -169,7 +201,10 @@ type ArtShowServer interface { UpdateShow(context.Context, *SaveShowReq) (*SaveShowRes, error) DelShow(context.Context, *DelShowReq) (*CommonRes, error) ShowList(context.Context, *ShowListReq) (*ShowListRes, error) - ShowInfo(context.Context, *ShowDetailReq) (*ShowArtworkDetailRes, error) + ShowListWithRel(context.Context, *ShowListReq) (*ShowListRes, error) + ShowListForArtwork(context.Context, *ShowListForArtworkReq) (*ShowListForArtworkRes, error) + ShowArtworkInfo(context.Context, *ArtworkDetailReq) (*ShowArtworkDetailRes, error) + ShowDetail(context.Context, *ShowDetailReq) (*ShowDetailRes, error) ShowStatisticalInfo(context.Context, *ShowStatisticalInfoReq) (*ShowStatisticalInfoRes, error) ArtworkPrice(context.Context, *ArtworkPriceReq) (*ArtworkPriceRes, error) CreateApply(context.Context, *SaveApplyReq) (*SaveApplyRes, error) @@ -179,6 +214,7 @@ type ArtShowServer interface { UpdateApplyStatus(context.Context, *UpdateApplyStatusReq) (*CommonRes, error) ApplyList(context.Context, *ApplyListReq) (*ApplyListRes, error) ApplyDetail(context.Context, *ApplyShowReq) (*ApplyShowRes, error) + ArtworkPriceList(context.Context, *ShowDetailReq) (*ArtworkPriceListRes, error) mustEmbedUnimplementedArtShowServer() } @@ -199,8 +235,17 @@ func (UnimplementedArtShowServer) DelShow(context.Context, *DelShowReq) (*Common func (UnimplementedArtShowServer) ShowList(context.Context, *ShowListReq) (*ShowListRes, error) { return nil, status.Errorf(codes.Unimplemented, "method ShowList not implemented") } -func (UnimplementedArtShowServer) ShowInfo(context.Context, *ShowDetailReq) (*ShowArtworkDetailRes, error) { - return nil, status.Errorf(codes.Unimplemented, "method ShowInfo not implemented") +func (UnimplementedArtShowServer) ShowListWithRel(context.Context, *ShowListReq) (*ShowListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowListWithRel not implemented") +} +func (UnimplementedArtShowServer) ShowListForArtwork(context.Context, *ShowListForArtworkReq) (*ShowListForArtworkRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowListForArtwork not implemented") +} +func (UnimplementedArtShowServer) ShowArtworkInfo(context.Context, *ArtworkDetailReq) (*ShowArtworkDetailRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowArtworkInfo not implemented") +} +func (UnimplementedArtShowServer) ShowDetail(context.Context, *ShowDetailReq) (*ShowDetailRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowDetail not implemented") } func (UnimplementedArtShowServer) ShowStatisticalInfo(context.Context, *ShowStatisticalInfoReq) (*ShowStatisticalInfoRes, error) { return nil, status.Errorf(codes.Unimplemented, "method ShowStatisticalInfo not implemented") @@ -229,6 +274,9 @@ func (UnimplementedArtShowServer) ApplyList(context.Context, *ApplyListReq) (*Ap func (UnimplementedArtShowServer) ApplyDetail(context.Context, *ApplyShowReq) (*ApplyShowRes, error) { return nil, status.Errorf(codes.Unimplemented, "method ApplyDetail not implemented") } +func (UnimplementedArtShowServer) ArtworkPriceList(context.Context, *ShowDetailReq) (*ArtworkPriceListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArtworkPriceList not implemented") +} func (s *UnimplementedArtShowServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -373,7 +421,94 @@ func _ArtShow_ShowList_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } -func _ArtShow_ShowInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { +func _ArtShow_ShowListWithRel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ShowListReq) + 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("ShowListWithRel", 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 _ArtShow_ShowListForArtwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ShowListForArtworkReq) + 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("ShowListForArtwork", 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 _ArtShow_ShowArtworkInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ArtworkDetailReq) + 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("ShowArtworkInfo", 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 _ArtShow_ShowDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(ShowDetailReq) if err := dec(in); err != nil { return nil, err @@ -386,7 +521,7 @@ func _ArtShow_ShowInfo_Handler(srv interface{}, ctx context.Context, dec func(in for k, v := range md { invAttachment[k] = v } - invo := invocation.NewRPCInvocation("ShowInfo", args, invAttachment) + invo := invocation.NewRPCInvocation("ShowDetail", args, invAttachment) if interceptor == nil { result := base.XXX_GetProxyImpl().Invoke(ctx, invo) return result, result.Error() @@ -663,6 +798,35 @@ func _ArtShow_ApplyDetail_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _ArtShow_ArtworkPriceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ShowDetailReq) + 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("ArtworkPriceList", 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) +} + // ArtShow_ServiceDesc is the grpc_go.ServiceDesc for ArtShow service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -687,8 +851,20 @@ var ArtShow_ServiceDesc = grpc_go.ServiceDesc{ Handler: _ArtShow_ShowList_Handler, }, { - MethodName: "ShowInfo", - Handler: _ArtShow_ShowInfo_Handler, + MethodName: "ShowListWithRel", + Handler: _ArtShow_ShowListWithRel_Handler, + }, + { + MethodName: "ShowListForArtwork", + Handler: _ArtShow_ShowListForArtwork_Handler, + }, + { + MethodName: "ShowArtworkInfo", + Handler: _ArtShow_ShowArtworkInfo_Handler, + }, + { + MethodName: "ShowDetail", + Handler: _ArtShow_ShowDetail_Handler, }, { MethodName: "ShowStatisticalInfo", @@ -726,6 +902,10 @@ var ArtShow_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "ApplyDetail", Handler: _ArtShow_ApplyDetail_Handler, }, + { + MethodName: "ArtworkPriceList", + Handler: _ArtShow_ArtworkPriceList_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/artshow.proto", diff --git a/pb/artshow.proto b/pb/artshow.proto index 76706fb..63a7c66 100644 --- a/pb/artshow.proto +++ b/pb/artshow.proto @@ -7,8 +7,11 @@ service ArtShow { rpc CreateShow (SaveShowReq) returns (SaveShowRes) {} // 画展包创建操作 rpc UpdateShow (SaveShowReq) returns (SaveShowRes) {} // 画展包更新操作 rpc DelShow (DelShowReq) returns (CommonRes) {} // 画展包删除操作 - rpc ShowList (ShowListReq) returns (ShowListRes) {} // 画展包列表展示 - rpc ShowInfo (ShowDetailReq) returns (ShowArtworkDetailRes) {} // 画展包展示 + rpc ShowList (ShowListReq) returns (ShowListRes) {} // 画展包列表展示 不携带 画展时间 画展地址 + rpc ShowListWithRel (ShowListReq) returns (ShowListRes) {} // 画展包列表展示 携带 画展时间 画展地址 + rpc ShowListForArtwork (ShowListForArtworkReq) returns (ShowListForArtworkRes) {} // 画展包列表展示 画作使用 + rpc ShowArtworkInfo (ArtworkDetailReq) returns (ShowArtworkDetailRes) {} // 画展包画作展示 + rpc ShowDetail (ShowDetailReq) returns (ShowDetailRes) {} // 画展包展示 rpc ShowStatisticalInfo (ShowStatisticalInfoReq) returns (ShowStatisticalInfoRes) {} // 画展统计(画作数量、画家数量) rpc ArtworkPrice (ArtworkPriceReq) returns (ArtworkPriceRes) {} // 画作价格 rpc CreateApply (SaveApplyReq) returns (SaveApplyRes) {} // 创建画展包申请 @@ -18,28 +21,34 @@ service ArtShow { rpc UpdateApplyStatus (UpdateApplyStatusReq) returns (CommonRes) {} // 更新画展包状态 rpc ApplyList (ApplyListReq) returns (ApplyListRes) {} // 画展包申请列表 rpc ApplyDetail (ApplyShowReq) returns (ApplyShowRes) {} // 画展包申请列表 + rpc ArtworkPriceList (ShowDetailReq) returns (ArtworkPriceListRes) {} // 画作详情列表 } // 创建 更新画展包 + message SaveShowReq { string ShowName = 1 [json_name = "show_name"]; string ArtistName = 2 [json_name = "artist_name"]; - string ArtistID = 3 [json_name = "artist_id"]; + string ArtistUID = 3 [json_name = "artist_uid"]; int32 ArtworkNum = 4 [json_name = "artwork_num"]; int32 Ruler = 5 [json_name = "ruler"]; int64 Price = 6 [json_name = "price"]; int64 Reward = 7 [json_name = "reward"]; int32 IsShow = 8 [json_name = "is_show"]; - string ShowTime = 9 [json_name = "show_time"]; + string CreateTime = 9 [json_name = "create_time"]; + string Operator = 10 [json_name = "operator"]; + string ShowSeq = 11 [json_name = "show_seq"]; - repeated ShowArtworkDetail ShowArtwork = 10 [json_name = "show_artwork"]; + string ShowUID = 12 [json_name = "id"]; + + repeated ArtworkDetail Artwork = 13 [json_name = "show_artwork"]; + repeated DelArtworkDetail DelArtwork = 14 [json_name = "del_show_artwork"]; - int64 ID = 11 [json_name = "id"]; } message SaveShowRes { string Msg = 1 [json_name = "msg"]; - int64 ShowID = 2 [json_name = "show_id"]; + string ShowUID = 2 [json_name = "show_uid"]; } message CommonRes { @@ -48,25 +57,38 @@ message CommonRes { // 画展包详情 message ShowDetailReq { - int64 ShowID = 1 [json_name = "show_id"]; + repeated string ShowUID = 1 [json_name = "show_uid"]; +} + +message ArtworkDetailReq { + string ShowUID = 1 [json_name = "show_uid"]; } message ShowDetail { - int64 ID = 1 [json_name = "id"]; + string ShowUID = 1 [json_name = "show_uid"]; string ShowSeq = 2 [json_name = "show_seq"]; string ShowName = 3 [json_name = "show_name"]; string ArtistName = 4 [json_name = "artist_name"]; - string ArtistID = 5 [json_name = "artist_id"]; + string ArtistUID = 5 [json_name = "artist_uid"]; int32 ArtworkNum = 6 [json_name = "artwork_num"]; int32 Ruler = 7 [json_name = "ruler"]; int64 Price = 8 [json_name = "price"]; int64 Reward = 9 [json_name = "reward"]; - string ShowTime = 10 [json_name = "show_time"]; - int32 IsShow = 11 [json_name = "is_show"]; + string CreateTime = 10 [json_name = "create_time"]; + string Operator = 11 [json_name = "operator"]; + int32 IsShow = 12 [json_name = "is_show"]; + + string ShowTime = 13 [json_name = "show_time"]; + string Address = 14 [json_name = "address"]; +} + +message ShowDetailRes { + repeated ShowDetail Data = 1 [json_name = "data"]; + string Msg = 2 [json_name = "msg"]; } message ShowArtworkDetailRes { - repeated ShowArtworkDetail data = 1 [json_name = "data"]; + repeated ArtworkDetail data = 1 [json_name = "data"]; string Msg = 2 [json_name = "msg"]; } @@ -75,10 +97,24 @@ message ShowListReq { int32 Page = 1 [json_name = "page"]; int32 PageSize = 2 [json_name = "page_size"]; - string StartTime = 3 [json_name = "start_time"]; - string EndTime = 4 [json_name = "end_time"]; - string ArtistID = 5 [json_name = "artist_id"]; - int32 IsShow = 6 [json_name = "is_show"]; + string StartShowTime = 3 [json_name = "start_show_time"]; + string EndShowTime = 4 [json_name = "end_show_time"]; + string ShowSeq = 5 [json_name = "show_seq"]; + string ShowName = 6 [json_name = "show_name"]; + string ArtistName = 7 [json_name = "artist_name"]; + int64 StartPrice = 8 [json_name = "start_price"]; + int64 EndPrice = 9 [json_name = "end_price"]; + int64 StartReward = 10 [json_name = "start_reward"]; + int64 EndReward = 11 [json_name = "end_reward"]; + string Address = 12 [json_name = "address"]; + repeated int32 IsShow = 13 [json_name = "is_show"]; +} + +message ShowListForArtworkReq { + int32 Page = 1 [json_name = "page"]; + int32 PageSize = 2 [json_name = "page_size"]; + + string ArtistUID = 3 [json_name = "artist_uid"]; } message ShowListRes { @@ -90,20 +126,58 @@ message ShowListRes { string Msg = 5 [json_name = "msg"]; } +message ShowListForArtworkRes { + int64 Total = 1 [json_name = "total"]; + string Msg = 2 [json_name = "msg"]; + repeated ShowDetail Data = 3 [json_name = "data"]; +} + + // 删除画展包 message DelShowReq { - repeated int64 ShowID = 1 [json_name = "show_id"]; + repeated string ShowUID = 1 [json_name = "show_uid"]; } // 画展包中画作详情 除价格 -message ShowArtworkDetail { - int64 ID = 1 [json_name = "id"]; - int64 ShowID =2 [json_name = "show_id"]; - int64 ArtworkID = 3 [json_name = "artwork_id"]; +message ArtworkDetail { + string ArtworkPriceUID = 1 [json_name = "artwork_price_uid"]; + string ShowUID =2 [json_name = "show_uid"]; + string ArtworkUID = 3 [json_name = "artwork_uid"]; string ArtworkName = 4 [json_name = "artwork_name"]; string ArtistName = 5 [json_name = "artist_name"]; - int32 Ruler = 6 [json_name = "ruler"]; - string SmallPic = 7 [json_name = "small_pic"]; + int32 Length = 6 [json_name = "length"]; + int32 Width = 7 [json_name = "width"]; + int32 Ruler = 8 [json_name = "ruler"]; + string SmallPic = 9 [json_name = "small_pic"]; +} + +// 画作详情 +message ArtworkPriceDetail { + string ArtworkPriceUID = 1 [json_name = "artwork_price_uid"]; + string ShowUID =2 [json_name = "show_uid"]; + string ArtworkUID = 3 [json_name = "artwork_uid"]; + string ArtworkName = 4 [json_name = "artwork_name"]; + string ArtistName = 5 [json_name = "artist_name"]; + int32 Length = 6 [json_name = "length"]; + int32 Width = 7 [json_name = "width"]; + int32 Ruler = 8 [json_name = "ruler"]; + string SmallPic = 9 [json_name = "small_pic"]; + int64 Price = 10 [json_name = "price"]; + int64 RulerPrice = 11 [json_name = "ruler_price"]; + int64 ArtworkPrice = 12 [json_name = "artwork_price"]; + int64 MarketPrice = 13 [json_name = "market_price"]; + int64 CopyrightPrice = 14 [json_name = "copyright_price"]; +} + +message ArtworkPriceListRes { + repeated ArtworkPriceDetail Data = 1 [json_name = "data"]; + string Msg = 2 [json_name = "msg"]; +} + +// 画展包 删除的画作信息 +message DelArtworkDetail { + string ArtworkPriceUID = 1 [json_name = "artwork_price_uid"]; + string ArtworkUID = 2 [json_name = "artwork_uid"]; } // 画展包 画家 画作 统计数据 @@ -115,6 +189,9 @@ message ShowStatisticalInfoRes { message Num { int64 ArtistNum = 1 [json_name = "artist_num"]; int64 PackageNum = 2 [json_name = "package_num"]; + int64 TotalNum = 3 [json_name = "total_num"]; + int64 NotShowNum = 4 [json_name = "not_show_num"]; + int64 ShowHisNum = 5 [json_name = "show_his_num"]; } Num Data = 1 [json_name = "data"]; @@ -122,7 +199,7 @@ message ShowStatisticalInfoRes { } message ArtworkPriceReq { - int64 ArtworkID = 1 [json_name = "artwork_id"]; + string ArtworkUID = 1 [json_name = "artwork_uid"]; } message ArtworkPriceRes { @@ -139,29 +216,36 @@ message ArtworkPriceRes { message ShowRel { - int64 ID = 1 [json_name = "id"]; - int64 ApplyID = 2 [json_name = "apply_id"]; - int64 ShowID = 3 [json_name = "show_id"]; + string ShowRelUID = 1 [json_name = "show_rel_uid"]; + string ApplyUID = 2 [json_name = "apply_uid"]; + string ShowUID = 3 [json_name = "show_uid"]; int32 Index = 4 [json_name = "index"]; string Address = 5 [json_name = "address"]; + string ShowTime = 6 [json_name = "show_time"]; +} + +message DelShowRel { + string ShowRelUID = 1 [json_name = "show_rel_uid"]; + string ShowUID = 2 [json_name = "show_uid"]; } message SaveApplyReq { string Applicant = 1 [json_name = "applicant"]; - int64 ApplicantID = 2 [json_name = "applicant_id"]; + string ApplicantID = 2 [json_name = "applicant_id"]; int32 Num = 3 [json_name = "num"]; string ApplyTime = 4 [json_name = "apply_time"]; - int64 ID = 5 [json_name = "id"]; + string ApplyUID = 5 [json_name = "apply_uid"]; int32 Status = 6 [json_name = "status"]; string Remark = 7 [json_name = "remark"]; repeated ShowRel Rel = 8 [json_name = "rel"]; + repeated DelShowRel DelRel = 9 [json_name = "del_rel"]; } message SaveApplyRes { string Msg = 1 [json_name = "msg"]; - int64 ApplyID = 2 [json_name = "apply_id"]; + string ApplyUID = 2 [json_name = "apply_uid"]; } message ApplyListReq { @@ -177,20 +261,20 @@ message ApplyListRes { } message ApplyShowReq { - int64 ApplyID = 1 [json_name = "apply_id"]; + string ApplyUID = 1 [json_name = "apply_uid"]; } message ApplyShowRes { ApplyDetail Apply = 1 [json_name = "apply"]; repeated ShowDetail Show = 2 [json_name = "show"]; - string Msg = 3 [json_name = "msg"]; + string Msg = 3 [json_name = "msg"]; } message ApplyDetail { - int64 ID = 1 [json_name = "id"]; + string ApplyUID = 1 [json_name = "apply_uid"]; string ApplySeq = 2 [json_name = "apply_seq"]; string Applicant = 3 [json_name = "applicant"]; - int64 ApplicantID = 4 [json_name = "applicant_id"]; + string ApplicantID = 4 [json_name = "applicant_id"]; int32 Num = 5 [json_name = "num"]; string ApplyTime = 6 [json_name = "apply_time"]; int32 Status = 7 [json_name = "status"]; @@ -198,7 +282,7 @@ message ApplyDetail { } message ShowRelListReq { - int64 ApplyID = 1 [json_name = "apply_id"]; + string ApplyUID = 1 [json_name = "apply_uid"]; } message ShowRelListRes { @@ -209,9 +293,9 @@ message ShowRelListRes { message UpdateApplyStatusReq { int32 Status = 1 [json_name = "status"]; string Remark = 2 [json_name = "remark"]; - int64 ApplyID = 3 [json_name = "apply_id"]; + string ApplyUID = 3 [json_name = "apply_uid"]; } message DelApplyReq { - repeated int64 ApplyID = 1 [json_name = "apply_id"]; + repeated string ApplyUID = 1 [json_name = "apply_uid"]; } diff --git a/pb/grpc/artshow_grpc.pb.go b/pb/grpc/artshow_grpc.pb.go new file mode 100644 index 0000000..42e240d --- /dev/null +++ b/pb/grpc/artshow_grpc.pb.go @@ -0,0 +1,718 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.10.1 +// source: pb/artshow.proto + +package grpc + +import ( + context "context" + "fonchain-artshow/pb/artShow" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// ArtShowClient is the client API for ArtShow service. +// +// 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 ArtShowClient interface { + CreateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) + UpdateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) + DelShow(ctx context.Context, in *artShow.DelShowReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) + ShowList(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) + ShowListWithRel(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) + ShowListForArtwork(ctx context.Context, in *artShow.ShowListForArtworkReq, opts ...grpc.CallOption) (*artShow.ShowListForArtworkRes, error) + ShowArtworkInfo(ctx context.Context, in *artShow.ArtworkDetailReq, opts ...grpc.CallOption) (*artShow.ShowArtworkDetailRes, error) + ShowDetail(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ShowDetailRes, error) + ShowStatisticalInfo(ctx context.Context, in *artShow.ShowStatisticalInfoReq, opts ...grpc.CallOption) (*artShow.ShowStatisticalInfoRes, error) + ArtworkPrice(ctx context.Context, in *artShow.ArtworkPriceReq, opts ...grpc.CallOption) (*artShow.ArtworkPriceRes, error) + CreateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) + UpdateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) + DelApply(ctx context.Context, in *artShow.DelApplyReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) + ShowListWithApply(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) + UpdateApplyStatus(ctx context.Context, in *artShow.UpdateApplyStatusReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) + ApplyList(ctx context.Context, in *artShow.ApplyListReq, opts ...grpc.CallOption) (*artShow.ApplyListRes, error) + ApplyDetail(ctx context.Context, in *artShow.ApplyShowReq, opts ...grpc.CallOption) (*artShow.ApplyShowRes, error) + ArtworkPriceList(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ArtworkPriceListRes, error) +} + +type artShowClient struct { + cc grpc.ClientConnInterface +} + +func NewArtShowClient(cc grpc.ClientConnInterface) ArtShowClient { + return &artShowClient{cc} +} + +func (c *artShowClient) CreateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) { + out := new(artShow.SaveShowRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/CreateShow", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) UpdateShow(ctx context.Context, in *artShow.SaveShowReq, opts ...grpc.CallOption) (*artShow.SaveShowRes, error) { + out := new(artShow.SaveShowRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/UpdateShow", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) DelShow(ctx context.Context, in *artShow.DelShowReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) { + out := new(artShow.CommonRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/DelShow", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowList(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) { + out := new(artShow.ShowListRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowListWithRel(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) { + out := new(artShow.ShowListRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowListWithRel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowListForArtwork(ctx context.Context, in *artShow.ShowListForArtworkReq, opts ...grpc.CallOption) (*artShow.ShowListForArtworkRes, error) { + out := new(artShow.ShowListForArtworkRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowListForArtwork", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowArtworkInfo(ctx context.Context, in *artShow.ArtworkDetailReq, opts ...grpc.CallOption) (*artShow.ShowArtworkDetailRes, error) { + out := new(artShow.ShowArtworkDetailRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowArtworkInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowDetail(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ShowDetailRes, error) { + out := new(artShow.ShowDetailRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowDetail", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowStatisticalInfo(ctx context.Context, in *artShow.ShowStatisticalInfoReq, opts ...grpc.CallOption) (*artShow.ShowStatisticalInfoRes, error) { + out := new(artShow.ShowStatisticalInfoRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowStatisticalInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ArtworkPrice(ctx context.Context, in *artShow.ArtworkPriceReq, opts ...grpc.CallOption) (*artShow.ArtworkPriceRes, error) { + out := new(artShow.ArtworkPriceRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ArtworkPrice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) CreateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) { + out := new(artShow.SaveApplyRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/CreateApply", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) UpdateApply(ctx context.Context, in *artShow.SaveApplyReq, opts ...grpc.CallOption) (*artShow.SaveApplyRes, error) { + out := new(artShow.SaveApplyRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/UpdateApply", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) DelApply(ctx context.Context, in *artShow.DelApplyReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) { + out := new(artShow.CommonRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/DelApply", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ShowListWithApply(ctx context.Context, in *artShow.ShowListReq, opts ...grpc.CallOption) (*artShow.ShowListRes, error) { + out := new(artShow.ShowListRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ShowListWithApply", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) UpdateApplyStatus(ctx context.Context, in *artShow.UpdateApplyStatusReq, opts ...grpc.CallOption) (*artShow.CommonRes, error) { + out := new(artShow.CommonRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/UpdateApplyStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ApplyList(ctx context.Context, in *artShow.ApplyListReq, opts ...grpc.CallOption) (*artShow.ApplyListRes, error) { + out := new(artShow.ApplyListRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ApplyList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ApplyDetail(ctx context.Context, in *artShow.ApplyShowReq, opts ...grpc.CallOption) (*artShow.ApplyShowRes, error) { + out := new(artShow.ApplyShowRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ApplyDetail", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *artShowClient) ArtworkPriceList(ctx context.Context, in *artShow.ShowDetailReq, opts ...grpc.CallOption) (*artShow.ArtworkPriceListRes, error) { + out := new(artShow.ArtworkPriceListRes) + err := c.cc.Invoke(ctx, "/ArtShow.ArtShow/ArtworkPriceList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ArtShowServer is the server API for ArtShow service. +// All implementations must embed UnimplementedArtShowServer +// for forward compatibility +type ArtShowServer interface { + CreateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) + UpdateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) + DelShow(context.Context, *artShow.DelShowReq) (*artShow.CommonRes, error) + ShowList(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) + ShowListWithRel(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) + ShowListForArtwork(context.Context, *artShow.ShowListForArtworkReq) (*artShow.ShowListForArtworkRes, error) + ShowArtworkInfo(context.Context, *artShow.ArtworkDetailReq) (*artShow.ShowArtworkDetailRes, error) + ShowDetail(context.Context, *artShow.ShowDetailReq) (*artShow.ShowDetailRes, error) + ShowStatisticalInfo(context.Context, *artShow.ShowStatisticalInfoReq) (*artShow.ShowStatisticalInfoRes, error) + ArtworkPrice(context.Context, *artShow.ArtworkPriceReq) (*artShow.ArtworkPriceRes, error) + CreateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) + UpdateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) + DelApply(context.Context, *artShow.DelApplyReq) (*artShow.CommonRes, error) + ShowListWithApply(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) + UpdateApplyStatus(context.Context, *artShow.UpdateApplyStatusReq) (*artShow.CommonRes, error) + ApplyList(context.Context, *artShow.ApplyListReq) (*artShow.ApplyListRes, error) + ApplyDetail(context.Context, *artShow.ApplyShowReq) (*artShow.ApplyShowRes, error) + ArtworkPriceList(context.Context, *artShow.ShowDetailReq) (*artShow.ArtworkPriceListRes, error) + mustEmbedUnimplementedArtShowServer() +} + +// UnimplementedArtShowServer must be embedded to have forward compatible implementations. +type UnimplementedArtShowServer struct { +} + +func (UnimplementedArtShowServer) CreateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateShow not implemented") +} +func (UnimplementedArtShowServer) UpdateShow(context.Context, *artShow.SaveShowReq) (*artShow.SaveShowRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateShow not implemented") +} +func (UnimplementedArtShowServer) DelShow(context.Context, *artShow.DelShowReq) (*artShow.CommonRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method DelShow not implemented") +} +func (UnimplementedArtShowServer) ShowList(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowList not implemented") +} +func (UnimplementedArtShowServer) ShowListWithRel(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowListWithRel not implemented") +} +func (UnimplementedArtShowServer) ShowListForArtwork(context.Context, *artShow.ShowListForArtworkReq) (*artShow.ShowListForArtworkRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowListForArtwork not implemented") +} +func (UnimplementedArtShowServer) ShowArtworkInfo(context.Context, *artShow.ArtworkDetailReq) (*artShow.ShowArtworkDetailRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowArtworkInfo not implemented") +} +func (UnimplementedArtShowServer) ShowDetail(context.Context, *artShow.ShowDetailReq) (*artShow.ShowDetailRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowDetail not implemented") +} +func (UnimplementedArtShowServer) ShowStatisticalInfo(context.Context, *artShow.ShowStatisticalInfoReq) (*artShow.ShowStatisticalInfoRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowStatisticalInfo not implemented") +} +func (UnimplementedArtShowServer) ArtworkPrice(context.Context, *artShow.ArtworkPriceReq) (*artShow.ArtworkPriceRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArtworkPrice not implemented") +} +func (UnimplementedArtShowServer) CreateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateApply not implemented") +} +func (UnimplementedArtShowServer) UpdateApply(context.Context, *artShow.SaveApplyReq) (*artShow.SaveApplyRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApply not implemented") +} +func (UnimplementedArtShowServer) DelApply(context.Context, *artShow.DelApplyReq) (*artShow.CommonRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method DelApply not implemented") +} +func (UnimplementedArtShowServer) ShowListWithApply(context.Context, *artShow.ShowListReq) (*artShow.ShowListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ShowListWithApply not implemented") +} +func (UnimplementedArtShowServer) UpdateApplyStatus(context.Context, *artShow.UpdateApplyStatusReq) (*artShow.CommonRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApplyStatus not implemented") +} +func (UnimplementedArtShowServer) ApplyList(context.Context, *artShow.ApplyListReq) (*artShow.ApplyListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ApplyList not implemented") +} +func (UnimplementedArtShowServer) ApplyDetail(context.Context, *artShow.ApplyShowReq) (*artShow.ApplyShowRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ApplyDetail not implemented") +} +func (UnimplementedArtShowServer) ArtworkPriceList(context.Context, *artShow.ShowDetailReq) (*artShow.ArtworkPriceListRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArtworkPriceList not implemented") +} +func (UnimplementedArtShowServer) mustEmbedUnimplementedArtShowServer() {} + +// UnsafeArtShowServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ArtShowServer will +// result in compilation errors. +type UnsafeArtShowServer interface { + mustEmbedUnimplementedArtShowServer() +} + +func RegisterArtShowServer(s grpc.ServiceRegistrar, srv ArtShowServer) { + s.RegisterService(&ArtShow_ServiceDesc, srv) +} + +func _ArtShow_CreateShow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.SaveShowReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).CreateShow(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/CreateShow", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).CreateShow(ctx, req.(*artShow.SaveShowReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_UpdateShow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.SaveShowReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).UpdateShow(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/UpdateShow", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).UpdateShow(ctx, req.(*artShow.SaveShowReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_DelShow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.DelShowReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).DelShow(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/DelShow", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).DelShow(ctx, req.(*artShow.DelShowReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowList(ctx, req.(*artShow.ShowListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowListWithRel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowListWithRel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowListWithRel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowListWithRel(ctx, req.(*artShow.ShowListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowListForArtwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowListForArtworkReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowListForArtwork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowListForArtwork", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowListForArtwork(ctx, req.(*artShow.ShowListForArtworkReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowArtworkInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ArtworkDetailReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowArtworkInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowArtworkInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowArtworkInfo(ctx, req.(*artShow.ArtworkDetailReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowDetailReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowDetail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowDetail", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowDetail(ctx, req.(*artShow.ShowDetailReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowStatisticalInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowStatisticalInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowStatisticalInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowStatisticalInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowStatisticalInfo(ctx, req.(*artShow.ShowStatisticalInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ArtworkPrice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ArtworkPriceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ArtworkPrice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ArtworkPrice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ArtworkPrice(ctx, req.(*artShow.ArtworkPriceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_CreateApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.SaveApplyReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).CreateApply(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/CreateApply", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).CreateApply(ctx, req.(*artShow.SaveApplyReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_UpdateApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.SaveApplyReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).UpdateApply(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/UpdateApply", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).UpdateApply(ctx, req.(*artShow.SaveApplyReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_DelApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.DelApplyReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).DelApply(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/DelApply", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).DelApply(ctx, req.(*artShow.DelApplyReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ShowListWithApply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ShowListWithApply(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ShowListWithApply", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ShowListWithApply(ctx, req.(*artShow.ShowListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_UpdateApplyStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.UpdateApplyStatusReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).UpdateApplyStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/UpdateApplyStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).UpdateApplyStatus(ctx, req.(*artShow.UpdateApplyStatusReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ApplyListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ApplyList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ApplyList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ApplyList(ctx, req.(*artShow.ApplyListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ApplyDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ApplyShowReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ApplyDetail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ApplyDetail", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ApplyDetail(ctx, req.(*artShow.ApplyShowReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ArtShow_ArtworkPriceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(artShow.ShowDetailReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ArtShowServer).ArtworkPriceList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ArtShow.ArtShow/ArtworkPriceList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ArtShowServer).ArtworkPriceList(ctx, req.(*artShow.ShowDetailReq)) + } + return interceptor(ctx, in, info, handler) +} + +// ArtShow_ServiceDesc is the grpc.ServiceDesc for ArtShow service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ArtShow_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "ArtShow.ArtShow", + HandlerType: (*ArtShowServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateShow", + Handler: _ArtShow_CreateShow_Handler, + }, + { + MethodName: "UpdateShow", + Handler: _ArtShow_UpdateShow_Handler, + }, + { + MethodName: "DelShow", + Handler: _ArtShow_DelShow_Handler, + }, + { + MethodName: "ShowList", + Handler: _ArtShow_ShowList_Handler, + }, + { + MethodName: "ShowListWithRel", + Handler: _ArtShow_ShowListWithRel_Handler, + }, + { + MethodName: "ShowListForArtwork", + Handler: _ArtShow_ShowListForArtwork_Handler, + }, + { + MethodName: "ShowArtworkInfo", + Handler: _ArtShow_ShowArtworkInfo_Handler, + }, + { + MethodName: "ShowDetail", + Handler: _ArtShow_ShowDetail_Handler, + }, + { + MethodName: "ShowStatisticalInfo", + Handler: _ArtShow_ShowStatisticalInfo_Handler, + }, + { + MethodName: "ArtworkPrice", + Handler: _ArtShow_ArtworkPrice_Handler, + }, + { + MethodName: "CreateApply", + Handler: _ArtShow_CreateApply_Handler, + }, + { + MethodName: "UpdateApply", + Handler: _ArtShow_UpdateApply_Handler, + }, + { + MethodName: "DelApply", + Handler: _ArtShow_DelApply_Handler, + }, + { + MethodName: "ShowListWithApply", + Handler: _ArtShow_ShowListWithApply_Handler, + }, + { + MethodName: "UpdateApplyStatus", + Handler: _ArtShow_UpdateApplyStatus_Handler, + }, + { + MethodName: "ApplyList", + Handler: _ArtShow_ApplyList_Handler, + }, + { + MethodName: "ApplyDetail", + Handler: _ArtShow_ApplyDetail_Handler, + }, + { + MethodName: "ArtworkPriceList", + Handler: _ArtShow_ArtworkPriceList_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "pb/artshow.proto", +} diff --git a/pkg/db/init.go b/pkg/db/init.go index eebd1f5..674b2e9 100644 --- a/pkg/db/init.go +++ b/pkg/db/init.go @@ -40,7 +40,7 @@ func Init(confPath string) { path := strings.Join([]string{DbUser, ":", DbPassWord, "@tcp(", DbHost, ":", DbPort, ")/", DbName, "?charset=utf8&parseTime=true"}, "") //连接数据库 Database(path) - migration() //迁移表 按需打开 + //migration() //迁移表 按需打开 } func LoadMysqlData(file *ini.File) { diff --git a/pkg/m/msg.go b/pkg/m/msg.go index fef2302..4a5d7d9 100644 --- a/pkg/m/msg.go +++ b/pkg/m/msg.go @@ -43,6 +43,10 @@ const ( SHOWAPPLY_SHOW // 画展包关联审批 SHOWAPPLY_SHOW_REJECT // 关联审批驳回 SHOWAPPLY_PASS // 可展 + + SHOWAPPLYStatusDoing = 1 + SHOWAPPLYStatusOk = 2 + SHOWAPPLYStatusFail = 3 ) const ( @@ -62,8 +66,10 @@ const ( ERROR_CREATE = "创建失败" // 画展包创建错误 - ERROR_SHOW_NAME = "画展包名缺失" - ERROR_TIME = "生成时间缺失" + ERROR_SHOW_NAME = "画展包名缺失" + ERROR_SHOW_EXIST = "画展包名已存在" + ERROR_ARTWORK_CREATE = "画展包画作创建失败" + ERROR_TIME = "生成时间缺失" ERROR_INVALID_ID = "无效的记录ID" @@ -74,4 +80,5 @@ const ( ERROR_NUM = "数量错误" ERROR_NOT_UPDATE_ISSHOW = "画展包已被使用" + ERROR_NOT_ARTIST_SEQ = "无效的画家编号" ) diff --git a/pkg/serializer/art_show.go b/pkg/serializer/art_show.go index 08bdd1c..566c950 100644 --- a/pkg/serializer/art_show.go +++ b/pkg/serializer/art_show.go @@ -4,25 +4,22 @@ import ( "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/m" - "strings" - "time" ) func BuildArtShowM(in *artShow.SaveShowReq) (out *model.ArtShow) { out = new(model.ArtShow) - if in.ID == 0 { - out.ShowSeq = strings.Join([]string{m.ARTSHOW_PREFIX, time.Now().Format("20060102150405")}, "") - } else { - out.ID = uint(in.ID) - } + + out.ShowUID = in.ShowUID out.ShowName = in.ShowName out.ArtistName = in.ArtistName - out.ArtistID = in.ArtistID + out.ArtistUID = in.ArtistUID + out.ShowSeq = in.ShowSeq out.ArtworkNum = in.ArtworkNum out.Price = in.Price out.Ruler = in.Ruler out.Reward = in.Reward - out.ShowTime = in.ShowTime + out.CreateTime = in.CreateTime + out.Operator = in.Operator if in.IsShow == 0 { out.IsShow = m.ARTSHOW_INSIDE } else { @@ -32,7 +29,7 @@ func BuildArtShowM(in *artShow.SaveShowReq) (out *model.ArtShow) { return } -func BuildArtShowListRes(artShows []*model.ArtShow) (out []*artShow.ShowDetail) { +func BuildArtShowListRes(artShows []*model.ArtShowRes) (out []*artShow.ShowDetail) { out = make([]*artShow.ShowDetail, 0) for i := 0; i < len(artShows); i++ { artShowM := BuildArtShowRpc(artShows[i]) @@ -41,17 +38,28 @@ func BuildArtShowListRes(artShows []*model.ArtShow) (out []*artShow.ShowDetail) return } -func BuildArtShowRpc(artShowM *model.ArtShow) (out *artShow.ShowDetail) { +func BuildArtShowRpc(artShowM *model.ArtShowRes) (out *artShow.ShowDetail) { out = new(artShow.ShowDetail) - out.ID = int64(artShowM.ID) + out.ShowUID = artShowM.ShowUID out.ShowSeq = artShowM.ShowSeq out.ShowName = artShowM.ShowName out.ArtistName = artShowM.ArtistName + out.ArtistUID = artShowM.ArtistUID out.ArtworkNum = artShowM.ArtworkNum out.Ruler = artShowM.Ruler out.Price = artShowM.Price out.Reward = artShowM.Reward - out.ShowTime = artShowM.ShowTime + out.CreateTime = artShowM.CreateTime + out.Operator = artShowM.Operator out.IsShow = int32(artShowM.IsShow) + out.Address = artShowM.Address + out.ShowTime = artShowM.ShowTime + return +} + +func BuildArtShowIsShowM(show_uid string, isShow int8) (out *model.ArtShow) { + out = new(model.ArtShow) + out.ShowUID = show_uid + out.IsShow = isShow return } diff --git a/pkg/serializer/artwork_price.go b/pkg/serializer/artwork_price.go index 22ba6bf..dfca446 100644 --- a/pkg/serializer/artwork_price.go +++ b/pkg/serializer/artwork_price.go @@ -5,38 +5,83 @@ import ( "fonchain-artshow/pb/artShow" ) -func BuildShowArtworkM(in []*artShow.ShowArtworkDetail, showID uint) (out []*model.ArtworkPrice) { +func BuildShowArtworkM(in []*artShow.ArtworkDetail, showUID string) (out []*model.ArtworkPrice) { out = make([]*model.ArtworkPrice, len(in)) for i := 0; i < len(in); i++ { artworkPrice := new(model.ArtworkPrice) - artworkPrice.ArtworkID = in[i].ArtworkID + artworkPrice.ArtworkUID = in[i].ArtworkUID artworkPrice.ArtworkName = in[i].ArtworkName artworkPrice.ArtistName = in[i].ArtistName artworkPrice.SmallPic = in[i].SmallPic artworkPrice.Ruler = in[i].Ruler - if in[i].ID != 0 { - artworkPrice.ID = uint(in[i].ID) - } - if in[i].ShowID == 0 { - artworkPrice.ShowID = showID + artworkPrice.Length = in[i].Length + artworkPrice.Width = in[i].Width + artworkPrice.ArtworkPriceUID = in[i].ArtworkPriceUID + if showUID != "" { + artworkPrice.ShowUID = showUID } else { - artworkPrice.ShowID = uint(in[i].ShowID) + artworkPrice.ShowUID = in[i].ShowUID } out[i] = artworkPrice } return } -func BuildShowArtworkRpc(in []*model.ArtworkPrice) (out []*artShow.ShowArtworkDetail) { - out = make([]*artShow.ShowArtworkDetail, len(in)) +func BuildShowArtwork(in *artShow.ArtworkDetail, showUID string) (out *model.ArtworkPrice) { + out = new(model.ArtworkPrice) + out.ArtworkUID = in.ArtworkUID + out.ArtworkName = in.ArtworkName + out.ArtistName = in.ArtistName + out.SmallPic = in.SmallPic + out.Ruler = in.Ruler + out.Length = in.Length + out.Width = in.Width + out.ArtworkPriceUID = in.ArtworkPriceUID + if showUID != "" { + out.ShowUID = showUID + } else { + out.ShowUID = in.ShowUID + } + return +} + +func BuildShowArtworkRpc(in []*model.ArtworkPrice) (out []*artShow.ArtworkDetail) { + out = make([]*artShow.ArtworkDetail, len(in)) for i := 0; i < len(in); i++ { - artworkPrice := new(artShow.ShowArtworkDetail) - artworkPrice.ShowID = int64(in[i].ShowID) - artworkPrice.ArtworkID = in[i].ArtworkID + artworkPrice := new(artShow.ArtworkDetail) + artworkPrice.ArtworkPriceUID = in[i].ArtworkPriceUID + artworkPrice.ShowUID = in[i].ShowUID + artworkPrice.ArtworkUID = in[i].ArtworkUID artworkPrice.ArtworkName = in[i].ArtworkName artworkPrice.ArtistName = in[i].ArtistName artworkPrice.SmallPic = in[i].SmallPic artworkPrice.Ruler = in[i].Ruler + artworkPrice.Length = in[i].Length + artworkPrice.Width = in[i].Width + + out[i] = artworkPrice + } + return +} + +func BuildShowArtworkListRpc(in []*model.ArtworkPrice) (out []*artShow.ArtworkPriceDetail) { + out = make([]*artShow.ArtworkPriceDetail, len(in)) + for i := 0; i < len(in); i++ { + artworkPrice := new(artShow.ArtworkPriceDetail) + artworkPrice.ArtworkPriceUID = in[i].ArtworkPriceUID + artworkPrice.ShowUID = in[i].ShowUID + artworkPrice.ArtworkUID = in[i].ArtworkUID + artworkPrice.ArtworkName = in[i].ArtworkName + artworkPrice.ArtistName = in[i].ArtistName + artworkPrice.SmallPic = in[i].SmallPic + artworkPrice.Ruler = in[i].Ruler + artworkPrice.Length = in[i].Length + artworkPrice.Width = in[i].Width + artworkPrice.Price = in[i].Price + artworkPrice.RulerPrice = in[i].RulerPrice + artworkPrice.ArtworkPrice = in[i].ArtworkPrice + artworkPrice.MarketPrice = in[i].MarketPrice + artworkPrice.CopyrightPrice = in[i].CopyrightPrice out[i] = artworkPrice } @@ -54,10 +99,18 @@ func BuildArtworkPriceRes(artworkPrice *model.ArtworkPrice) (out *artShow.Artwor return } -func BuildArtworkPriceIDs(in []*model.ArtworkPrice) (out []uint) { - out = make([]uint, len(in)) +func BuildArtworkPriceIDs(in []*model.ArtworkPrice) (out []string) { + out = make([]string, len(in)) for i := 0; i < len(in); i++ { - out[i] = in[i].ID + out[i] = in[i].ArtworkPriceUID + } + return +} + +func BuildArtworkIDs(in []*model.ArtworkPrice) (out []string) { + out = make([]string, len(in)) + for i := 0; i < len(in); i++ { + out[i] = in[i].ArtworkUID } return } diff --git a/pkg/serializer/calc_price.go b/pkg/serializer/calc_price.go index d9472af..f22c1c4 100644 --- a/pkg/serializer/calc_price.go +++ b/pkg/serializer/calc_price.go @@ -2,69 +2,206 @@ package serializer import ( "fonchain-artshow/cmd/model" - "fonchain-artshow/pkg/utils" "math" + "sort" ) -func CalcPrice(artworks []*model.ArtworkPrice, ruler int32, totalPrice int64) (err error, save []*model.ArtworkPrice) { - if totalPrice == 0 || ruler == 0 { - return nil, artworks +func CalcPrice(total_price int64, total_ruler int32, artworksPrices []*model.ArtworkPrice) []*model.ArtworkPrice { + price := math.Floor(float64(total_price) / float64(total_ruler)) + _, f := math.Modf(float64(total_price) / float64(total_ruler)) + if f >= 0.5 { + price += 1 } - - save = make([]*model.ArtworkPrice, 0) - var ( - needAddPriceArtworkIndex int - currentArtworkRuler int - currentTotalPrice int64 - maxRulerIndex int - totalDiv float64 + current_total_price int64 + current_artwork_price int64 + current_copyright_price int64 + + add_total_balance int64 + add_artwork_balance int64 + add_copyright_balance int64 + + loss_total_price int64 + loss_artwork_price int64 + loss_copyright_price int64 ) - price := utils.FormatFloat(float64(totalPrice)/float64(ruler)/10, 2) * 10 // 用于计算的单价 - //ruler_price := math.Floor(float64(total_price)/float64(ruler)/10) * 10 // 保存的单价 - - for i := 0; i < len(artworks); i++ { - if currentArtworkRuler < int(artworks[i].Ruler) { - currentArtworkRuler = int(artworks[i].Ruler) - needAddPriceArtworkIndex = i - maxRulerIndex = i - } else if currentArtworkRuler == int(artworks[i].Ruler) { - currentArtworkRuler = 0 - needAddPriceArtworkIndex = -1 + for total_price-current_total_price != 0 { + current_total_price = calcTotalPrice(artworksPrices, add_total_balance, int64(price)) + if current_total_price != 0 { + add_total_balance = total_price - current_total_price + } + if int(math.Abs(float64(add_total_balance))) < len(artworksPrices) { + loss_total_price = add_total_balance + break } - artworks[i].RulerPrice = int64(price) - artworks[i].Price = int64(price * float64(artworks[i].Ruler)) - artworkPrice := float64(artworks[i].Price) * 0.95 - artworkPrice, div1 := math.Modf(artworkPrice) - artworks[i].ArtworkPrice = int64(artworkPrice) - totalDiv += div1 // 小数点 省略掉的 0.5 - - copyrightPrice := artworks[i].Price - artworks[i].ArtworkPrice - artworks[i].CopyrightPrice = copyrightPrice - currentTotalPrice += artworks[i].Price } - if needAddPriceArtworkIndex == -1 { - needAddPriceArtworkIndex = maxRulerIndex + maxId, dirId := findArtworkToAdd(artworksPrices, int64(price)) + + if dirId > -1 { + artworksPrices[dirId].Price = artworksPrices[dirId].Price + loss_total_price + } else { + artworksPrices[maxId].Price = artworksPrices[maxId].Price + loss_total_price } - artworks[needAddPriceArtworkIndex].RulerPrice = int64(price) - artworks[needAddPriceArtworkIndex].FloatPrice = totalPrice - currentTotalPrice - artworks[needAddPriceArtworkIndex].Price - artworks[needAddPriceArtworkIndex].Price = int64(float32(totalPrice) - float32(currentTotalPrice) + float32(artworks[needAddPriceArtworkIndex].Price)) - artworks[needAddPriceArtworkIndex].ArtworkPrice = int64((float64(artworks[needAddPriceArtworkIndex].Price) * 0.95) + totalDiv) - artworks[needAddPriceArtworkIndex].CopyrightPrice = artworks[needAddPriceArtworkIndex].Price - artworks[needAddPriceArtworkIndex].ArtworkPrice + for int64(float64(total_price)*0.95)-current_artwork_price != 0 { + current_artwork_price = calcArtworkPrice(artworksPrices, add_artwork_balance) + if current_artwork_price != 0 { + add_artwork_balance = int64(float64(total_price)*0.95) - current_artwork_price + } + if int(math.Abs(float64(add_artwork_balance))) < len(artworksPrices) { + _, f := math.Modf(float64(total_price) * 0.95) + if f >= 0.5 { + add_artwork_balance += 1 + } + loss_artwork_price = add_artwork_balance + break + } + } - return nil, artworks + if dirId > -1 { + artworksPrices[dirId].ArtworkPrice = artworksPrices[dirId].ArtworkPrice + loss_artwork_price + } else { + artworksPrices[maxId].ArtworkPrice = artworksPrices[maxId].ArtworkPrice + loss_artwork_price + } + + for int64(float64(total_price)*0.05)-current_copyright_price != 0 { + current_copyright_price = calcCopyrightPrice(artworksPrices, add_copyright_balance) + if current_copyright_price != 0 { + add_copyright_balance = int64(float64(total_price)*0.05) - current_copyright_price + } + if int(math.Abs(float64(add_copyright_balance))) < len(artworksPrices) { + loss_copyright_price = add_copyright_balance + break + } + } + + if dirId > -1 { + artworksPrices[dirId].CopyrightPrice = artworksPrices[dirId].CopyrightPrice + loss_copyright_price + } else { + artworksPrices[maxId].CopyrightPrice = artworksPrices[maxId].CopyrightPrice + loss_copyright_price + } + + for i := 0; i < len(artworksPrices); i++ { + artworksPrices[i].Price = artworksPrices[i].ArtworkPrice + artworksPrices[i].CopyrightPrice + } + + return artworksPrices } -func CalcReward(artworks []*model.ArtworkPrice, reward int64) (err error, save []*model.ArtworkPrice) { - save = artworks - if reward == 0 { - return nil, artworks +func calcArtworkPrice(artworks []*model.ArtworkPrice, add_balance int64) int64 { + var ( + current_artwork_price int64 + add_balance_single float64 + ) + if math.Abs(float64(add_balance)) > 0 { + add_balance_single = math.Floor(math.Abs(float64(add_balance)) / float64(len(artworks))) + if add_balance < 0 { + add_balance_single = 0 - add_balance_single + } } for i := 0; i < len(artworks); i++ { - artworks[i].ArtistPrice = reward * int64(artworks[i].Ruler) + artworks[i].ArtworkPrice = int64(math.Floor(float64(artworks[i].Price) * 0.95)) + artworks[i].ArtworkPrice += int64(add_balance_single) + + current_artwork_price += artworks[i].ArtworkPrice } - return nil, save + return current_artwork_price +} + +func calcCopyrightPrice(artworks []*model.ArtworkPrice, add_balance int64) int64 { + var ( + current_copyright_price int64 + add_balance_single float64 + ) + if math.Abs(float64(add_balance)) > 0 { + add_balance_single = math.Floor(math.Abs(float64(add_balance)) / float64(len(artworks))) + if add_balance < 0 { + add_balance_single = 0 - add_balance_single + } + } + for i := 0; i < len(artworks); i++ { + artworks[i].CopyrightPrice = int64(math.Floor(float64(artworks[i].Price) * 0.05)) + artworks[i].CopyrightPrice += int64(add_balance_single) + + current_copyright_price += artworks[i].CopyrightPrice + } + return current_copyright_price +} + +func calcTotalPrice(artworks []*model.ArtworkPrice, add_balance, price int64) int64 { + var ( + current_total_price int64 + add_balance_single float64 + ) + if math.Abs(float64(add_balance)) > 0 { + add_balance_single = math.Floor(math.Abs(float64(add_balance)) / float64(len(artworks))) + if add_balance < 0 { + add_balance_single = 0 - add_balance_single + } + } + for i := 0; i < len(artworks); i++ { + artworks[i].Price = int64(add_balance_single) + artworks[i].Price += int64(artworks[i].Ruler) * price + + artworks[i].RulerPrice = price + + current_total_price += artworks[i].Price + } + return current_total_price +} + +func findArtworkToAdd(artworks []*model.ArtworkPrice, ruler_price int64) (int, int) { + var ( + max_ruler = -1 + maxIndex = -1 + difIndex = -1 + ) + + bucket := make(map[int][]int, 0) + + sortFir := make(map[int]int, 0) + sortSec := make([]int, 0) + + for i := 0; i < len(artworks); i++ { + if len(bucket[int(artworks[i].Ruler)]) > 0 { + bucket[int(artworks[i].Ruler)] = append(bucket[int(artworks[i].Ruler)], i) + } else { + bucket[int(artworks[i].Ruler)] = make([]int, 0) + bucket[int(artworks[i].Ruler)] = append(bucket[int(artworks[i].Ruler)], i) + } + sortFir[int(artworks[i].Ruler)] = i + //fmt.Println(bucket[artworks[i].Ruler]) + } + + for ruler, _ := range sortFir { + sortSec = append(sortSec, int(ruler)) + } + + sort.Ints(sortSec) + + if len(sortSec) == 1 { + maxIndex = bucket[sortSec[0]][0] + //return maxIndex ,0 + } else { + for i := len(sortSec); i > 0; i-- { + if max_ruler < sortSec[i-1] { + max_ruler = sortSec[i-1] + } + if len(bucket[sortSec[i-1]]) > 1 { + continue + } + if len(bucket[sortSec[i-1]]) == 1 { + difIndex = bucket[sortSec[i-1]][0] + break + } + } + + if difIndex == -1 { + maxIndex = bucket[max_ruler][0] + } + } + + return maxIndex, difIndex } diff --git a/pkg/serializer/calc_price_old.go b/pkg/serializer/calc_price_old.go new file mode 100644 index 0000000..e29d07f --- /dev/null +++ b/pkg/serializer/calc_price_old.go @@ -0,0 +1,70 @@ +package serializer + +import ( + "fonchain-artshow/cmd/model" + "fonchain-artshow/pkg/utils" + "math" +) + +func _CalcPrice(artworks []*model.ArtworkPrice, ruler int32, totalPrice int64) (err error, save []*model.ArtworkPrice) { + if totalPrice == 0 || ruler == 0 { + return nil, artworks + } + + save = make([]*model.ArtworkPrice, 0) + + var ( + needAddPriceArtworkIndex int + currentArtworkRuler int + currentTotalPrice int64 + maxRulerIndex int + totalDiv float64 + ) + + price := utils.FormatFloat(float64(totalPrice)/float64(ruler)/10, 2) * 10 // 用于计算的单价 + //ruler_price := math.Floor(float64(total_price)/float64(ruler)/10) * 10 // 保存的单价 + + for i := 0; i < len(artworks); i++ { + if currentArtworkRuler < int(artworks[i].Ruler) { + currentArtworkRuler = int(artworks[i].Ruler) + needAddPriceArtworkIndex = i + maxRulerIndex = i + } else if currentArtworkRuler == int(artworks[i].Ruler) { + currentArtworkRuler = 0 + needAddPriceArtworkIndex = -1 + } + artworks[i].RulerPrice = int64(price) + artworks[i].Price = int64(price * float64(artworks[i].Ruler)) + artworkPrice := float64(artworks[i].Price) * 0.95 + artworkPrice, div1 := math.Modf(artworkPrice) + artworks[i].ArtworkPrice = int64(artworkPrice) + totalDiv += div1 // 小数点 省略掉的 0.5 + + copyrightPrice := artworks[i].Price - artworks[i].ArtworkPrice + artworks[i].CopyrightPrice = copyrightPrice + currentTotalPrice += artworks[i].Price + } + + if needAddPriceArtworkIndex == -1 { + needAddPriceArtworkIndex = maxRulerIndex + } + + artworks[needAddPriceArtworkIndex].RulerPrice = int64(price) + artworks[needAddPriceArtworkIndex].FloatPrice = totalPrice - currentTotalPrice - artworks[needAddPriceArtworkIndex].Price + artworks[needAddPriceArtworkIndex].Price = int64(float32(totalPrice) - float32(currentTotalPrice) + float32(artworks[needAddPriceArtworkIndex].Price)) + artworks[needAddPriceArtworkIndex].ArtworkPrice = int64((float64(artworks[needAddPriceArtworkIndex].Price) * 0.95) + totalDiv) + artworks[needAddPriceArtworkIndex].CopyrightPrice = artworks[needAddPriceArtworkIndex].Price - artworks[needAddPriceArtworkIndex].ArtworkPrice + + return nil, artworks +} + +func CalcReward(artworks []*model.ArtworkPrice, reward int64) (err error, save []*model.ArtworkPrice) { + save = artworks + if reward == 0 { + return nil, artworks + } + for i := 0; i < len(artworks); i++ { + artworks[i].ArtistPrice = reward * int64(artworks[i].Ruler) + } + return nil, save +} diff --git a/pkg/serializer/show_apply.go b/pkg/serializer/show_apply.go index 57ad8fb..a24428f 100644 --- a/pkg/serializer/show_apply.go +++ b/pkg/serializer/show_apply.go @@ -3,21 +3,14 @@ package serializer import ( "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" - "fonchain-artshow/pkg/m" - "strings" - "time" ) func BuildShowApply(in *artShow.SaveApplyReq) (out *model.ShowApply) { out = new(model.ShowApply) - if in.ID == 0 { - out.ApplySeq = strings.Join([]string{m.ARTSHOWAPPLY_PREFIX, time.Now().Format("20060102150405")}, "") - out.Status = m.SHOWAPPLY_ADD - } else { - out.ID = uint(in.ID) - } + out.ApplyUID = in.ApplyUID + out.Status = int(in.Status) out.Applicant = in.Applicant - out.ApplicantID = uint(in.ApplicantID) + out.ApplicantID = in.ApplicantID out.Num = in.Num out.ApplyTime = in.ApplyTime out.Remark = in.Remark @@ -28,10 +21,10 @@ func BuildShowApply(in *artShow.SaveApplyReq) (out *model.ShowApply) { func BuildShowApplyRes(in *model.ShowApply) (out *artShow.ApplyDetail) { out = new(artShow.ApplyDetail) - out.ID = int64(in.ID) + out.ApplyUID = in.ApplyUID out.ApplySeq = in.ApplySeq out.Applicant = in.Applicant - out.ApplicantID = int64(in.ApplicantID) + out.ApplicantID = in.ApplicantID out.Num = in.Num out.ApplyTime = in.ApplyTime out.Status = int32(in.Status) diff --git a/pkg/serializer/show_rel.go b/pkg/serializer/show_rel.go index 34e91dc..6840482 100644 --- a/pkg/serializer/show_rel.go +++ b/pkg/serializer/show_rel.go @@ -5,16 +5,17 @@ import ( "fonchain-artshow/pb/artShow" ) -func BuildShowRelM(in []*artShow.ShowRel, applyID uint) (out []*model.ShowRel) { +func BuildShowRelM(in []*artShow.ShowRel, applyUID string) (out []*model.ShowRel) { for i := 0; i < len(in); i++ { showRel := &model.ShowRel{ - ShowID: uint(in[i].ShowID), - ApplyID: applyID, - Index: in[i].Index, - Address: in[i].Address, + ShowUID: in[i].ShowUID, + ApplyUID: applyUID, + Index: in[i].Index, + Address: in[i].Address, + ShowTime: in[i].ShowTime, } - if in[i].ID != 0 { - showRel.ID = uint(in[i].ID) + if in[i].ShowRelUID != "" { + showRel.ShowRelUID = in[i].ShowRelUID } out = append(out, showRel) } @@ -24,11 +25,12 @@ func BuildShowRelM(in []*artShow.ShowRel, applyID uint) (out []*model.ShowRel) { func BuildShowRelRes(in []*model.ShowRel) (out []*artShow.ShowRel) { for i := 0; i < len(in); i++ { showRel := &artShow.ShowRel{ - ID: int64(in[i].ID), - ApplyID: int64(in[i].ApplyID), - ShowID: int64(in[i].ShowID), - Index: in[i].Index, - Address: in[i].Address, + ShowRelUID: in[i].ShowRelUID, + ApplyUID: in[i].ApplyUID, + ShowUID: in[i].ShowUID, + Index: in[i].Index, + Address: in[i].Address, + ShowTime: in[i].ShowTime, } out = append(out, showRel) } diff --git a/runtime/log/artshow_server.log b/runtime/log/artshow_server.log new file mode 100644 index 0000000..8bccfb6 --- /dev/null +++ b/runtime/log/artshow_server.log @@ -0,0 +1,3 @@ +{"level":"ERROR","time":"2023-01-16T14:48:39.634+0800","caller":"dao/art_show.go:66","msg":"ArtShowList Find err","error":"Error 1055: Expression #11 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'art_show.c.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"} +{"level":"ERROR","time":"2023-01-16T14:50:09.407+0800","caller":"dao/art_show.go:66","msg":"ArtShowList Find err","error":"Error 1055: Expression #11 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'art_show.c.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"} +{"level":"ERROR","time":"2023-01-16T15:01:44.067+0800","caller":"dao/art_show.go:69","msg":"ArtShowList Find err","error":"Error 1055: Expression #11 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'art_show.c.address' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"} diff --git a/template/applyInfo.xlsx b/template/applyInfo.xlsx new file mode 100644 index 0000000..6b1870f Binary files /dev/null and b/template/applyInfo.xlsx differ