Compare commits

..

10 Commits
main ... jujin

30 changed files with 3740 additions and 997 deletions

3
.gitignore vendored
View File

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

View File

@ -11,4 +11,4 @@ COPY ./conf/ /app/conf/
COPY ./conf/ ./conf/
WORKDIR /app/main-client/bin
CMD ["./mainServer"]
CMD ["./mainServer"]

View File

@ -22,6 +22,7 @@ func main() {
config.SetProviderService(&controller.ArtistInfoArtshowProvider{})
config.SetProviderService(&controller.ArtistInfoContractProvider{})
config.SetConsumerService(&controller.ArtistInfoStatementProvider{})
config.SetProviderService(&controller.MgmtStatementProvider{})
db.Init(m.SERVER_CONFIG)
cache.InitRedis(m.SERVER_CONFIG)
if err := config.Load(); err != nil {

View File

@ -86,12 +86,3 @@ func (a ArtistInfoArtworkProvider) GetArtworkLockRecords(ctx context.Context, re
func (a ArtistInfoArtworkProvider) GetArtworkLockHistoryGroup(ctx context.Context, request *artistInfoArtwork.GetArtworkLockHistoryRequest) (*artistInfoArtwork.GetArtworkLockHistoryResponse, error) {
return a.artistInfoLogic.GetArtworkLockHistoryGroup(request)
}
func (a ArtistInfoArtworkProvider) UpdateArtworkExtData(ctx context.Context, request *artistInfoArtwork.ArtworkExtData) (emp *emptypb.Empty, err error) {
err = a.artistInfoLogic.UpdateArtworkExtData(request)
return
}
func (a ArtistInfoArtworkProvider) GetArtworkExtDatas(ctx context.Context, request *artistInfoArtwork.GetArtworkExtDataRequest) (*artistInfoArtwork.GetArtworkExtDataResponse, error) {
return a.artistInfoLogic.GetArtworkExtDatas(request)
}

View File

@ -118,11 +118,9 @@ func (a *ArtistInfoUserProvider) FinishVerify(ctx context.Context, req *artistIn
}
return rep, nil
}
func (a *ArtistInfoUserProvider) UserLock(ctx context.Context, req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLockRespond, err error) {
return a.artistInfoLogic.UserLock(req)
}
func (a *ArtistInfoUserProvider) CheckUserLock(ctx context.Context, req *artistInfoUser.CheckUserLockRequest) (rep *artistInfoUser.CheckUserLockRespond, err error) {
fmt.Println("第一处")
// backup := &artistinfoUser.GetUserInfoRespond{}
@ -172,7 +170,7 @@ func (a *ArtistInfoUserProvider) GetUserMsg(ctx context.Context, req *artistInfo
func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, in *artistInfoUser.BindInviteInvitedAccountRequest) (res *artistInfoUser.BindInviteInvitedAccountRespond, err error) {
// 查询被邀请人是否存在
var invitedUser model.User
if err = db.DB.Debug().Where("BINARY invited_code = ? OR id = ?", in.InvitedCode, in.InvitedUserId).First(&invitedUser).Error; err != nil {
if err = db.DB.Debug().Where("invited_code = ? OR id = ?", in.InvitedCode, in.InvitedUserId).First(&invitedUser).Error; err != nil {
if err == gorm.ErrRecordNotFound {
return nil, errors.New("被邀请人不存在")
} else {
@ -181,7 +179,7 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i
}
// 查询邀请人是否存在
var inviteUser model.User
if err = db.DB.Debug().Where("BINARY invited_code = ?", in.InviteCode).First(&inviteUser).Error; err != nil {
if err = db.DB.Debug().Where("invited_code = ?", in.InviteCode).First(&inviteUser).Error; err != nil {
if err == gorm.ErrRecordNotFound {
return nil, errors.New("邀请人不存在")
} else {
@ -192,28 +190,21 @@ func (a *ArtistInfoUserProvider) BindInviteInvitedAccount(ctx context.Context, i
fmt.Println("被邀请人userId:", invitedUser.ID)
var data model.Invite
// 受邀请者只能绑定一个邀请人
if err = db.DB.Debug().Where("BINARY invited_code = ?", in.InvitedCode).Find(&data).Error; err != nil {
if err = db.DB.Debug().Where("invite_code = ? AND invited_code = ?", in.InviteCode, in.InvitedCode).Find(&data).Error; err != nil {
return nil, err
}
if data.ID == 0 {
//数据不存在则创建
data.UserId = int32(inviteUser.ID)
data.InvitedId = int32(invitedUser.ID)
data.InvitedCode = invitedUser.InviteCode
data.InviteCode = inviteUser.InviteCode
if err = db.DB.Debug().Create(&data).Error; err != nil {
return nil, err
}
} else if data.InviteCode == in.InviteCode {
//如果数据存在则刷新更新时间
if err = db.DB.Debug().Save(&data).Error; err != nil {
return nil, err
}
data.UserId = int32(inviteUser.ID)
data.InvitedId = int32(invitedUser.ID)
data.InvitedCode = invitedUser.InviteCode
data.InviteCode = inviteUser.InviteCode
//如果数据存更新刷新时间
if err = db.DB.Debug().Save(&data).Error; err != nil {
return nil, err
}
// 添加到次数统计
var countData model.UserInvited
if err = db.DB.Where("BINARY invite_code = ? AND BINARY invited_code = BINARY ?", in.InviteCode, in.InvitedCode).Find(&countData).Error; err != nil {
if err = db.DB.Where("invite_code = ? AND invited_code =?", in.InviteCode, in.InvitedCode).Find(&countData).Error; err != nil {
return nil, err
}
if countData.ID == 0 {

View File

@ -0,0 +1,99 @@
package controller
import (
"context"
logic3 "github.com/fonchain/fonchain-artistinfo/cmd/internal/logic"
"github.com/fonchain/fonchain-artistinfo/pb/mgmtStatement"
"github.com/fonchain/fonchain-artistinfo/pkg/m"
)
type MgmtStatementProvider struct {
mgmtStatement.UnimplementedMgmtStatementServer
mgmtStatementLogic *logic3.MgmtStatement
}
//通过excel获得批次数据
func (a *MgmtStatementProvider) AddBatchDetail(ctx context.Context, in *mgmtStatement.AddBatchDetailreq) (resp *mgmtStatement.AddBatchDetailres, err error) {
resp = &mgmtStatement.AddBatchDetailres{}
err = nil
if resp, err = a.mgmtStatementLogic.AddBatchDetail(in); err != nil {
return
}
resp.Msg = m.CREATE_SUCCESS
return
}
//通过excel导入数据存入数据库(附件一)
func (a *MgmtStatementProvider) UploadExcelOne(ctx context.Context, in *mgmtStatement.UploadExcelOnereq) (resp *mgmtStatement.UploadExcelOneres, err error) {
resp = &mgmtStatement.UploadExcelOneres{}
err = nil
if resp, err = a.mgmtStatementLogic.UploadExcelOne(in); err != nil {
return
}
resp.Msg = m.CREATE_SUCCESS
return
}
//通过excel导入数据存入数据库(附件二)
func (a *MgmtStatementProvider) UploadExcelTwo(ctx context.Context, in *mgmtStatement.UploadExcelTworeq) (resp *mgmtStatement.UploadExcelTwores, err error) {
resp = &mgmtStatement.UploadExcelTwores{}
err = nil
if resp, err = a.mgmtStatementLogic.UploadExcelTwo(in); err != nil {
return
}
resp.Msg = m.CREATE_SUCCESS
return
}
//画家对账单列表
func (a *MgmtStatementProvider) ArtistStatementList(ctx context.Context, in *mgmtStatement.ArtistStatementListreq) (resp *mgmtStatement.ArtistStatementListres, err error) {
resp = &mgmtStatement.ArtistStatementListres{}
err = nil
if resp, err = a.mgmtStatementLogic.ArtistStatementList(in); err != nil {
return
}
resp.Msg = m.SUCCESS
return
}
//画作对账单列表
func (a *MgmtStatementProvider) ArtStatementList(ctx context.Context, in *mgmtStatement.ArtStatementListreq) (resp *mgmtStatement.ArtStatementListres, err error) {
resp = &mgmtStatement.ArtStatementListres{}
err = nil
if resp, err = a.mgmtStatementLogic.ArtStatementList(in); err != nil {
return
}
resp.Msg = m.SUCCESS
return
}
//更新对账单状态
func (a *MgmtStatementProvider) UpdateState(ctx context.Context, in *mgmtStatement.UpdateStatementreq) (resp *mgmtStatement.UpdateStatementres, err error) {
resp = &mgmtStatement.UpdateStatementres{}
if err = a.mgmtStatementLogic.UpdateState(in); err != nil {
return
}
resp.Msg = m.UPDATE_SUCCESS
return
}
//导出合同
func (a *MgmtStatementProvider) ExportContract(ctx context.Context, in *mgmtStatement.ExportContractreq) (resp *mgmtStatement.ExportContractres, err error) {
resp = &mgmtStatement.ExportContractres{}
err = nil
if resp, err = a.mgmtStatementLogic.ExportContract(in); err != nil {
return
}
return
}
//生成管理系统合同
func (a *MgmtStatementProvider) CreateTxContract(ctx context.Context, in *mgmtStatement.CreateTxContractreq) (resp *mgmtStatement.CreateTxContractres, err error) {
resp = &mgmtStatement.CreateTxContractres{}
err = nil
if resp, err = a.mgmtStatementLogic.CreateTxContract(in); err != nil {
return
}
return
}

View File

@ -6,7 +6,6 @@ import (
"errors"
"fmt"
"sort"
"strings"
"time"
_ "dubbo.apache.org/dubbo-go/v3/imports"
@ -24,20 +23,21 @@ import (
)
func RegisterUser(req *artistInfoUser.RegisterUserRequest) (rep *artistInfoUser.RegisterUserRespond, err error) {
var user = model.User{
MgmtAccId: req.MgmtAccId,
TelNum: req.TelNum,
MgmtArtistId: req.MgmtArtistId,
MgmtArtistUid: req.MgmtArtistUid,
InviteCode: req.UserInviteCode,
Account: req.Account,
}
zap.L().Debug(fmt.Sprintf("RegisterUser--user: %+v", user))
if err = db.DB.Create(&user).Error; err != nil {
zap.L().Error("register user err", zap.Error(err))
err = errors.New(m.CREATE_ERROR)
return nil, err
}
// var user = model.User{
// MgmtAccId: req.MgmtAccId,
// TelNum: req.TelNum,
// MgmtArtistId: req.MgmtArtistId,
// MgmtArtistUid: req.MgmtArtistUid,
// InviteCode: req.UserInviteCode,
// Account: req.Account,
// }
// zap.L().Debug(fmt.Sprintf("RegisterUser--user: %+v", user))
// if err = db.DB.Create(&user).Error; err != nil {
// zap.L().Error("register user err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
// }
return
}
@ -153,7 +153,7 @@ func CheckInvitedCodes(invitedCode string) (uint, error) {
// 变更为通过账号服务验证邀请码
var user model.User
//找到用户
if err := db.DB.Where("BINARY invited_code =?", invitedCode).Find(&user).Error; err != nil {
if err := db.DB.Where("invited_code =?", invitedCode).Find(&user).Error; err != nil {
return 0, err
}
if user.ID == 0 {
@ -303,39 +303,27 @@ func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLock
}
rep.LockTime = now
if !req.IsLock {
fmt.Println("进入解锁流程")
// 如果当前锁定状态下没有任何数据变动,则报错
if hasChanged, _ := WhetherAnyChangedAfterLocked(thisUser.MgmtArtistUid); !hasChanged {
tx.Rollback()
err = errors.New("此用户在锁定后未作任何修改,无法解锁")
return
}
fmt.Println("122312312312331")
// 解锁时与另外4个模块联动
if err = tx.Model(model.ArtworkLockRecord{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
tx.Rollback()
return nil, err
}
if err = tx.Model(model.ArtshowArtistSupplement{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
tx.Rollback()
return nil, err
}
if err = tx.Model(model.ArtshowArtistIndex{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
tx.Rollback()
return nil, err
}
if err = tx.Model(model.ArtshowVideoRecord{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
tx.Rollback()
return nil, err
}
// 与画家宝的合同表进行联动
if err = tx.Model(model.Contract{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
tx.Rollback()
return nil, err
}
} else {
fmt.Println("else 更新最新上锁时间")
if err = tx.Model(model.User{}).Where("mgmt_artist_uid = ?", thisUser.MgmtArtistUid).Update("latest_lock_time", now).Error; err != nil {
tx.Rollback()
return nil, err
}
fmt.Println("更新结束")
@ -345,59 +333,11 @@ func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLock
return rep, nil
}
// 简单判断锁定后数据是否有新增
func WhetherAnyChangedAfterLocked(artistUid string) (changed bool, err error) {
//查询锁定时间
var lockTime string
if err = db.DB.Model(model.User{}).Where("mgmt_artist_uid = ?", artistUid).Pluck("latest_lock_time", &lockTime).Error; err != nil {
return
}
//如果画作更新时间大于锁定时间,直接返回true
var artworks []model.ArtworkLockRecord
db.DB.Where("artist_uid = ? AND lock_time = ? ", artistUid, lockTime).Find(&artworks)
var lockTimeT, _ = stime.StringToTime(lockTime)
for _, a := range artworks {
if a.UpdatedAt.After(*lockTimeT) {
changed = true
return
}
}
//如果补充信息有新增则直接返回true
var sql = `
SELECT
u.mgmt_artist_uid
,u.latest_lock_time
,(SELECT COUNT(1) FROM artshow_artist_index WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as artist_index_count
,(SELECT COUNT(1) FROM artshow_artist_supplement WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as artist_supplement_count
,(SELECT COUNT(1) FROM artshow_video_record WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as video_count
,(SELECT COUNT(1) FROM contract WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as contract_count
FROM sys_user u
WHERE u.mgmt_artist_uid ='{{artistUid}}' AND u.deleted_at = 0
`
sql = strings.Replace(sql, "{{artistUid}}", artistUid, -1)
sql = strings.Replace(sql, "{{lockTime}}", lockTime, -1)
var data struct {
MgmtArtistUid string `gorm:"column:mgmt_artist_uid"`
LatestLockTime string `gorm:"column:latest_lock_time"`
ArtistIndexCount int `gorm:"column:artist_index_count"`
ArtistSupplementCount int `gorm:"column:artist_supplement_count"`
VideoCount int `gorm:"column:video_count"`
ContractCount int `gorm:"column:contract_count"`
}
if err = db.DB.Debug().Raw(sql).Find(&data).Error; err != nil {
return
}
if data.ArtistIndexCount > 0 || data.ArtistSupplementCount > 0 || data.VideoCount > 0 || data.ContractCount > 0 {
return true, nil
}
return false, nil
}
func CheckInvitedCode(req *artistInfoUser.CheckInvitedCodeRequest) (rep *artistInfoUser.GetUserRespond, err error) {
rep = &artistInfoUser.GetUserRespond{}
// service := &artist.UserUpdateInfoService{}
var user model.User
if err = db.DB.First(&user, "BINARY invited_code = ?", req.InvitedCode).Error; err != nil {
if err = db.DB.First(&user, "invited_code = ?", req.InvitedCode).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
return nil, err
}
@ -517,7 +457,7 @@ func FindUser(req *artistInfoUser.FindUserRequest) (rep *artistInfoUser.UserInfo
tx = tx.Where("mgmt_artist_id = ?", req.MgmtArtistId)
}
if req.InvitedCode != "" {
tx = tx.Where("BINARY invited_code = ?", req.InvitedCode)
tx = tx.Where("invited_code = ?", req.InvitedCode)
}
if req.MgmtArtistUid != "" {
tx = tx.Where("mgmt_artist_uid = ?", req.MgmtArtistUid)
@ -545,7 +485,7 @@ func FindUser(req *artistInfoUser.FindUserRequest) (rep *artistInfoUser.UserInfo
// var inviterCode = model.Invite{}
// var inviterAccount = &account.ListResponse{Data: []*account.AccountInfo{}}
// var inviterName string
// db.DB.Model(model.Invite{}).Where("BINARY invited_code = ?", data.InviteCode).First(&inviterCode)
// db.DB.Model(model.Invite{}).Where("invited_code = ?", data.InviteCode).First(&inviterCode)
// if inviterCode.InviteCode != "" {
// inviterAccount, err = service.AccountProvider.ListByIDs(context.Background(), &account.ListByIDsRequest{
// Page: 1,
@ -610,10 +550,10 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U
datas = []model.User{}
tx = db.DB.Model(model.User{}).
Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id").
Preload("RealNameInfo") //.Where("sys_user.mgmt_artist_uid!=''")
Preload("RealNameInfo").Where("sys_user.mgmt_artist_uid!=''")
)
if req.InvitedCode != "" {
tx = tx.Where("BINARY invited_code = ?", req.InvitedCode)
tx = tx.Where("invited_code = ?", req.InvitedCode)
}
if req.MgmtAccountId != 0 {
tx = tx.Where("mgmt_acc_id = ?", req.MgmtAccountId)
@ -631,7 +571,7 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U
})
}
if req.IsArtist {
tx = tx.Where("sys_user.mgmt_artist_uid !='' ")
tx = tx.Where("mgmt_artist_uid !='' ")
}
if req.IsLock {
tx = tx.Where("is_lock=true")
@ -713,7 +653,7 @@ func GetViewUserList(req *artistInfoUser.FindUsersRequest) (resp []model.UserVie
tx = db.DB.Model(model.UserView{}).Order("created_at desc")
)
if req.InvitedCode != "" {
tx = tx.Where("BINARY invited_code = ?", req.InvitedCode)
tx = tx.Where("invited_code = ?", req.InvitedCode)
}
if req.MgmtArtistUid != "" {
tx = tx.Where("mgmt_artist_uid = ?", req.MgmtArtistUid)
@ -816,9 +756,6 @@ func UpdateUserData(req *artistInfoUser.UserInfo) (rep *artistInfoUser.CommonNoP
if req.WxAccount != "" {
preUpdateData.WxAccount = req.WxAccount
}
if req.MgmtArtistId != 0 {
preUpdateData.MgmtArtistId = req.MgmtArtistId
}
tx := db.DB.Begin()
err = tx.Save(&preUpdateData).Error
@ -973,7 +910,7 @@ func CheckUserLockByArtistUid(artistUid string) (err error) {
func GetInviterInfo(inviterCode string) (result account.AccountInfo) {
//查找邀请关系
var inviteRelation = model.Invite{}
err := db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", inviterCode).Find(&inviteRelation).Error
err := db.DB.Model(model.Invite{}).Where("invite_code = ?", inviterCode).Find(&inviteRelation).Error
if err != nil {
fmt.Println("\n GetInviterInfo 查询邀请人信息出错", err.Error())
return
@ -1031,11 +968,9 @@ func GetInvitedUserList(in *artistInfoUser.GetInvitedUserListRequest) (res *arti
var inviteRelationIds []int64
db.DB.Model(model.Invite{}).Where("BINARY invite_code = ?", in.InviterCode).Pluck("invited_id", &inviteRelationIds)
var invitedList []model.User
//.Select("sys_user.id,sys_user.created_at,sys_user.mgmt_acc_id,sys_user.mgmt_artist_uid,sys_user.tel_num,sys_user.invited_code,sys_user.account,sys_user.photo,sys_user.is_real_name,sys_user.fdd_state")
orm := db.DB.Model(model.User{}).Preload("RealNameInfo").
Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id").
Joins("LEFT JOIN invite ON invite.invited_id = sys_user.id").
Where("sys_user.id in ?", inviteRelationIds).Order("invite.created_at desc").Where("sys_user.is_real_name=1")
Where("sys_user.id in ?", inviteRelationIds)
if in.RealName != "" {
orm = orm.Where("rn.name like ?", "%"+in.RealName+"%")
}

View File

@ -137,7 +137,7 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest)
case artistInfoArtwork.ArtworkQueryMode_NowPreSaveAndLocked: //当前暂存和已锁定的画作(也就是用户端画作管理中的数据)
tx = tx.Where("status =1 OR status =2")
case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfBase: //当前处于基本信息审批阶段的画作(包括进入其它流程的画作)
tx = tx.Where("status = 1 OR status=2") // 现要求暂存和锁定的画作都能进行审批和展示
tx = tx.Where("status = 2 ") // AND audit_flow_index = 2
case artistInfoArtwork.ArtworkQueryMode_NowAuditFlowOfSupplementing: //当前处于补充信息审批阶段的画作
tx = tx.Where("status =2 AND audit_flow_index = 3")
case artistInfoArtwork.ArtworkQueryMode_AllUnlockArtwork: //所有已解锁的画作(历史画作)
@ -146,17 +146,9 @@ func GetArtworkLockRecords(req *artistInfoArtwork.GetArtworkLockRecordsRequest)
// tx = tx.Where("status > 1")
case artistInfoArtwork.ArtworkQueryMode_AllAuditPassArtwork: //所有审核通过的画作
tx = tx.Where("supplement_audit_status = 4").Order("lock_time desc")
case artistInfoArtwork.ArtworkQueryMode_BaseAuditPassed: //基本画作审批通过的画作
tx = tx.Where("base_audit_status = 4").Order("lock_time desc")
}
if req.BaseAuditStatus != 0 {
if req.BaseAuditStatus == 2 {
//现要求暂存的画作也支持在待审核列表展示和审批
tx = tx.Where("base_audit_status = ? OR base_audit_status =1", req.BaseAuditStatus)
} else if req.BaseAuditStatus != 1 { //排除暂存状态,需求修改后,这个字段的暂存状态无法作为判断条件了
tx = tx.Where("base_audit_status = ?", req.BaseAuditStatus)
}
tx = tx.Where("base_audit_status = ?", req.BaseAuditStatus)
}
if req.SupplementAuditStatus != 0 {
tx = tx.Where("supplement_audit_status = ?", req.SupplementAuditStatus)
@ -258,11 +250,11 @@ func PassedArtworkStatic(request *artistInfoArtwork.ArtistArtworkStaticRequest,
return
}
// CountArtworkTotalWhichAuditPassed 单个统计画家已通过的画作数量和已通过的平尺数,统计的是基本画作审批通过的画作数量
// CountArtworkTotalWhichAuditPassed 单个统计画家已通过的画作数量和已通过的平尺数
func CountArtworkTotalWhichAuditPassed(artistUid string) (rulerPassedTotal int64, artworkPassedCount int64) {
artworkList, err := GetArtworkLockRecords(&artistInfoArtwork.GetArtworkLockRecordsRequest{
ArtistUid: artistUid,
QueryType: artistInfoArtwork.ArtworkQueryMode_BaseAuditPassed,
QueryType: artistInfoArtwork.ArtworkQueryMode_AllAuditPassArtwork,
})
if err != nil {
fmt.Println("service.GrpcArtistInfoArtworkImpl.GetArtworkLockRecords Error:", err.Error())
@ -333,29 +325,3 @@ func CountAllArtworkTotal(artistUid string) (artworkTotal int64, artworkRulerTot
}
return artworkTotal, artworkRulerTotal
}
func UpdateArtworkExtData(request *artistInfoArtwork.ArtworkExtData) (err error) {
if request.ArtworkUid == "" {
return errors.New("画作uid不能为空")
}
err = db.DB.Model(model.ArtworkLockRecord{}).Where("artwork_uid = ?", request.ArtworkUid).Update("national_exhibition", request.NationalExhibition).Error
return
}
func GetArtworkExtDatas(request *artistInfoArtwork.GetArtworkExtDataRequest) (data *artistInfoArtwork.GetArtworkExtDataResponse, err error) {
data = &artistInfoArtwork.GetArtworkExtDataResponse{
Data: []*artistInfoArtwork.ArtworkExtData{},
}
if request.ArtworkUid != "" {
request.ArtworkUids = append(request.ArtworkUids, request.ArtworkUid)
}
for _, v := range request.ArtworkUids {
var artworkData = artistInfoArtwork.ArtworkExtData{ArtworkUid: v}
var findData model.ArtworkLockRecord
if err = db.DB.Where("artwork_uid = ?", v).Find(&findData).Error; err != nil {
return
}
artworkData.NationalExhibition = int64(findData.NationalExhibition)
data.Data = append(data.Data, &artworkData)
}
return
}

View File

@ -0,0 +1,147 @@
package dao
import (
"errors"
"github.com/fonchain/fonchain-artistinfo/cmd/model"
"github.com/fonchain/fonchain-artistinfo/pb/mgmtStatement"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/m"
"go.uber.org/zap"
)
//通过excel获得批次数据到数据库
func AddBatchDetail(batch *model.ArtworkTx) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateBatch Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&batch)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateBatch err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}
//通过excel获得数据创建数据到数据库(附件一)
func UploadExcelOne(statement *model.ArtworkSoldTxDetail) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateStatement Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&statement)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateStatement err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}
//通过excel获得数据创建数据到数据库(附件二)
func UploadExcelTwo(statement *model.ArtworkSoldTxDetail) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateStatement Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&statement)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateStatement err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}
//画家对账单列表
func ArtistStatementList(in *mgmtStatement.ArtistStatementListreq) (statement []*model.ArtworkSoldTxDetail, count int64, err error) {
offset := (in.Page - 1) * in.PageSize
db := db.DB.Model(&statement).Select("artist_uid, artist_name, batch_time, view_url, download_url").Where("st_type = ?", in.StType)
if err = db.Count(&count).Error; err != nil {
zap.L().Error("ArtistList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
if count == 0 {
return
}
if err = db.Order("").Limit(int(in.PageSize)).Offset(int(offset)).Find(&statement).Error; err != nil {
zap.L().Error("ArtistList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
//画作基于批次和画家的对账单列表
func ArtStatementList(in *mgmtStatement.ArtStatementListreq) (statement []*model.ArtworkSoldTxDetail, count int64, err error) {
offset := (in.Page - 1) * in.PageSize
db := db.DB.Model(&statement).Table("").Select("artwork_name, tf_num, ruler, sale_no, min_price").Where("st_type = ?", in.StType)
if err = db.Count(&count).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
if count == 0 {
return
}
if err = db.Order("").Limit(int(in.PageSize)).Offset(int(offset)).Find(&statement).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
//更新对账单状态
func UpdateState(StatementUid string, columns map[string]interface{}) (err error) {
if err = db.DB.Model(&model.ArtworkSoldTxDetail{}).Where("StatementUid = ? ", StatementUid).Updates(columns).Error; err != nil {
err = errors.New(m.ERROR_UPDATE_STATEMENT)
}
return
}
//导出合同
func ExportContract(in *mgmtStatement.ExportContractreq) (data []*model.Contract, count int64, err error) {
offset := (in.Page - 1) * in.PageSize
db := db.DB.Model(&data).Select("artist_uid, view_url, download_url, batch_time").Where("st_type = ?", in.StType)
if err = db.Count(&count).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
if count == 0 {
return
}
if err = db.Order("").Limit(int(in.PageSize)).Offset(int(offset)).Find(&data).Error; err != nil {
zap.L().Error("ArtList err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
return
}
//生成合同
func CreateTxContract(contract *model.Contract) (err error) {
tx := db.DB.Begin()
if tx.Error != nil {
zap.L().Error("CreateContract Begin err", zap.Error(tx.Error))
return errors.New(m.ERROR_SELECT)
}
defer tx.Rollback()
result := tx.Create(&contract)
if result.Error != nil || result.RowsAffected != 1 {
zap.L().Error("dao CreateContract err", zap.Error(result.Error))
return errors.New(m.ERROR_CRE_ART)
}
tx.Commit()
return
}

View File

@ -329,10 +329,3 @@ func (a ArtistInfoArtworkLogic) ArtworkStatic(request *artistInfoArtwork.ArtistA
}
return
}
func (a ArtistInfoArtworkLogic) UpdateArtworkExtData(request *artistInfoArtwork.ArtworkExtData) error {
return dao.UpdateArtworkExtData(request)
}
func (a ArtistInfoArtworkLogic) GetArtworkExtDatas(request *artistInfoArtwork.GetArtworkExtDataRequest) (*artistInfoArtwork.GetArtworkExtDataResponse, error) {
return dao.GetArtworkExtDatas(request)
}

View File

@ -0,0 +1,260 @@
package logic
import (
"errors"
"github.com/fonchain/fonchain-artistinfo/cmd/internal/dao"
"github.com/fonchain/fonchain-artistinfo/cmd/model"
"github.com/fonchain/fonchain-artistinfo/pb/mgmtStatement"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/m"
uuid "github.com/satori/go.uuid"
)
type IMgmtStatement interface {
AddBatchDetail(in *mgmtStatement.AddBatchDetailreq) (*mgmtStatement.AddBatchDetailres, error)
UploadExcelOne(in *mgmtStatement.UploadExcelOnereq) (*mgmtStatement.UploadExcelOneres, error)
UploadExcelTwo(in *mgmtStatement.UploadExcelTworeq) (*mgmtStatement.UploadExcelTwores, error)
ArtistStatementList(in *mgmtStatement.ArtistStatementListreq) (*mgmtStatement.ArtistStatementListres, error)
ArtStatementList(in *mgmtStatement.ArtStatementListreq) (*mgmtStatement.ArtStatementListres, error)
ExportContract(in *mgmtStatement.ExportContractreq) (*mgmtStatement.ExportContractres, error)
UpdateState(in *mgmtStatement.UpdateStatementreq) error
CreateTxContract(in *mgmtStatement.CreateTxContractreq) (resp *mgmtStatement.CreateTxContractres, err error)
}
func NewMgmtStatement() IMgmtStatement {
return &MgmtStatement{}
}
type MgmtStatement struct{}
//通过excel生成一条批次数据
func (a *MgmtStatement) AddBatchDetail(in *mgmtStatement.AddBatchDetailreq) (resp *mgmtStatement.AddBatchDetailres, err error) {
resp = &mgmtStatement.AddBatchDetailres{}
var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID)
return
}
if err != nil {
return nil, err
}
var data model.ArtworkTx
data.Uid = uid.String()
data.ArtistName = in.ArtistName
data.ArtistUid = in.ArtistUid
data.BatchTime = in.BatchTime
data.StType = in.StType //对账单类型1=版权 2=物权
data.Status = 1 //对账单状态 1.未签署 2.已发送未签署 3.已签署
if err = dao.AddBatchDetail(&data); err != nil {
return
}
respData := &mgmtStatement.AddBatchRes{BatchUid: data.Uid}
resp.Data = respData
return
}
//生成一条对账单记录(附件一)
func (a *MgmtStatement) UploadExcelOne(in *mgmtStatement.UploadExcelOnereq) (resp *mgmtStatement.UploadExcelOneres, err error) {
resp = &mgmtStatement.UploadExcelOneres{}
var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID)
return
}
if err != nil {
return nil, err
}
var data model.ArtworkSoldTxDetail //物权版权的对账单
sqlSelect := `select uid from artwork_tx where artistid = ? and batchtime = ?`
var batchid string
if err := db.DB.Raw(sqlSelect, data.ArtistUid, data.BatchTime).Find(&batchid).Error; err != nil {
return nil, err
}
data.Uid = uid.String()
data.BatchUid = batchid
data.ArtworkName = in.ArtworkName
data.ArtistName = in.ArtistName
data.ArtistUid = in.ArtistUid
data.TfNum = in.TfNum
data.BatchTime = in.BatchTime
data.GuaranteePrice = in.GuaranteePrice
data.Ruler = in.Ruler
data.MinPrice = in.MinPrice
data.StType = in.StType //对账单类型1=版权 2=物权
if err = dao.UploadExcelOne(&data); err != nil {
return
}
respData := &mgmtStatement.StatementAddRes{StatementUid: data.Uid}
resp.Data = respData
return
}
//生成一条对账单记录(附件二)
func (a *MgmtStatement) UploadExcelTwo(in *mgmtStatement.UploadExcelTworeq) (resp *mgmtStatement.UploadExcelTwores, err error) {
resp = &mgmtStatement.UploadExcelTwores{}
var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID)
return
}
if err != nil {
return nil, err
}
var data model.ArtworkSoldTxDetail //物权版权的对账单
sqlSelect := `select uid from artwork_tx_batch where artistid = ? and batchtime = ?`
var batchid string
if err := db.DB.Raw(sqlSelect, data.ArtistUid, data.BatchTime).Find(&batchid).Error; err != nil {
return nil, err
}
data.Uid = uid.String()
data.BatchUid = batchid
data.ArtworkName = in.ArtworkName
data.ArtistName = in.ArtistName
data.ArtistUid = in.ArtistUid
data.TfNum = in.TfNum
data.BatchTime = in.BatchTime
data.Ruler = in.Ruler
data.MinPrice = in.MinPrice
data.StType = in.StType //对账单类型1=版权 2=物权
if err = dao.UploadExcelTwo(&data); err != nil {
return
}
respData := &mgmtStatement.StatementAddRes{StatementUid: data.Uid}
resp.Data = respData
return
}
//画家对账单列表
func (a *MgmtStatement) ArtistStatementList(in *mgmtStatement.ArtistStatementListreq) (resp *mgmtStatement.ArtistStatementListres, err error) {
resp = &mgmtStatement.ArtistStatementListres{}
if in.Page < model.InitPage {
in.Page = model.InitPage
}
if in.PageSize < 1 {
in.PageSize = model.PageSize
}
var list []*model.ArtworkSoldTxDetail
var count int64
if list, count, err = dao.ArtistStatementList(in); err != nil {
return
}
resp.Count = int32(count)
resp.Page = in.Page
resp.PageSize = in.PageSize
for _, v := range list {
temp := mgmtStatement.ArtistStatementListres_Info{}
temp.ArtistName = v.ArtistName
temp.ArtistUid = v.ArtistUid
temp.BatchTime = v.BatchTime
resp.Data = append(resp.Data, &temp)
}
return
}
//画作列表,根据画家和批次
func (a *MgmtStatement) ArtStatementList(in *mgmtStatement.ArtStatementListreq) (resp *mgmtStatement.ArtStatementListres, err error) {
resp = &mgmtStatement.ArtStatementListres{}
if in.Page < model.InitPage {
in.Page = model.InitPage
}
if in.PageSize < 1 {
in.PageSize = model.PageSize
}
var list []*model.ArtworkSoldTxDetail
var count int64
if list, count, err = dao.ArtStatementList(in); err != nil {
return
}
resp.Count = int32(count)
resp.Page = in.Page
resp.PageSize = in.PageSize
for _, v := range list {
temp := mgmtStatement.ArtStatementListres_Info{}
temp.ArtistName = v.ArtworkName
temp.ArtistUid = v.ArtistUid
temp.ArtworkName = v.ArtworkName
temp.Ruler = v.Ruler
temp.SaleNo = v.SaleNo
temp.TfNum = v.TfNum
temp.CompleteDate = v.CompleteDate
temp.MinPrice = v.MinPrice
}
return
}
//更新对账单状态
func (a *MgmtStatement) UpdateState(in *mgmtStatement.UpdateStatementreq) (err error) {
columns := map[string]interface{}{
"status": in.Status, //状态
}
if err = dao.UpdateState(in.StatementUid, columns); err != nil {
return
}
return
}
//导出合同
func (a *MgmtStatement) ExportContract(in *mgmtStatement.ExportContractreq) (resp *mgmtStatement.ExportContractres, err error) {
resp = &mgmtStatement.ExportContractres{}
if in.Page < model.InitPage {
in.Page = model.InitPage
}
if in.PageSize < 1 {
in.PageSize = model.PageSize
}
var list []*model.Contract
var count int64
if list, count, err = dao.ExportContract(in); err != nil {
return
}
resp.Count = int32(count)
for _, v := range list {
temp := mgmtStatement.ExportContractres_Info{}
temp.DownloadUrl = v.DownloadUrl
temp.BatchTime = v.BatchTime
temp.StType = v.StType
temp.ViewUrl = v.ViewUrl
temp.BatchUid = v.BatchUid
temp.ArtistUid = v.ArtistUid
resp.Data = append(resp.Data, &temp)
}
return
}
//生成合同
func (a *MgmtStatement) CreateTxContract(in *mgmtStatement.CreateTxContractreq) (resp *mgmtStatement.CreateTxContractres, err error) {
resp = &mgmtStatement.CreateTxContractres{}
var uid uuid.UUID
if uid, err = uuid.NewV4(); err != nil {
err = errors.New(m.ERROR_UID)
return
}
if err != nil {
return nil, err
}
var data model.Contract
data.Uid = uid.String()
data.ArtistUid = in.ArtistUid
data.BatchTime = in.BatchTime
data.BatchUid = in.BatchUid
data.ContractId = in.ContractId
data.StType = in.StType
data.Status = 1
data.DownloadUrl = in.DownloadUrl
data.ViewUrl = in.ViewUrl
data.CardId = in.CardId
if err = dao.CreateTxContract(&data); err != nil {
return
}
respData := &mgmtStatement.AddContractRes{BatchUid: data.Uid}
resp.Data = respData
return
}

View File

@ -1,5 +0,0 @@
package model
type OperationRecord struct {
Model
}

View File

@ -53,9 +53,6 @@ type ArtworkLockRecord struct {
SupplementAuditMark string `json:"supplementAuditMark" gorm:"column:supplement_audit_mark;comment:补充信息审核备注1"`
SupplementAuditMark2 string `json:"supplementAuditMark2" gorm:"column:supplement_audit_mark2;comment:补充信息审核备注2"`
//UserInfo User `gorm:"foreignKey:ArtistUid;reference:MgmtArtistUid"`
//画作新增字段(此类字段只在画家宝中展示)
NationalExhibition int `json:"nationalExhibition" gorm:"column:national_exhibition;default:1;comment:是否入选国家画展 1=无(默认) 2=入围 3=入选 4=入围+入选"`
}
func (a *ArtworkLockRecord) TableName() string {

View File

@ -12,6 +12,7 @@ type Contract struct {
TransactionId string `gorm:"column:transaction_id;type:varchar(300);comment:交易id" json:"transaction_id"`
Type int32 `gorm:"column:type;type:int(1);comment:合同类型 (1);NOT NULL" json:"type"`
ViewUrl string `gorm:"column:view_url;type:varchar(500);comment:在线查看合同链接" json:"view_url"`
CardId string `gorm:"column:card_id;type:varchar(500);comment:银行卡号" json:"card_id"`
DownloadUrl string `gorm:"column:download_url;type:varchar(500);comment:合同下载链接" json:"download_url"`
State int32 `gorm:"column:state;type:int(1);comment:合同状态,1:未签署2:已签署;NOT NULL" json:"state"` //1 未签署 2 已签署
Status int32 `gorm:"column:status;default:2;comment:2=锁定 3=解锁" json:"status" ` //跟随用户的锁定和解锁状态,用于控制数据的展示
@ -19,7 +20,7 @@ type Contract struct {
SignTime string `gorm:"column:sign_time;comment:签署时间" json:"sign_time"`
BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"`
BatchUid string `gorm:"column:batch_uid;comment:批次ID" json:"batch_uid"`
StType int32 `gorm:"column:st_type;unqiueIndex:sttype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"`
StType int32 `gorm:"column:st_type;unqiueIndex:stype_uid_batchtime_idx;comment:对账单类型 1=版权 2=物权;"`
ArtworkTx *ArtworkTx `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的物权委托单
ArtworkCopy *ArtworkCopy `gorm:"foreignKey:BatchUid;references:Uid"` //当前批次的版权委托单
ArtworkTxDetail []ArtworkTxDetail `gorm:"foreignKey:BatchUid;references:BatchUid"` //当前批次的物权委托单详情

View File

@ -6,8 +6,8 @@ type Invite struct {
UserId int32 `gorm:"column:user_id;comment:邀请人账号id"`
UserInfo *User `gorm:"foreignKey:id;reference:UserId"`
InvitedId int32 `gorm:"column:invited_id;default:0;comment:受邀请画家宝用户id"`
InviteCode string `gorm:"column:invite_code;type:varchar(191);comment:邀请人的邀请码"`
InvitedCode string `gorm:"column:invited_code;type:varchar(191);comment:受邀请人的邀请码"`
InviteCode string `gorm:"column:invite_code;type:varchar(191);uniqueIndex:invitecode_invitedcode;comment:邀请人的邀请码"`
InvitedCode string `gorm:"column:invited_code;type:varchar(191);uniqueIndex:invitecode_invitedcode;comment:受邀请人的邀请码"`
}
func (i Invite) TableName() string {

View File

@ -2,6 +2,11 @@ package model
import "gorm.io/plugin/soft_delete"
const (
InitPage = 1
PageSize = 15
)
//对账单画作物权
type ArtworkTx struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"`
@ -9,6 +14,8 @@ type ArtworkTx struct {
ArtistUid string `gorm:"column:artist_uid;type:varchar(100);comment:画家Uid;NOT NULL" json:"artist_uid"`
ArtistName string `gorm:"column:artist_name;type:varchar(100);comment:画家名;NOT NULL" json:"artist_name"`
BatchTime string `gorm:"column:batch_time;comment:批次时间" json:"batch_time"`
StType int32 `gorm:"column:st_type;comment:对账单类型 1=版权 2=物权"`
Status int32 `gorm:"column:st_type;comment:对账单状态 1:未签署;2:已生成,未签署;3:已签署"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt
@ -34,14 +41,18 @@ type ArtworkSoldTxDetail struct {
ID int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"`
Uid string `gorm:"column:uid;type:varchar(100);comment:对账单画作物权详情表的唯一表示;NOT NULL" json:"uid"`
BatchUid string `gorm:"column:batch_uid;type:varchar(100);comment:对账单画作物权表的唯一表示,即批次Uid;NOT NULL" json:"batch_uid"`
BatchTime string `gorm:"column:batch_time;comment:批次时间"`
TfNum string `gorm:"column:tf_num;unqiueIndex:batchid_tfnum_idx;comment:"泰丰画作编号"`
ArtworkName string `gorm:"column:artwork_name;comment:画作名称"`
ArtistName string `gorm:"column:artist_name;comment:画家名称"`
ArtistUid string `gorm:"column:artist_uid;comment:画家uid"`
Ruler string `gorm:"column:ruler;comment:平尺"`
SaleNo string `gorm:"column:sale_no;comment:销售单号"`
CompleteDate string `gorm:"column:complete_date;comment:成交日期"`
MinPrice float32 `gorm:"column:min_price;comment:委托销售底价"`
SalePrice float32 `gorm:"column:sale_price;comment:画作售价"`
GuaranteePrice float32 `gorm:"column:guarantee_price;comment:已收取保证金;"`
StType int32 `gorm:"column:st_type;comment:对账单类型 1=版权 2=物权"`
CreatedAt int32 `gorm:"column:created_at;autoCreateTime"`
UpdatedAt int32 `gorm:"column:updated_at;autoCreateTime"`
DeletedAt soft_delete.DeletedAt

View File

@ -32,7 +32,7 @@ func (p ViewPassedArtworkStatic) TableName() string {
}
func CreateViewPassedArtworkStatic(db *gorm.DB) error {
// 统计画家通过基本画作审批的画作数量
// 已通过画作统计
var sql = `
CREATE OR REPLACE VIEW view_passed_artwork_static AS
-- 查询审核通过的画作数量以及相关数据
@ -44,7 +44,7 @@ su.mgmt_artist_uid artist_uid
,MAX(alr.updated_at) latest_updated_at
,MAX(rn.name) real_name
FROM sys_user su
LEFT JOIN artwork_lock_record alr ON alr.artist_uid = su.mgmt_artist_uid AND alr.base_audit_status=4 AND alr.deleted_at = 0
LEFT JOIN artwork_lock_record alr ON alr.artist_uid = su.mgmt_artist_uid AND alr.audit_flow_index=3 AND alr.supplement_audit_status=4 AND alr.deleted_at = 0
LEFT JOIN real_name rn ON rn.id = su.real_name_id
GROUP BY su.mgmt_artist_uid HAVING su.mgmt_artist_uid !=''
`

View File

@ -34,7 +34,7 @@ type UserView struct {
IdcardFront string `json:"idcardFront" gorm:"column:idcard_front;comment:身份证反面"`
JoinAssoTime string `json:"joinAssoTime" gorm:"column:join_asso_time;comment:入会时间"`
InviterInviteCode string `json:"inviterInviteCode" gorm:"column:inviter_invite_code;comment:邀请人的邀请码"`
InviterRealName string `json:"inviterRealName" gorm:"column:inviter_real_name;comment:邀请人的真实姓名"`
InviterRealName string `json:"inviterRealName" gorm:"column:inviter_name;comment:邀请人的真实姓名"`
CreatedAt time.Time `json:"createdAt" gorm:"column:created_at;comment:"`
UpdatedAt time.Time `json:"updatedAt" gorm:"column:updated_at;comment:"`
DeletedAt int64 `json:"deletedAt" gorm:"column:deleted_at;comment:"`
@ -75,7 +75,7 @@ SELECT
su.updated_at,
su.deleted_at,
inviter.invited_code inviter_invite_code,
inviter_rn.name inviter_real_name,
inviter_rn.name inviter_name,
su.latest_lock_time,
su.join_asso_time,
su.certificate_num,

View File

@ -34,6 +34,9 @@ dubbo:
ArtistInfoStatementProvider:
interface: com.fontree.microservices.common.ArtistInfoStatement
retries: 100
MgmtStatementProvider:
interface: com.fontree.microservices.common.MgmtStatement
retries: 100
#ContractProvider:
# interface: com.fontree.microservices.common.Contract
# retries: 0

View File

@ -37,8 +37,7 @@ const (
ArtworkQueryMode_NowAuditFlowOfBase ArtworkQueryMode = 4 //当前处于基本数据审核流程中的画作
ArtworkQueryMode_NowAuditFlowOfSupplementing ArtworkQueryMode = 5 //当前处于数据补充流程中的画作
ArtworkQueryMode_AllUnlockArtwork ArtworkQueryMode = 6 //所有已解锁的画作(历史画作)
ArtworkQueryMode_AllAuditPassArtwork ArtworkQueryMode = 7 //所有审批已通过的画作(基本画作审批和补充信息审批)
ArtworkQueryMode_BaseAuditPassed ArtworkQueryMode = 8 //基本画作审批通过
ArtworkQueryMode_AllAuditPassArtwork ArtworkQueryMode = 7 //所有审批已通过的画作
)
// Enum value maps for ArtworkQueryMode.
@ -52,7 +51,6 @@ var (
5: "NowAuditFlowOfSupplementing",
6: "AllUnlockArtwork",
7: "AllAuditPassArtwork",
8: "BaseAuditPassed",
}
ArtworkQueryMode_value = map[string]int32{
"Non": 0,
@ -63,7 +61,6 @@ var (
"NowAuditFlowOfSupplementing": 5,
"AllUnlockArtwork": 6,
"AllAuditPassArtwork": 7,
"BaseAuditPassed": 8,
}
)
@ -367,7 +364,7 @@ type GetArtworkLockRecordsRequest struct {
ArtistUid string `protobuf:"bytes,1,opt,name=artistUid,proto3" json:"artistUid,omitempty"` //画家uid
QueryType ArtworkQueryMode `protobuf:"varint,2,opt,name=queryType,proto3,enum=artistinfo.ArtworkQueryMode" json:"queryType,omitempty"` //查询模式
BaseAuditStatus int64 `protobuf:"varint,3,opt,name=baseAuditStatus,proto3" json:"baseAuditStatus,omitempty"` //基本信息审批状态 可选 1:暂存 2:待审核 3审核不通过 4审核通过
BaseAuditStatus int64 `protobuf:"varint,3,opt,name=baseAuditStatus,proto3" json:"baseAuditStatus,omitempty"` //基本信息审批状态 可选
SupplementAuditStatus int64 `protobuf:"varint,4,opt,name=supplementAuditStatus,proto3" json:"supplementAuditStatus,omitempty"` //基本信息审批状态 可选
ArtworkUids []string `protobuf:"bytes,5,rep,name=artworkUids,proto3" json:"artworkUids,omitempty"` //画作uid列表
Page int64 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"`
@ -1617,163 +1614,6 @@ func (x *ArtistArtworkStaticResponse) GetTotal() int64 {
return 0
}
type ArtworkExtData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"`
NationalExhibition int64 `protobuf:"varint,2,opt,name=nationalExhibition,proto3" json:"nationalExhibition,omitempty"` //是否入选国家画展 1=无(默认) 2=入围 3=入选 4=入围+入选
}
func (x *ArtworkExtData) Reset() {
*x = ArtworkExtData{}
if protoimpl.UnsafeEnabled {
mi := &file_pb_artistinfoArtwork_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ArtworkExtData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ArtworkExtData) ProtoMessage() {}
func (x *ArtworkExtData) ProtoReflect() protoreflect.Message {
mi := &file_pb_artistinfoArtwork_proto_msgTypes[20]
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 ArtworkExtData.ProtoReflect.Descriptor instead.
func (*ArtworkExtData) Descriptor() ([]byte, []int) {
return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{20}
}
func (x *ArtworkExtData) GetArtworkUid() string {
if x != nil {
return x.ArtworkUid
}
return ""
}
func (x *ArtworkExtData) GetNationalExhibition() int64 {
if x != nil {
return x.NationalExhibition
}
return 0
}
type GetArtworkExtDataRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ArtworkUid string `protobuf:"bytes,1,opt,name=artworkUid,proto3" json:"artworkUid,omitempty"` //选填1
ArtworkUids []string `protobuf:"bytes,2,rep,name=artworkUids,proto3" json:"artworkUids,omitempty"` //选填2
}
func (x *GetArtworkExtDataRequest) Reset() {
*x = GetArtworkExtDataRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_pb_artistinfoArtwork_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetArtworkExtDataRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetArtworkExtDataRequest) ProtoMessage() {}
func (x *GetArtworkExtDataRequest) ProtoReflect() protoreflect.Message {
mi := &file_pb_artistinfoArtwork_proto_msgTypes[21]
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 GetArtworkExtDataRequest.ProtoReflect.Descriptor instead.
func (*GetArtworkExtDataRequest) Descriptor() ([]byte, []int) {
return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{21}
}
func (x *GetArtworkExtDataRequest) GetArtworkUid() string {
if x != nil {
return x.ArtworkUid
}
return ""
}
func (x *GetArtworkExtDataRequest) GetArtworkUids() []string {
if x != nil {
return x.ArtworkUids
}
return nil
}
type GetArtworkExtDataResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data []*ArtworkExtData `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"`
}
func (x *GetArtworkExtDataResponse) Reset() {
*x = GetArtworkExtDataResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_pb_artistinfoArtwork_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetArtworkExtDataResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetArtworkExtDataResponse) ProtoMessage() {}
func (x *GetArtworkExtDataResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_artistinfoArtwork_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 GetArtworkExtDataResponse.ProtoReflect.Descriptor instead.
func (*GetArtworkExtDataResponse) Descriptor() ([]byte, []int) {
return file_pb_artistinfoArtwork_proto_rawDescGZIP(), []int{22}
}
func (x *GetArtworkExtDataResponse) GetData() []*ArtworkExtData {
if x != nil {
return x.Data
}
return nil
}
var File_pb_artistinfoArtwork_proto protoreflect.FileDescriptor
var file_pb_artistinfoArtwork_proto_rawDesc = []byte{
@ -2021,124 +1861,94 @@ var file_pb_artistinfoArtwork_proto_rawDesc = []byte{
0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65,
0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65,
0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20,
0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x60, 0x0a, 0x0e, 0x41, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a,
0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12,
0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x18,
0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74,
0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x19, 0x47, 0x65,
0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e,
0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74,
0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x2a, 0xde, 0x01, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x07, 0x0a, 0x03,
0x4e, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53,
0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10,
0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b,
0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53, 0x61, 0x76, 0x65,
0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4e,
0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x42, 0x61, 0x73,
0x65, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46,
0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x69,
0x6e, 0x67, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63,
0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x6c,
0x6c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72,
0x6b, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74,
0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x10, 0x08, 0x32, 0xb7, 0x0a, 0x0a, 0x11, 0x41, 0x72, 0x74,
0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66,
0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c,
0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65,
0x71, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72,
0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72,
0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b,
0x4c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12,
0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74,
0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2a, 0xc9, 0x01, 0x0a, 0x10, 0x41,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12,
0x07, 0x0a, 0x03, 0x4e, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x6f, 0x77, 0x50,
0x72, 0x65, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x01, 0x12,
0x14, 0x0a, 0x10, 0x4e, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x53,
0x61, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x03, 0x12, 0x16,
0x0a, 0x12, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66,
0x42, 0x61, 0x73, 0x65, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x4e, 0x6f, 0x77, 0x41, 0x75, 0x64,
0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x4f, 0x66, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x55, 0x6e,
0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x10, 0x06, 0x12, 0x17, 0x0a,
0x13, 0x41, 0x6c, 0x6c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x10, 0x07, 0x32, 0x84, 0x09, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x73,
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x66, 0x0a, 0x17,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63,
0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f,
0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a,
0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c,
0x6f, 0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f,
0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41,
0x63, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f,
0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x28, 0x2e,
0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b,
0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66,
0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29,
0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69,
0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f,
0x63, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x29, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65,
0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x48, 0x69, 0x73, 0x74,
0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a,
0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65,
0x63, 0x6f, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66,
0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61,
0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74,
0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12,
0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x63,
0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c,
0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72,
0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c,
0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41,
0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x74,
0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x1c,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x73, 0x65,
0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x61,
0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72,
0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22,
0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c,
0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72,
0x6b, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e,
0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00,
0x12, 0x6c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72,
0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x61,
0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x00, 0x12, 0x69,
0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x61,
0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d,
0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e,
0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, 0x43, 0x68, 0x65,
0x63, 0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12,
0x1d, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63,
0x6b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x1d, 0x47, 0x65,
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70,
0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x61, 0x72,
0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b,
0x55, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x26, 0x2e, 0x61,
0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74,
0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66,
0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53,
0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
0x4c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b,
0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74,
0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44,
0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x63, 0x0a,
0x12, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44, 0x61,
0x74, 0x61, 0x73, 0x12, 0x24, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f,
0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x74, 0x44, 0x61,
0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72,
0x6b, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49,
0x6e, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x72,
0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x22, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e,
0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f,
0x72, 0x6b, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61,
0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41,
0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x1d, 0x47, 0x65, 0x6e, 0x65,
0x72, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6c,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x74, 0x69,
0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x69,
0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x26, 0x2e, 0x61, 0x72, 0x74,
0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x2e,
0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61,
0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x16, 0x5a,
0x14, 0x2e, 0x2f, 0x3b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -2154,7 +1964,7 @@ func file_pb_artistinfoArtwork_proto_rawDescGZIP() []byte {
}
var file_pb_artistinfoArtwork_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_pb_artistinfoArtwork_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_pb_artistinfoArtwork_proto_goTypes = []interface{}{
(ArtworkQueryMode)(0), // 0: artistinfo.ArtworkQueryMode
(*ArtworkCommonNoParams)(nil), // 1: artistinfo.ArtworkCommonNoParams
@ -2177,10 +1987,7 @@ var file_pb_artistinfoArtwork_proto_goTypes = []interface{}{
(*ArtistArtworkStaticRequest)(nil), // 18: artistinfo.ArtistArtworkStaticRequest
(*ArtistArtworkStaticStaticData)(nil), // 19: artistinfo.ArtistArtworkStaticStaticData
(*ArtistArtworkStaticResponse)(nil), // 20: artistinfo.ArtistArtworkStaticResponse
(*ArtworkExtData)(nil), // 21: artistinfo.ArtworkExtData
(*GetArtworkExtDataRequest)(nil), // 22: artistinfo.GetArtworkExtDataRequest
(*GetArtworkExtDataResponse)(nil), // 23: artistinfo.GetArtworkExtDataResponse
(*emptypb.Empty)(nil), // 24: google.protobuf.Empty
(*emptypb.Empty)(nil), // 21: google.protobuf.Empty
}
var file_pb_artistinfoArtwork_proto_depIdxs = []int32{
0, // 0: artistinfo.GetArtworkLockRecordsRequest.queryType:type_name -> artistinfo.ArtworkQueryMode
@ -2188,38 +1995,33 @@ var file_pb_artistinfoArtwork_proto_depIdxs = []int32{
15, // 2: artistinfo.GetArtworkLockHistoryResponse.groupList:type_name -> artistinfo.ArtworkLockRecord
13, // 3: artistinfo.ArtworkLockRecord.dataList:type_name -> artistinfo.ArtworkPreviewInfo
19, // 4: artistinfo.ArtistArtworkStaticResponse.data:type_name -> artistinfo.ArtistArtworkStaticStaticData
21, // 5: artistinfo.GetArtworkExtDataResponse.Data:type_name -> artistinfo.ArtworkExtData
4, // 6: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq
5, // 7: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest
6, // 8: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest
11, // 9: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest
10, // 10: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest
12, // 11: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest
16, // 12: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest
2, // 13: artistinfo.ArtistInfoArtwork.CheckArtworkBaseInfoEditable:input_type -> artistinfo.ArtworkUidRequest
2, // 14: artistinfo.ArtistInfoArtwork.CheckArtworkSupplementInfoEditable:input_type -> artistinfo.ArtworkUidRequest
3, // 15: artistinfo.ArtistInfoArtwork.GenerateArtworkSupplementInfo:input_type -> artistinfo.ArtworkUidsRequest
18, // 16: artistinfo.ArtistInfoArtwork.ArtistArtworkStatic:input_type -> artistinfo.ArtistArtworkStaticRequest
21, // 17: artistinfo.ArtistInfoArtwork.UpdateArtworkExtData:input_type -> artistinfo.ArtworkExtData
22, // 18: artistinfo.ArtistInfoArtwork.GetArtworkExtDatas:input_type -> artistinfo.GetArtworkExtDataRequest
1, // 19: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams
1, // 20: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams
8, // 21: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList
14, // 22: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse
1, // 23: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams
7, // 24: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo
1, // 25: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams
17, // 26: artistinfo.ArtistInfoArtwork.CheckArtworkBaseInfoEditable:output_type -> artistinfo.CheckArtworkEditableResponse
17, // 27: artistinfo.ArtistInfoArtwork.CheckArtworkSupplementInfoEditable:output_type -> artistinfo.CheckArtworkEditableResponse
24, // 28: artistinfo.ArtistInfoArtwork.GenerateArtworkSupplementInfo:output_type -> google.protobuf.Empty
20, // 29: artistinfo.ArtistInfoArtwork.ArtistArtworkStatic:output_type -> artistinfo.ArtistArtworkStaticResponse
24, // 30: artistinfo.ArtistInfoArtwork.UpdateArtworkExtData:output_type -> google.protobuf.Empty
23, // 31: artistinfo.ArtistInfoArtwork.GetArtworkExtDatas:output_type -> artistinfo.GetArtworkExtDataResponse
19, // [19:32] is the sub-list for method output_type
6, // [6:19] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
4, // 5: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:input_type -> artistinfo.CreateArtworkLockRecordReq
5, // 6: artistinfo.ArtistInfoArtwork.ArtworkLockAction:input_type -> artistinfo.ArtworkLockActionRequest
6, // 7: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:input_type -> artistinfo.GetArtworkLockRecordsRequest
11, // 8: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:input_type -> artistinfo.GetArtworkLockHistoryRequest
10, // 9: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:input_type -> artistinfo.DeleteArtworkRecordRequest
12, // 10: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:input_type -> artistinfo.GetArtworkLockDetailRequest
16, // 11: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:input_type -> artistinfo.UpdateArtworkAuditStatusRequest
2, // 12: artistinfo.ArtistInfoArtwork.CheckArtworkBaseInfoEditable:input_type -> artistinfo.ArtworkUidRequest
2, // 13: artistinfo.ArtistInfoArtwork.CheckArtworkSupplementInfoEditable:input_type -> artistinfo.ArtworkUidRequest
3, // 14: artistinfo.ArtistInfoArtwork.GenerateArtworkSupplementInfo:input_type -> artistinfo.ArtworkUidsRequest
18, // 15: artistinfo.ArtistInfoArtwork.ArtistArtworkStatic:input_type -> artistinfo.ArtistArtworkStaticRequest
1, // 16: artistinfo.ArtistInfoArtwork.CreateArtworkLockRecord:output_type -> artistinfo.ArtworkCommonNoParams
1, // 17: artistinfo.ArtistInfoArtwork.ArtworkLockAction:output_type -> artistinfo.ArtworkCommonNoParams
8, // 18: artistinfo.ArtistInfoArtwork.GetArtworkLockRecords:output_type -> artistinfo.ArtworkLockList
14, // 19: artistinfo.ArtistInfoArtwork.GetArtworkLockHistoryGroup:output_type -> artistinfo.GetArtworkLockHistoryResponse
1, // 20: artistinfo.ArtistInfoArtwork.DeleteArtworkRecord:output_type -> artistinfo.ArtworkCommonNoParams
7, // 21: artistinfo.ArtistInfoArtwork.GetArtworkLockDetail:output_type -> artistinfo.ArtistLockInfo
1, // 22: artistinfo.ArtistInfoArtwork.UpdateArtworkAuditStatus:output_type -> artistinfo.ArtworkCommonNoParams
17, // 23: artistinfo.ArtistInfoArtwork.CheckArtworkBaseInfoEditable:output_type -> artistinfo.CheckArtworkEditableResponse
17, // 24: artistinfo.ArtistInfoArtwork.CheckArtworkSupplementInfoEditable:output_type -> artistinfo.CheckArtworkEditableResponse
21, // 25: artistinfo.ArtistInfoArtwork.GenerateArtworkSupplementInfo:output_type -> google.protobuf.Empty
20, // 26: artistinfo.ArtistInfoArtwork.ArtistArtworkStatic:output_type -> artistinfo.ArtistArtworkStaticResponse
16, // [16:27] is the sub-list for method output_type
5, // [5:16] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_pb_artistinfoArtwork_proto_init() }
@ -2468,42 +2270,6 @@ func file_pb_artistinfoArtwork_proto_init() {
return nil
}
}
file_pb_artistinfoArtwork_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ArtworkExtData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pb_artistinfoArtwork_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetArtworkExtDataRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pb_artistinfoArtwork_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetArtworkExtDataResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -2511,7 +2277,7 @@ func file_pb_artistinfoArtwork_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pb_artistinfoArtwork_proto_rawDesc,
NumEnums: 1,
NumMessages: 23,
NumMessages: 20,
NumExtensions: 0,
NumServices: 1,
},

View File

@ -2376,347 +2376,3 @@ var _ interface {
Cause() error
ErrorName() string
} = ArtistArtworkStaticResponseValidationError{}
// Validate checks the field values on ArtworkExtData with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *ArtworkExtData) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on ArtworkExtData with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in ArtworkExtDataMultiError,
// or nil if none found.
func (m *ArtworkExtData) ValidateAll() error {
return m.validate(true)
}
func (m *ArtworkExtData) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for ArtworkUid
// no validation rules for NationalExhibition
if len(errors) > 0 {
return ArtworkExtDataMultiError(errors)
}
return nil
}
// ArtworkExtDataMultiError is an error wrapping multiple validation errors
// returned by ArtworkExtData.ValidateAll() if the designated constraints
// aren't met.
type ArtworkExtDataMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m ArtworkExtDataMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m ArtworkExtDataMultiError) AllErrors() []error { return m }
// ArtworkExtDataValidationError is the validation error returned by
// ArtworkExtData.Validate if the designated constraints aren't met.
type ArtworkExtDataValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e ArtworkExtDataValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e ArtworkExtDataValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e ArtworkExtDataValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e ArtworkExtDataValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e ArtworkExtDataValidationError) ErrorName() string { return "ArtworkExtDataValidationError" }
// Error satisfies the builtin error interface
func (e ArtworkExtDataValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sArtworkExtData.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = ArtworkExtDataValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = ArtworkExtDataValidationError{}
// Validate checks the field values on GetArtworkExtDataRequest with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *GetArtworkExtDataRequest) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on GetArtworkExtDataRequest with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// GetArtworkExtDataRequestMultiError, or nil if none found.
func (m *GetArtworkExtDataRequest) ValidateAll() error {
return m.validate(true)
}
func (m *GetArtworkExtDataRequest) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for ArtworkUid
if len(errors) > 0 {
return GetArtworkExtDataRequestMultiError(errors)
}
return nil
}
// GetArtworkExtDataRequestMultiError is an error wrapping multiple validation
// errors returned by GetArtworkExtDataRequest.ValidateAll() if the designated
// constraints aren't met.
type GetArtworkExtDataRequestMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m GetArtworkExtDataRequestMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m GetArtworkExtDataRequestMultiError) AllErrors() []error { return m }
// GetArtworkExtDataRequestValidationError is the validation error returned by
// GetArtworkExtDataRequest.Validate if the designated constraints aren't met.
type GetArtworkExtDataRequestValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e GetArtworkExtDataRequestValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e GetArtworkExtDataRequestValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e GetArtworkExtDataRequestValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e GetArtworkExtDataRequestValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e GetArtworkExtDataRequestValidationError) ErrorName() string {
return "GetArtworkExtDataRequestValidationError"
}
// Error satisfies the builtin error interface
func (e GetArtworkExtDataRequestValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sGetArtworkExtDataRequest.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = GetArtworkExtDataRequestValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = GetArtworkExtDataRequestValidationError{}
// Validate checks the field values on GetArtworkExtDataResponse with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *GetArtworkExtDataResponse) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on GetArtworkExtDataResponse with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// GetArtworkExtDataResponseMultiError, or nil if none found.
func (m *GetArtworkExtDataResponse) ValidateAll() error {
return m.validate(true)
}
func (m *GetArtworkExtDataResponse) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
for idx, item := range m.GetData() {
_, _ = idx, item
if all {
switch v := interface{}(item).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, GetArtworkExtDataResponseValidationError{
field: fmt.Sprintf("Data[%v]", idx),
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, GetArtworkExtDataResponseValidationError{
field: fmt.Sprintf("Data[%v]", idx),
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return GetArtworkExtDataResponseValidationError{
field: fmt.Sprintf("Data[%v]", idx),
reason: "embedded message failed validation",
cause: err,
}
}
}
}
if len(errors) > 0 {
return GetArtworkExtDataResponseMultiError(errors)
}
return nil
}
// GetArtworkExtDataResponseMultiError is an error wrapping multiple validation
// errors returned by GetArtworkExtDataResponse.ValidateAll() if the
// designated constraints aren't met.
type GetArtworkExtDataResponseMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m GetArtworkExtDataResponseMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m GetArtworkExtDataResponseMultiError) AllErrors() []error { return m }
// GetArtworkExtDataResponseValidationError is the validation error returned by
// GetArtworkExtDataResponse.Validate if the designated constraints aren't met.
type GetArtworkExtDataResponseValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e GetArtworkExtDataResponseValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e GetArtworkExtDataResponseValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e GetArtworkExtDataResponseValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e GetArtworkExtDataResponseValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e GetArtworkExtDataResponseValidationError) ErrorName() string {
return "GetArtworkExtDataResponseValidationError"
}
// Error satisfies the builtin error interface
func (e GetArtworkExtDataResponseValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sGetArtworkExtDataResponse.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = GetArtworkExtDataResponseValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = GetArtworkExtDataResponseValidationError{}

View File

@ -41,8 +41,6 @@ type ArtistInfoArtworkClient interface {
CheckArtworkSupplementInfoEditable(ctx context.Context, in *ArtworkUidRequest, opts ...grpc_go.CallOption) (*CheckArtworkEditableResponse, common.ErrorWithAttachment)
GenerateArtworkSupplementInfo(ctx context.Context, in *ArtworkUidsRequest, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
ArtistArtworkStatic(ctx context.Context, in *ArtistArtworkStaticRequest, opts ...grpc_go.CallOption) (*ArtistArtworkStaticResponse, common.ErrorWithAttachment)
UpdateArtworkExtData(ctx context.Context, in *ArtworkExtData, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment)
GetArtworkExtDatas(ctx context.Context, in *GetArtworkExtDataRequest, opts ...grpc_go.CallOption) (*GetArtworkExtDataResponse, common.ErrorWithAttachment)
}
type artistInfoArtworkClient struct {
@ -61,8 +59,6 @@ type ArtistInfoArtworkClientImpl struct {
CheckArtworkSupplementInfoEditable func(ctx context.Context, in *ArtworkUidRequest) (*CheckArtworkEditableResponse, error)
GenerateArtworkSupplementInfo func(ctx context.Context, in *ArtworkUidsRequest) (*emptypb.Empty, error)
ArtistArtworkStatic func(ctx context.Context, in *ArtistArtworkStaticRequest) (*ArtistArtworkStaticResponse, error)
UpdateArtworkExtData func(ctx context.Context, in *ArtworkExtData) (*emptypb.Empty, error)
GetArtworkExtDatas func(ctx context.Context, in *GetArtworkExtDataRequest) (*GetArtworkExtDataResponse, error)
}
func (c *ArtistInfoArtworkClientImpl) GetDubboStub(cc *triple.TripleConn) ArtistInfoArtworkClient {
@ -143,18 +139,6 @@ func (c *artistInfoArtworkClient) ArtistArtworkStatic(ctx context.Context, in *A
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ArtistArtworkStatic", in, out)
}
func (c *artistInfoArtworkClient) UpdateArtworkExtData(ctx context.Context, in *ArtworkExtData, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) {
out := new(emptypb.Empty)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateArtworkExtData", in, out)
}
func (c *artistInfoArtworkClient) GetArtworkExtDatas(ctx context.Context, in *GetArtworkExtDataRequest, opts ...grpc_go.CallOption) (*GetArtworkExtDataResponse, common.ErrorWithAttachment) {
out := new(GetArtworkExtDataResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtworkExtDatas", in, out)
}
// ArtistInfoArtworkServer is the server API for ArtistInfoArtwork service.
// All implementations must embed UnimplementedArtistInfoArtworkServer
// for forward compatibility
@ -171,8 +155,6 @@ type ArtistInfoArtworkServer interface {
CheckArtworkSupplementInfoEditable(context.Context, *ArtworkUidRequest) (*CheckArtworkEditableResponse, error)
GenerateArtworkSupplementInfo(context.Context, *ArtworkUidsRequest) (*emptypb.Empty, error)
ArtistArtworkStatic(context.Context, *ArtistArtworkStaticRequest) (*ArtistArtworkStaticResponse, error)
UpdateArtworkExtData(context.Context, *ArtworkExtData) (*emptypb.Empty, error)
GetArtworkExtDatas(context.Context, *GetArtworkExtDataRequest) (*GetArtworkExtDataResponse, error)
mustEmbedUnimplementedArtistInfoArtworkServer()
}
@ -214,12 +196,6 @@ func (UnimplementedArtistInfoArtworkServer) GenerateArtworkSupplementInfo(contex
func (UnimplementedArtistInfoArtworkServer) ArtistArtworkStatic(context.Context, *ArtistArtworkStaticRequest) (*ArtistArtworkStaticResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ArtistArtworkStatic not implemented")
}
func (UnimplementedArtistInfoArtworkServer) UpdateArtworkExtData(context.Context, *ArtworkExtData) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateArtworkExtData not implemented")
}
func (UnimplementedArtistInfoArtworkServer) GetArtworkExtDatas(context.Context, *GetArtworkExtDataRequest) (*GetArtworkExtDataResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetArtworkExtDatas not implemented")
}
func (s *UnimplementedArtistInfoArtworkServer) XXX_SetProxyImpl(impl protocol.Invoker) {
s.proxyImpl = impl
}
@ -567,64 +543,6 @@ func _ArtistInfoArtwork_ArtistArtworkStatic_Handler(srv interface{}, ctx context
return interceptor(ctx, in, info, handler)
}
func _ArtistInfoArtwork_UpdateArtworkExtData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(ArtworkExtData)
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("UpdateArtworkExtData", 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 _ArtistInfoArtwork_GetArtworkExtDatas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetArtworkExtDataRequest)
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("GetArtworkExtDatas", 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)
}
// ArtistInfoArtwork_ServiceDesc is the grpc_go.ServiceDesc for ArtistInfoArtwork service.
// It's only intended for direct use with grpc_go.RegisterService,
// and not to be introspected or modified (even as a copy)
@ -676,14 +594,6 @@ var ArtistInfoArtwork_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "ArtistArtworkStatic",
Handler: _ArtistInfoArtwork_ArtistArtworkStatic_Handler,
},
{
MethodName: "UpdateArtworkExtData",
Handler: _ArtistInfoArtwork_UpdateArtworkExtData_Handler,
},
{
MethodName: "GetArtworkExtDatas",
Handler: _ArtistInfoArtwork_GetArtworkExtDatas_Handler,
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "pb/artistinfoArtwork.proto",

View File

@ -20,8 +20,6 @@ service ArtistInfoArtwork {
rpc CheckArtworkSupplementInfoEditable(ArtworkUidRequest)returns(CheckArtworkEditableResponse){}//
rpc GenerateArtworkSupplementInfo(ArtworkUidsRequest)returns(google.protobuf.Empty){}//
rpc ArtistArtworkStatic(ArtistArtworkStaticRequest)returns(ArtistArtworkStaticResponse){}//
rpc UpdateArtworkExtData(ArtworkExtData)returns(google.protobuf.Empty){}//使
rpc GetArtworkExtDatas(GetArtworkExtDataRequest)returns(GetArtworkExtDataResponse){} //使
}
message ArtworkCommonNoParams{}
@ -51,13 +49,12 @@ enum ArtworkQueryMode {
NowAuditFlowOfBase= 4; //
NowAuditFlowOfSupplementing = 5; //
AllUnlockArtwork = 6; //()
AllAuditPassArtwork=7; //()
BaseAuditPassed=8;//
AllAuditPassArtwork=7; //
}
message GetArtworkLockRecordsRequest{
string artistUid =1 [(validate.rules).message.required = true];//uid
ArtworkQueryMode queryType =2 ; //
int64 baseAuditStatus =3; // 1: 2: 3 4
int64 baseAuditStatus =3; //
int64 supplementAuditStatus =4; //
repeated string artworkUids=5; //uid列表
int64 page=6;
@ -184,18 +181,4 @@ message ArtistArtworkStaticResponse{
int64 page=2;
int64 pageSize=3;
int64 total=4;
}
message ArtworkExtData{
string artworkUid =1;
int64 nationalExhibition=2; // 1=() 2= 3= 4=+
}
message GetArtworkExtDataRequest{
string artworkUid =1; //1
repeated string artworkUids =2;//2
}
message GetArtworkExtDataResponse{
repeated ArtworkExtData Data =1;
}

View File

@ -33,7 +33,7 @@ message Contracts{
string SignTime = 13 [json_name = "sign_time"];
string BatchTime = 14 [json_name = "batch_time"];
string BatchUid = 15 [json_name = "batch_uid"];
int32 StType = 16 [json_name = "st_yype"];
int32 StType = 16 [json_name = "st_type"];
}
message CreateContractRequest {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,199 @@
//proto版本
syntax = "proto3";
//
package mgmtStatement;
//golang中的包名
option go_package = "./;mgmtStatement";
//
service MgmtStatement {
rpc AddBatchDetail(AddBatchDetailreq) returns (AddBatchDetailres){}//
rpc UploadExcelOne(UploadExcelOnereq) returns (UploadExcelOneres){}//excel附件一
rpc UploadExcelTwo(UploadExcelTworeq) returns (UploadExcelTwores){}//excel附件二
rpc ArtistStatementList(ArtistStatementListreq) returns (ArtistStatementListres){}//
rpc ArtStatementList(ArtStatementListreq) returns (ArtStatementListres){}//
rpc UpdateState(UpdateStatementreq) returns (UpdateStatementres){}//
rpc CreateTxContract(CreateTxContractreq) returns (CreateTxContractres){}//
rpc ExportContract(ExportContractreq) returns (ExportContractres){}//
}
//
message AddBatchDetailreq {
int32 Id = 1 [json_name = "id"]; //id
string BatchUid = 2 [json_name = "batch_uid"]; //uid
string ArtistUid = 3 [json_name = "artist_uid"];//uid
string ArtistName = 4 [json_name = "artist_name"];//
string BatchTime = 5 [json_name = "batch_time"];//
int32 StType = 6 [json_name = "st_type"];//1= 2=
int32 Status = 7 [json_name = "status"];// 1:23
}
message AddBatchRes {
string BatchUid = 1 [json_name = "batch_uid"];//uid
}
message AddBatchDetailres {
string Msg = 1 [json_name = "msg"];
AddBatchRes Data = 2 [json_name = "data"];
}
//
message UploadExcelOnereq {
int32 Id = 1 [json_name = "id"]; //id
string StatementUid = 2 [json_name = "statement_uid"]; //uid
string BatchUid = 3 [json_name = "batch_uid"]; //uid
string TfNum = 4 [json_name = "TfNum"];//
string Ruler = 5 [json_name = "ruler"];//
string ArtworkName = 6 [json_name = "artwork_name"];//
float GuaranteePrice = 7 [json_name = "guarantee_price"];//
float MinPrice = 8 [json_name = "min_price"];//
string ArtistUid = 9 [json_name = "artist_uid"];//uid
string ArtistName = 10 [json_name = "artist_name"];//
string BatchTime = 11 [json_name = "batch_time"];//
int32 StType = 12 [json_name = "st_type"];//1= 2=
int32 Status = 13 [json_name = "status"];// 1:23
}
message StatementAddRes {
string StatementUid = 1 [json_name = "statement_uid"];//uid
}
message UploadExcelOneres {
string Msg = 1 [json_name = "msg"];
StatementAddRes Data = 2 [json_name = "data"];
}
//
message UploadExcelTworeq {
int32 Id = 1 [json_name = "id"]; //id
string StatementUid = 2 [json_name = "statement_uid"]; //uid
string BatchUid = 3 [json_name = "batch_uid"]; //uid
string TfNum = 4 [json_name = "TfNum"];//
string Ruler = 5 [json_name = "ruler"];//
string ArtworkName = 6 [json_name = "artwork_name"];//
float MinPrice = 7 [json_name = "min_price"];//
string ArtistUid = 8 [json_name = "artist_uid"];//uid
string ArtistName = 9 [json_name = "artist_name"];//
string BatchTime = 10 [json_name = "batch_time"];//
string CompleteDate = 11 [json_name = "complete_date"];//
string SaleNo = 12 [json_name = "sale_no"];//
int32 StType = 13 [json_name = "st_type"];//1= 2=
int32 Status = 14 [json_name = "status"];// 1:23
}
message UploadExcelTwores {
string Msg = 1 [json_name = "msg"];
StatementAddRes Data = 2 [json_name = "data"];
}
//
message ArtistStatementListreq {
int32 Page = 1 [json_name = "page"]; //
int32 PageSize = 2 [json_name = "page_size"]; //
int32 StType = 3 [json_name = "st_type"];//1= 2=
string BatchUid = 4 [json_name = "batch_uid"]; //uid
}
message ArtistStatementListres {
message Info {
string ArtistUid = 1 [json_name = "artist_uid"];//uid
string ArtistName = 2 [json_name = "artist_name"];//
string BatchTime = 3 [json_name = "batch_time"];//
string ViewUrl = 4 [json_name = "view_url"];//
string DownloadUrl = 5 [json_name = "download_url"];//
string BatchUid = 6 [json_name = "batch_uid"]; //uid
}
repeated Info Data = 1 [json_name = "data"];
int32 Count = 2 [json_name = "count"]; //
int32 Page = 3 [json_name = "page"];
int32 PageSize = 4 [json_name = "page_size"];
string Msg = 5 [json_name = "message"];
}
message ArtStatementListreq {
int32 Page = 1 [json_name = "page"]; //
int32 PageSize = 2 [json_name = "page_size"]; //
int32 StType = 3 [json_name = "st_type"];//1= 2=
string BatchUid = 4 [json_name = "batch_uid"]; //uid
}
message ArtStatementListres {
message Info {
string ArtistUid = 1 [json_name = "artist_uid"];//uid
string ArtistName = 2 [json_name = "artist_name"];//
string ArtworkName = 3 [json_name = "artwork_name"];//
string TfNum = 4 [json_name = "TfNum"];//
string Ruler = 5 [json_name = "ruler"];//
string CompleteDate = 6 [json_name = "complete_date"];//
string SaleNo = 7 [json_name = "sale_no"];//
float MinPrice = 8 [json_name = "min_price"];//
}
repeated Info Data = 1 [json_name = "data"];
int32 Count = 2 [json_name = "count"]; //
int32 Page = 3 [json_name = "page"];
int32 PageSize = 4 [json_name = "page_size"];
string Msg = 5 [json_name = "message"];
}
message UpdateStatementreq {
string StatementUid = 1 [json_name = "statement_uid"]; //uid
int32 Status = 2 [json_name = "status"];//
int32 StType = 3 [json_name = "st_type"];//1= 2=
}
message UpdateStatementres {
string Msg = 1[json_name = "message"];
}
message CreateTxContractreq {
string BatchUid = 1 [json_name = "batch_uid"]; //uid链接所有表的唯一标识
int32 StType = 2 [json_name = "st_type"];//1= 2=
string BatchTime = 3 [json_name = "batch_time"];//
string DownloadUrl = 4 [json_name = "download_url"];//
string ViewUrl = 5 [json_name = "view_url"];//
string ContractId = 6 [json_name = "contract_id"];//id
string ArtistUid = 7 [json_name = "artist_uid"];//uid
int32 Status = 8 [json_name = "status"];//
string CardId = 9 [json_name = "card_id"];//
int64 UserId = 10 [json_name="userId"];
}
message CreateTxContractres {
string Msg = 1 [json_name = "message"];
AddContractRes Data = 2 [json_name = "data"];
}
message AddContractRes {
string BatchUid = 1 [json_name = "batch_uid"]; //uid链接所有表的唯一标识
}
message ExportContractreq {
int32 Page = 1 [json_name = "page"]; //
int32 PageSize = 2 [json_name = "page_size"]; //
int32 StType = 3 [json_name = "st_type"];//1= 2=
}
message ExportContractres{
message Info {
string BatchUid = 1 [json_name = "batch_uid"]; //uid链接所有表的唯一标识
string BatchTime = 2 [json_name = "batch_time"];//
string DownloadUrl = 3 [json_name = "download_url"];//
string ViewUrl = 4 [json_name = "view_url"];//
int32 StType = 5 [json_name = "st_type"];//1= 2=
string ArtistName = 6 [json_name = "artist_name"];//
string ArtistUid = 7 [json_name = "artist_uid"];//uid
}
repeated Info Data = 1 [json_name = "data"];
int32 Count = 2 [json_name = "count"]; //
int32 Page = 3 [json_name = "page"];
int32 PageSize = 4 [json_name = "page_size"];
string Msg = 5 [json_name = "message"];
}

View File

@ -0,0 +1,462 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v3.21.1
// source: mgmtStatement.proto
package mgmtStatement
import (
context "context"
protocol "dubbo.apache.org/dubbo-go/v3/protocol"
dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3"
invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation"
grpc_go "github.com/dubbogo/grpc-go"
codes "github.com/dubbogo/grpc-go/codes"
metadata "github.com/dubbogo/grpc-go/metadata"
status "github.com/dubbogo/grpc-go/status"
common "github.com/dubbogo/triple/pkg/common"
constant "github.com/dubbogo/triple/pkg/common/constant"
triple "github.com/dubbogo/triple/pkg/triple"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc_go.SupportPackageIsVersion7
// MgmtStatementClient is the client API for MgmtStatement 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 MgmtStatementClient interface {
AddBatchDetail(ctx context.Context, in *AddBatchDetailreq, opts ...grpc_go.CallOption) (*AddBatchDetailres, common.ErrorWithAttachment)
UploadExcelOne(ctx context.Context, in *UploadExcelOnereq, opts ...grpc_go.CallOption) (*UploadExcelOneres, common.ErrorWithAttachment)
UploadExcelTwo(ctx context.Context, in *UploadExcelTworeq, opts ...grpc_go.CallOption) (*UploadExcelTwores, common.ErrorWithAttachment)
ArtistStatementList(ctx context.Context, in *ArtistStatementListreq, opts ...grpc_go.CallOption) (*ArtistStatementListres, common.ErrorWithAttachment)
ArtStatementList(ctx context.Context, in *ArtStatementListreq, opts ...grpc_go.CallOption) (*ArtStatementListres, common.ErrorWithAttachment)
UpdateState(ctx context.Context, in *UpdateStatementreq, opts ...grpc_go.CallOption) (*UpdateStatementres, common.ErrorWithAttachment)
CreateTxContract(ctx context.Context, in *CreateTxContractreq, opts ...grpc_go.CallOption) (*CreateTxContractres, common.ErrorWithAttachment)
ExportContract(ctx context.Context, in *ExportContractreq, opts ...grpc_go.CallOption) (*ExportContractres, common.ErrorWithAttachment)
}
type mgmtStatementClient struct {
cc *triple.TripleConn
}
type MgmtStatementClientImpl struct {
AddBatchDetail func(ctx context.Context, in *AddBatchDetailreq) (*AddBatchDetailres, error)
UploadExcelOne func(ctx context.Context, in *UploadExcelOnereq) (*UploadExcelOneres, error)
UploadExcelTwo func(ctx context.Context, in *UploadExcelTworeq) (*UploadExcelTwores, error)
ArtistStatementList func(ctx context.Context, in *ArtistStatementListreq) (*ArtistStatementListres, error)
ArtStatementList func(ctx context.Context, in *ArtStatementListreq) (*ArtStatementListres, error)
UpdateState func(ctx context.Context, in *UpdateStatementreq) (*UpdateStatementres, error)
CreateTxContract func(ctx context.Context, in *CreateTxContractreq) (*CreateTxContractres, error)
ExportContract func(ctx context.Context, in *ExportContractreq) (*ExportContractres, error)
}
func (c *MgmtStatementClientImpl) GetDubboStub(cc *triple.TripleConn) MgmtStatementClient {
return NewMgmtStatementClient(cc)
}
func (c *MgmtStatementClientImpl) XXX_InterfaceName() string {
return "mgmtStatement.MgmtStatement"
}
func NewMgmtStatementClient(cc *triple.TripleConn) MgmtStatementClient {
return &mgmtStatementClient{cc}
}
func (c *mgmtStatementClient) AddBatchDetail(ctx context.Context, in *AddBatchDetailreq, opts ...grpc_go.CallOption) (*AddBatchDetailres, common.ErrorWithAttachment) {
out := new(AddBatchDetailres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddBatchDetail", in, out)
}
func (c *mgmtStatementClient) UploadExcelOne(ctx context.Context, in *UploadExcelOnereq, opts ...grpc_go.CallOption) (*UploadExcelOneres, common.ErrorWithAttachment) {
out := new(UploadExcelOneres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadExcelOne", in, out)
}
func (c *mgmtStatementClient) UploadExcelTwo(ctx context.Context, in *UploadExcelTworeq, opts ...grpc_go.CallOption) (*UploadExcelTwores, common.ErrorWithAttachment) {
out := new(UploadExcelTwores)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadExcelTwo", in, out)
}
func (c *mgmtStatementClient) ArtistStatementList(ctx context.Context, in *ArtistStatementListreq, opts ...grpc_go.CallOption) (*ArtistStatementListres, common.ErrorWithAttachment) {
out := new(ArtistStatementListres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ArtistStatementList", in, out)
}
func (c *mgmtStatementClient) ArtStatementList(ctx context.Context, in *ArtStatementListreq, opts ...grpc_go.CallOption) (*ArtStatementListres, common.ErrorWithAttachment) {
out := new(ArtStatementListres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ArtStatementList", in, out)
}
func (c *mgmtStatementClient) UpdateState(ctx context.Context, in *UpdateStatementreq, opts ...grpc_go.CallOption) (*UpdateStatementres, common.ErrorWithAttachment) {
out := new(UpdateStatementres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateState", in, out)
}
func (c *mgmtStatementClient) CreateTxContract(ctx context.Context, in *CreateTxContractreq, opts ...grpc_go.CallOption) (*CreateTxContractres, common.ErrorWithAttachment) {
out := new(CreateTxContractres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateTxContract", in, out)
}
func (c *mgmtStatementClient) ExportContract(ctx context.Context, in *ExportContractreq, opts ...grpc_go.CallOption) (*ExportContractres, common.ErrorWithAttachment) {
out := new(ExportContractres)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ExportContract", in, out)
}
// MgmtStatementServer is the server API for MgmtStatement service.
// All implementations must embed UnimplementedMgmtStatementServer
// for forward compatibility
type MgmtStatementServer interface {
AddBatchDetail(context.Context, *AddBatchDetailreq) (*AddBatchDetailres, error)
UploadExcelOne(context.Context, *UploadExcelOnereq) (*UploadExcelOneres, error)
UploadExcelTwo(context.Context, *UploadExcelTworeq) (*UploadExcelTwores, error)
ArtistStatementList(context.Context, *ArtistStatementListreq) (*ArtistStatementListres, error)
ArtStatementList(context.Context, *ArtStatementListreq) (*ArtStatementListres, error)
UpdateState(context.Context, *UpdateStatementreq) (*UpdateStatementres, error)
CreateTxContract(context.Context, *CreateTxContractreq) (*CreateTxContractres, error)
ExportContract(context.Context, *ExportContractreq) (*ExportContractres, error)
mustEmbedUnimplementedMgmtStatementServer()
}
// UnimplementedMgmtStatementServer must be embedded to have forward compatible implementations.
type UnimplementedMgmtStatementServer struct {
proxyImpl protocol.Invoker
}
func (UnimplementedMgmtStatementServer) AddBatchDetail(context.Context, *AddBatchDetailreq) (*AddBatchDetailres, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddBatchDetail not implemented")
}
func (UnimplementedMgmtStatementServer) UploadExcelOne(context.Context, *UploadExcelOnereq) (*UploadExcelOneres, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadExcelOne not implemented")
}
func (UnimplementedMgmtStatementServer) UploadExcelTwo(context.Context, *UploadExcelTworeq) (*UploadExcelTwores, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadExcelTwo not implemented")
}
func (UnimplementedMgmtStatementServer) ArtistStatementList(context.Context, *ArtistStatementListreq) (*ArtistStatementListres, error) {
return nil, status.Errorf(codes.Unimplemented, "method ArtistStatementList not implemented")
}
func (UnimplementedMgmtStatementServer) ArtStatementList(context.Context, *ArtStatementListreq) (*ArtStatementListres, error) {
return nil, status.Errorf(codes.Unimplemented, "method ArtStatementList not implemented")
}
func (UnimplementedMgmtStatementServer) UpdateState(context.Context, *UpdateStatementreq) (*UpdateStatementres, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateState not implemented")
}
func (UnimplementedMgmtStatementServer) CreateTxContract(context.Context, *CreateTxContractreq) (*CreateTxContractres, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateTxContract not implemented")
}
func (UnimplementedMgmtStatementServer) ExportContract(context.Context, *ExportContractreq) (*ExportContractres, error) {
return nil, status.Errorf(codes.Unimplemented, "method ExportContract not implemented")
}
func (s *UnimplementedMgmtStatementServer) XXX_SetProxyImpl(impl protocol.Invoker) {
s.proxyImpl = impl
}
func (s *UnimplementedMgmtStatementServer) XXX_GetProxyImpl() protocol.Invoker {
return s.proxyImpl
}
func (s *UnimplementedMgmtStatementServer) XXX_ServiceDesc() *grpc_go.ServiceDesc {
return &MgmtStatement_ServiceDesc
}
func (s *UnimplementedMgmtStatementServer) XXX_InterfaceName() string {
return "mgmtStatement.MgmtStatement"
}
func (UnimplementedMgmtStatementServer) mustEmbedUnimplementedMgmtStatementServer() {}
// UnsafeMgmtStatementServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to MgmtStatementServer will
// result in compilation errors.
type UnsafeMgmtStatementServer interface {
mustEmbedUnimplementedMgmtStatementServer()
}
func RegisterMgmtStatementServer(s grpc_go.ServiceRegistrar, srv MgmtStatementServer) {
s.RegisterService(&MgmtStatement_ServiceDesc, srv)
}
func _MgmtStatement_AddBatchDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(AddBatchDetailreq)
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("AddBatchDetail", 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 _MgmtStatement_UploadExcelOne_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadExcelOnereq)
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("UploadExcelOne", 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 _MgmtStatement_UploadExcelTwo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadExcelTworeq)
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("UploadExcelTwo", 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 _MgmtStatement_ArtistStatementList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(ArtistStatementListreq)
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("ArtistStatementList", 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 _MgmtStatement_ArtStatementList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(ArtStatementListreq)
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("ArtStatementList", 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 _MgmtStatement_UpdateState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateStatementreq)
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("UpdateState", 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 _MgmtStatement_CreateTxContract_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateTxContractreq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("CreateTxContract", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _MgmtStatement_ExportContract_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(ExportContractreq)
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("ExportContract", 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)
}
// MgmtStatement_ServiceDesc is the grpc_go.ServiceDesc for MgmtStatement service.
// It's only intended for direct use with grpc_go.RegisterService,
// and not to be introspected or modified (even as a copy)
var MgmtStatement_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "mgmtStatement.MgmtStatement",
HandlerType: (*MgmtStatementServer)(nil),
Methods: []grpc_go.MethodDesc{
{
MethodName: "AddBatchDetail",
Handler: _MgmtStatement_AddBatchDetail_Handler,
},
{
MethodName: "UploadExcelOne",
Handler: _MgmtStatement_UploadExcelOne_Handler,
},
{
MethodName: "UploadExcelTwo",
Handler: _MgmtStatement_UploadExcelTwo_Handler,
},
{
MethodName: "ArtistStatementList",
Handler: _MgmtStatement_ArtistStatementList_Handler,
},
{
MethodName: "ArtStatementList",
Handler: _MgmtStatement_ArtStatementList_Handler,
},
{
MethodName: "UpdateState",
Handler: _MgmtStatement_UpdateState_Handler,
},
{
MethodName: "CreateTxContract",
Handler: _MgmtStatement_CreateTxContract_Handler,
},
{
MethodName: "ExportContract",
Handler: _MgmtStatement_ExportContract_Handler,
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "mgmtStatement.proto",
}

View File

@ -6,6 +6,8 @@ import (
"strings"
"time"
"github.com/fonchain/fonchain-artistinfo/cmd/model/old"
"github.com/fonchain/fonchain-artistinfo/cmd/model"
"github.com/fonchain/fonchain-artistinfo/pkg/m"
"github.com/gin-gonic/gin"
@ -102,19 +104,19 @@ func Database(conn string) {
func migration() {
//自迁移模式
err := DB.AutoMigrate(
// &old.Bank{},
// &old.Artwork{},
// &model.Contract{},
// &model.SupplyInfo{},
// &model.ExhVideo{},
// &model.ExhExam{},
// &old.ArtistInfo{},
// &old.ArtworkState{},
// &old.ArtworkBatch{},
//&old.Bank{},
&model.RealName{},
&model.User{},
&model.Invite{},
&old.Artwork{},
//&model.Contract{},
//&model.SupplyInfo{},
//&model.ExhVideo{},
//&model.ExhExam{},
&old.ArtistInfo{},
&model.UserInvited{},
&old.ArtworkState{},
&old.ArtworkBatch{},
&model.TempArtistInfo{},
&model.ArtworkLockRecord{},
&model.ArtshowVideoRecord{}, //画展视频记录

View File

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

View File

@ -25,6 +25,7 @@ func CreateQrCode(invitedCode, userName string) error {
tmp, err := os.Open(QrCodePath)
if err != nil {
return err
}
defer tmp.Close()