对用户表的字段做了重新分配

This commit is contained in:
徐俊杰 2023-02-20 12:51:50 +08:00
parent 469707e954
commit e52efb1e61
30 changed files with 14856 additions and 1741 deletions

View File

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<module type="WEB_MODULE" version="4">
<component name="Go" enabled="true" />
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/fonchain-artistinfo.iml" filepath="$PROJECT_DIR$/.idea/fonchain-artistinfo.iml" />
</modules>
</component>
</project>

View File

@ -4,37 +4,43 @@
<option name="autoReloadType" value="ALL" />
</component>
<component name="ChangeListManager">
<list default="true" id="d68f5e32-c2e9-42ba-a8ac-6f711f18b57a" name="Changes" comment="">
<list default="true" id="853fcb60-a62b-4975-bc33-7fe9b5daba92" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/conf/xjjdev/conf.ini" afterDir="false" />
<change afterPath="$PROJECT_DIR$/conf/xjjdev/dubbogo.yaml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/conf/xjjdev/sdk.real.yaml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/conf/xjjdev/sdk.test.yaml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/conf/xjjdev/sdk.yaml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/pb/artist/artist.pb.go" afterDir="false" />
<change afterPath="$PROJECT_DIR$/pb/artist/artist.proto" afterDir="false" />
<change afterPath="$PROJECT_DIR$/pb/artist/artist.validator.pb.go" afterDir="false" />
<change afterPath="$PROJECT_DIR$/pb/artist/artist_triple.pb.go" afterDir="false" />
<change afterPath="$PROJECT_DIR$/pb/artist/validate.proto" afterDir="false" />
<change afterPath="$PROJECT_DIR$/pb/artist/validator.proto" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/fonchain-artistinfo.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/fonchain-artistinfo.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/internal/controller/artisrInfo.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/internal/controller/artisrInfo.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/internal/dao/artistInfo.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/internal/dao/artistInfo.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/internal/dao/supply.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/internal/dao/supply.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/internal/dao/artwork.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/internal/dao/artwork.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/internal/dao/contract.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/internal/dao/contract.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/internal/logic/artistInfo.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/internal/logic/artistInfo.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/logs/artist_server.log" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/logs/artist_server.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/artistinfo.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/artistinfo.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/exhexam.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/exhexam.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/exhvideo.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/exhvideo.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/model.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/model.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/supplyinfo.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/supplyinfo.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/real_name.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/real_name.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cmd/model/user.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/model/user.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/go.mod" beforeDir="false" afterPath="$PROJECT_DIR$/go.mod" afterDir="false" />
<change beforePath="$PROJECT_DIR$/go.sum" beforeDir="false" afterPath="$PROJECT_DIR$/go.sum" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pb/artistinfo/artistinfo.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/pb/artistinfo/artistinfo.pb.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pb/artistinfo/artistinfo.proto" beforeDir="false" afterPath="$PROJECT_DIR$/pb/artistinfo/artistinfo.proto" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pb/artistinfo/artistinfo_triple.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/pb/artistinfo/artistinfo_triple.pb.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pkg/db/init.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/db/init.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pkg/service/init.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/service/init.go" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Go File" />
</list>
</option>
</component>
<component name="GOROOT" url="file://$USER_HOME$/.g/go" />
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@ -42,43 +48,36 @@
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectId" id="2LhssKjCTz4ydBhOcLUaoMlKRzA" />
<component name="ProjectId" id="2LrJWBpeAE7xjhfmBJcHGq1aluW" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;DefaultGoTemplateProperty&quot;: &quot;Go File&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.go.formatter.settings.were.checked&quot;: &quot;true&quot;,
&quot;RunOnceActivity.go.migrated.go.modules.settings&quot;: &quot;true&quot;,
&quot;RunOnceActivity.go.modules.go.list.on.any.changes.was.set&quot;: &quot;true&quot;,
&quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
&quot;configurable..is.expanded&quot;: &quot;false&quot;,
&quot;configurable.GoLibrariesConfigurable.is.expanded&quot;: &quot;true&quot;,
&quot;go.import.settings.migrated&quot;: &quot;true&quot;,
&quot;go.sdk.automatically.set&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/jjxu/work/projects/fonchain-artistinfo/pkg/service&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/jjxu/work/projects/fonchain-artistinfo/pb&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;go.vgo&quot;
}
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\jjxu\work\projects\fonchain-artistinfo\pkg\service" />
<recent name="D:\jjxu\work\projects\fonchain-artistinfo\pb" />
</key>
</component>
<component name="RunManager">
<configuration default="true" type="GoApplicationRunConfiguration" factoryName="Go Application">
<module name="fonchain-artistinfo" />
<working_directory value="$PROJECT_DIR$" />
<kind value="FILE" />
<directory value="$PROJECT_DIR$" />
<filePath value="$PROJECT_DIR$" />
<method v="2" />
</configuration>
<configuration name="go build app.go" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
<module name="fonchain-artistinfo" />
<working_directory value="$PROJECT_DIR$/cmd" />
@ -88,15 +87,6 @@
<filePath value="$PROJECT_DIR$/cmd/app.go" />
<method v="2" />
</configuration>
<configuration default="true" type="GoTestRunConfiguration" factoryName="Go Test">
<module name="fonchain-artistinfo" />
<working_directory value="$PROJECT_DIR$" />
<kind value="DIRECTORY" />
<directory value="$PROJECT_DIR$" />
<filePath value="$PROJECT_DIR$" />
<framework value="gotest" />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Go Build.go build app.go" />
@ -119,15 +109,20 @@
</option>
</component>
<component name="VgoProject">
<environment>
<map>
<entry key="GOPROXY" value="https://goproxy.cn,direct" />
</map>
</environment>
<settings-migrated>true</settings-migrated>
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="DlvLineBreakpoint">
<url>file://$PROJECT_DIR$/cmd/internal/controller/artisrInfo.go</url>
<line>120</line>
<option name="timeStamp" value="2" />
<url>file://$PROJECT_DIR$/cmd/internal/dao/artistInfo.go</url>
<line>478</line>
<option name="timeStamp" value="8" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>

View File

@ -5,6 +5,7 @@ import (
"fmt"
"github.com/fonchain/fonchain-artistinfo/cmd/model"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"gorm.io/gorm"
"github.com/fonchain/fonchain-artistinfo/cmd/internal/logic"
"github.com/fonchain/fonchain-artistinfo/pb/artistinfo"
@ -26,6 +27,40 @@ func (a *ArtistInfoProvider) RegisterUser(ctx context.Context, req *artistinfo.R
return rep, nil
}
func (a *ArtistInfoProvider) UpdateIdCard(ctx context.Context, in *artistinfo.UpdateIdCardRequest) (rep *artistinfo.CommonNoParams, err error) {
var thisUser model.User
db.DB.Where("mgmt_acc_id = ?", in.MgmtAccId).Preload("RealNameInfo").Find(&thisUser)
if thisUser.RealNameInfo == nil {
thisUser.RealNameInfo = &model.RealName{}
}
if in.Name != "" {
thisUser.RealNameInfo.Name = in.Name
}
if in.IdNum != "" {
thisUser.RealNameInfo.IdNum = in.IdNum
}
if in.Age != 0 {
thisUser.RealNameInfo.Age = int(in.Age)
}
if in.Sex != "" {
thisUser.RealNameInfo.Sex = model.SexType(in.Sex)
}
if in.Address != "" {
thisUser.RealNameInfo.Address = in.Address
}
if in.IdCardFront != "" {
thisUser.RealNameInfo.IdCardFront = in.IdCardFront
}
if in.IdCardBack != "" {
thisUser.RealNameInfo.IdCardBack = in.IdCardBack
}
if in.Birthday != "" {
thisUser.RealNameInfo.Birthday = in.Birthday
}
err = db.DB.Session(&gorm.Session{FullSaveAssociations: true}).Save(&thisUser).Error
return
}
func (a *ArtistInfoProvider) GetUser(ctx context.Context, req *artistinfo.GetUserRequest) (rep *artistinfo.GetUserRespond, err error) {
fmt.Println("第一处")
// backup := &artistInfo.GetUserInfoRespond{}
@ -35,15 +70,19 @@ func (a *ArtistInfoProvider) GetUser(ctx context.Context, req *artistinfo.GetUse
return rep, nil
}
func (a *ArtistInfoProvider) UpdateRealName(ctx context.Context, req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error) {
fmt.Println("第一处")
// backup := &artistInfo.GetUserInfoRespond{}
if rep, err = a.artistInfoLogic.UpdateRealName(req); err != nil {
return nil, err
}
return rep, nil
func (a *ArtistInfoProvider) GetUserById(ctx context.Context, req *artistinfo.GetUserByIdRequest) (rep *artistinfo.GetUserByIdRespond, err error) {
return a.artistInfoLogic.GetUserById(req)
}
//func (a *ArtistInfoProvider) UpdateRealName(ctx context.Context, req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error) {
// fmt.Println("第一处")
// // backup := &artistInfo.GetUserInfoRespond{}
// if rep, err = a.artistInfoLogic.UpdateRealName(req); err != nil {
// return nil, err
// }
// return rep, nil
//}
func (a *ArtistInfoProvider) FinishVerify(ctx context.Context, req *artistinfo.FinishVerifyRequest) (rep *artistinfo.FinishVerifyRespond, err error) {
fmt.Println("第一处")
// backup := &artistInfo.GetUserInfoRespond{}
@ -149,7 +188,12 @@ func (a *ArtistInfoProvider) BindInviteInvitedAccount(ctx context.Context, in *a
}
func (a *ArtistInfoProvider) BindArtistId(ctx context.Context, in *artistinfo.BindArtistIdRequest) (*artistinfo.BindArtistIdResp, error) {
if err := db.DB.Model(model.User{}).Where("mgmt_user_id = ?", in.UserId).Update("mgmt_artist_id", in.ArtistId).Error; err != nil {
var updateData = map[string]any{
"mgmt_artist_id": in.ArtistId,
"is_fdd": 1,
"fdd_state": 2,
}
if err := db.DB.Model(model.User{}).Where("mgmt_acc_id = ?", in.UserId).Updates(&updateData).Error; err != nil {
return &artistinfo.BindArtistIdResp{Error: err.Error()}, err
}
return nil, nil

View File

@ -12,20 +12,19 @@ import (
"github.com/fonchain/fonchain-artistinfo/pb/artistinfo"
db "github.com/fonchain/fonchain-artistinfo/pkg/db"
"github.com/fonchain/fonchain-artistinfo/pkg/m"
"github.com/fonchain/utils/utils"
"go.uber.org/zap"
)
func RegisterUser(req *artistinfo.RegisterUserRequest) (rep *artistinfo.RegisterUserRespond, err error) {
var user = model.User{
MgmtUserId: req.MgmtUserId,
MgmtAccId: req.MgmtAccId,
TelNum: req.TelNum,
MgmtArtistId: req.MgmtArtistId,
}
user.TelNum = req.TelNum
user.MgmtArtistId = req.MgmtArtistId
if err := db.DB.Create(&user).Error; err != nil {
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
@ -63,10 +62,10 @@ func CreateUserInfo(req *artistinfo.CreateUserInfoRequest) (rep *artistinfo.Crea
fmt.Println(12)
var realname = model.RealName{
Name: req.RealName,
IDNum: req.IdCard,
IdNum: req.IdCard,
TelNum: req.TelNum,
IdcardFront: req.IdCardFront,
IdcardBack: req.IdCardBack,
IdCardFront: req.IdCardFront,
IdCardBack: req.IdCardBack,
}
err = db.DB.Save(&realname).Error
if err != nil {
@ -77,7 +76,7 @@ func CreateUserInfo(req *artistinfo.CreateUserInfoRequest) (rep *artistinfo.Crea
}
fmt.Println(13)
err = db.DB.Where("id_num=?", realname.IDNum).First(&realname).Error
err = db.DB.Where("id_num=?", realname.IdNum).First(&realname).Error
if err != nil {
zap.L().Error("CreateUserInfo err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
@ -86,26 +85,27 @@ func CreateUserInfo(req *artistinfo.CreateUserInfoRequest) (rep *artistinfo.Crea
fmt.Println(14)
user.ID = req.Id
user.Name = req.RealName
user.PenName = req.PenName
user.RealNameID = int32(realname.ID)
user.StageName = req.StageName
user.Age = int32(utils.IdCardTurnAge(realname.IDNum))
user.Sex = req.Sex
user.JoinAssoTime = req.JoinAssoTime
user.CertificateNum = req.CertificateNum
conAddessByte, err := json.Marshal(req.ConAddress)
if err != nil {
zap.L().Error("CreateUserInfo err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
user.ConAddress = string(conAddessByte)
user.CreatedAt = time.Now()
user.Photo = req.Photo
user.WxAccount = req.WxAccount
user.CertificateImg = req.CertificateImg
user.Video = req.Video
// todo 下面部分信息需要转存至画家服务和账号服务
//user.Name = req.RealName
//user.PenName = req.PenName
//user.RealNameID = int32(realname.ID)
//user.StageName = req.StageName
//user.Age = int32(utils.IdCardTurnAge(realname.IDNum))
//user.Sex = req.Sex
//user.JoinAssoTime = req.JoinAssoTime
//user.CertificateNum = req.CertificateNum
//conAddessByte, err := json.Marshal(req.ConAddress)
//if err != nil {
// zap.L().Error("CreateUserInfo err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
//}
//user.ConAddress = string(conAddessByte)
//user.CreatedAt = time.Now()
//user.Photo = req.Photo
//user.WxAccount = req.WxAccount
//user.CertificateImg = req.CertificateImg
//user.Video = req.Video
user.IsRealName = 1
var invite model.Invite
@ -185,12 +185,12 @@ func GetUser(req *artistinfo.GetUserRequest) (rep *artistinfo.GetUserRespond, er
// rep.
fmt.Println(user)
rep.Id = user.ID
rep.MgmtUserId = user.MgmtUserId
rep.MgmtAccId = user.MgmtAccId
rep.MgmtArtistId = user.MgmtArtistId
rep.TelNum = user.TelNum
rep.IsFdd = user.FddState
rep.FddState = user.FddState
rep.IsRealName = user.IsRealName
rep.Ruler = user.Ruler
//rep.Ruler = user.Ruler
// service.QrCodeImg = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v.png", user.InvitedCode)
// service.QrCodeImgDownload = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v-2.png", user.InvitedCode)
@ -207,7 +207,7 @@ func GetUserById(req *artistinfo.GetUserByIdRequest) (rep *artistinfo.GetUserByI
// service := &artist.UserUpdateInfoService{}
var user model.User
fmt.Println("666")
if err = db.DB.Where("mgmt_user_id = ?", req.Id).First(&user).Error; err != nil {
if err = db.DB.Where("id = ?", req.Id).First(&user).Error; err != nil {
zap.L().Info("!!!!3")
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
@ -219,29 +219,15 @@ func GetUserById(req *artistinfo.GetUserByIdRequest) (rep *artistinfo.GetUserByI
// rep.
fmt.Println("777")
rep.Id = user.ID
rep.MgmtUserId = user.MgmtUserId
rep.MgmtAccId = user.MgmtAccId
rep.MgmtArtistId = user.MgmtArtistId
rep.TelNum = user.TelNum
rep.IsFdd = user.FddState
rep.FddState = user.FddState
rep.IsRealName = user.IsRealName
rep.Ruler = user.Ruler
return rep, nil
}
func UpdateRealName(req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error) {
var updateData = model.User{
IsRealName: int64(req.Id),
Name: req.Name,
IDNum: req.IdNum,
}
//user.ID = req.Id
// 使用账号id来定位需要更新的数据
if err = db.DB.Model(model.User{}).Where("mgmt_user_id = ?", req.Id).Updates(&updateData).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
//rep.Ruler = user.Ruler
return rep, nil
}
func FinishVerify(req *artistinfo.FinishVerifyRequest) (rep *artistinfo.FinishVerifyRespond, err error) {
var user model.User
user.ID = req.Id
@ -259,7 +245,7 @@ func ArtistSupplyList(req *artistinfo.ArtistSupplyListRequest) (rep *artistinfo.
sql := `select cc.* from (SELECT a.id,a.name,a.pen_name,a.is_import,a.tel_num,a.sex,a.age,b.id_num,a.invited_code,a.certificate_num,a.con_address,b.idcard_front,b.idcard_back,a.photo,a.video,a.created_at,a.updated_at,a.is_lock,a.certificate_img,min(d.created_at) as dd from user a inner join real_name b on a.real_name_id = b.id left join bank c on a.id = c.user_id left join supply_info d on a.id = d.user_id where (d.types = 1 or d.types = 4 or d.types = 2 or d.types = 3 or d.types =6) and a.is_real_name = true `
sqlWhere := ` `
sqlGroup := ` group by a.id order by min(d.created_at) desc ) cc inner join supply_info f where dd >0 and dd = f.created_at and cc.id = f.user_id group by cc.id,dd `
var count uint64
var count int64
tx := db.DB.Raw("select count(*) from (" + sql + sqlWhere + sqlGroup + ") cc").Scan(&count)
if tx.Error != nil {
zap.L().Error("get user info err", zap.Error(tx.Error))
@ -283,7 +269,7 @@ func ArtistSupplyList(req *artistinfo.ArtistSupplyListRequest) (rep *artistinfo.
}
func UserLock(req *artistinfo.UserLockRequest) (rep *artistinfo.UserLockRespond, err error) {
var user model.User
user.ID = uint64(req.Id)
user.ID = req.Id
if err = db.DB.Model(&user).Update("is_lock", req.IsLock).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
@ -336,12 +322,12 @@ func CheckInvitedCode(req *artistinfo.CheckInvitedCodeRequest) (rep *artistinfo.
}
// rep.
rep.Id = user.ID
rep.MgmtUserId = user.MgmtUserId
rep.MgmtAccId = user.MgmtAccId
rep.MgmtArtistId = user.MgmtArtistId
rep.TelNum = user.TelNum
rep.IsFdd = user.IsFdd
rep.FddState = user.FddState
rep.IsRealName = user.IsRealName
rep.Ruler = user.Ruler
//rep.Ruler = user.Ruler
// service.QrCodeImg = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v.png", user.InvitedCode)
// service.QrCodeImgDownload = fmt.Sprintf("https://cdn.fontree.cn/artistmgmt/static/qrcode/%v-2.png", user.InvitedCode)
@ -358,27 +344,29 @@ func UnFinishList(req *artistinfo.UnFinishListRequest) (rep *artistinfo.UnFinish
return nil, err
}
var realName model.RealName
if err := db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
var contract model.Contract
var contractCount int64
if err := db.DB.Model(&contract).Where("state = ? and (user_id = ? or card_id = ?) and (type =1 or type = 2 or type = 3)", "1", user.ID, realName.IDNum).Count(&contractCount).Error; err != nil {
err = errors.New(m.ERROR_SELECT)
return nil, err
}
rep.ContractList = contractCount
var accountStateCount int64
fmt.Println(realName.IDNum)
if err := db.DB.Model(&contract).Where("state = ? and (user_id = ? or card_id = ?) and type = 4", "1", user.ID, realName.IDNum).Count(&accountStateCount).Error; err != nil {
zap.L().Error("get user info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return nil, err
}
rep.AccountStateList = accountStateCount
// todo
//var realName model.RealName
//if err := db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil {
// zap.L().Error("get user info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
//}
//var contract model.Contract
//var contractCount int64
//if err := db.DB.Model(&contract).Where("state = ? and (user_id = ? or card_id = ?) and (type =1 or type = 2 or type = 3)", "1", user.ID, realName.IDNum).Count(&contractCount).Error; err != nil {
// err = errors.New(m.ERROR_SELECT)
// return nil, err
//}
//rep.ContractList = contractCount
//var accountStateCount int64
//fmt.Println(realName.IDNum)
//if err := db.DB.Model(&contract).Where("state = ? and (user_id = ? or card_id = ?) and type = 4", "1", user.ID, realName.IDNum).Count(&accountStateCount).Error; err != nil {
// zap.L().Error("get user info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return nil, err
//}
//rep.AccountStateList = accountStateCount
var supplyInfo model.SupplyInfo
var supplyInfoCount int64
if err := db.DB.Model(&supplyInfo).Where("types = ? and user_id = ? ", "1", user.ID).Count(&supplyInfoCount).Error; err != nil {
@ -437,9 +425,9 @@ func GetUserMsg(req *artistinfo.GetUserMsgRequest) (rep *artistinfo.GetUserMsgRe
func FindUser(req *artistinfo.FindUserRequest) (rep *artistinfo.UserInfo, err error) {
rep = &artistinfo.UserInfo{}
var data = model.User{}
var tx = db.DB.Model(model.User{})
if req.MgmtUserId != 0 {
tx = tx.Where("mgmt_user_id = ?", req.MgmtUserId)
var tx = db.DB.Model(model.User{}).Preload("RealNameInfo")
if req.MgmtAccId != 0 {
tx = tx.Where("mgmt_acc_id = ?", req.MgmtAccId)
}
if req.MgmtArtistId != "" {
tx = tx.Where("mgmt_artist_id = ?", req.MgmtArtistId)
@ -452,42 +440,40 @@ func FindUser(req *artistinfo.FindUserRequest) (rep *artistinfo.UserInfo, err er
return
}
rep = &artistinfo.UserInfo{
Id: data.ID,
MgmtUserId: data.MgmtUserId,
MgmtArtistId: data.MgmtArtistId,
Account: data.Account,
MnemonicWords: data.MnemonicWords,
TelNum: data.TelNum,
Name: data.Name,
PenName: data.PenName,
StageName: data.StageName,
JoinAssoTime: data.JoinAssoTime,
CertificateNum: data.CertificateNum,
CertificateImg: data.CertificateImg,
Key: data.Key,
RealNameID: data.RealNameID,
IDNum: data.IDNum,
Sex: data.Sex,
Ruler: data.Ruler,
OpenId: data.OpenId,
CustomerId: data.CustomerId,
Age: data.Age,
Introduct: data.Introduct,
CreatedAt: data.CreatedAt.Unix(),
ConAddress: data.ConAddress,
Photo: data.Photo,
Video: data.Video,
IsRealName: data.IsRealName,
IsFdd: data.IsFdd,
FddState: data.FddState,
WxAccount: data.WxAccount,
IsLock: data.IsLock,
InvitedCode: data.InvitedCode,
IsRead: data.IsRead,
IsImport: data.IsImport,
Enable: data.Enable,
DeletedAt: int64(data.DeletedAt),
UpdatedAt: data.UpdatedAt.Unix(),
Id: data.ID,
MgmtAccId: data.MgmtAccId,
MgmtArtistId: data.MgmtArtistId,
TelNum: data.TelNum,
//Ruler: data.Ruler,
OpenId: data.OpenId,
CustomerId: data.CustomerId,
IsRealName: data.IsRealName,
FddState: data.FddState,
IsLock: data.IsLock,
InvitedCode: data.InvitedCode,
IsRead: data.IsRead,
//IsImport: data.IsImport,
//Enable: data.Enable,
DeletedAt: int64(data.DeletedAt),
UpdatedAt: data.UpdatedAt.Unix(),
RealName: &artistinfo.RealNameInfo{
Name: data.RealNameInfo.Name,
IdNum: data.RealNameInfo.IdNum,
IdCardFront: data.RealNameInfo.IdCardFront,
IdCardBack: data.RealNameInfo.IdCardBack,
Age: int32(data.RealNameInfo.Age),
Sex: string(data.RealNameInfo.Sex),
Birthday: data.RealNameInfo.Birthday,
Address: data.RealNameInfo.Address,
Id: data.RealNameInfo.ID,
},
//WxAccount: "",
//Age: int32(data.RealNameInfo.Age),
//CreatedAt: data.CreatedAt.Unix(),
//Name: data.RealNameInfo.Name,
//RealNameID: int32(data.RealNameId),
//IDNum: data.RealNameInfo.IdNum,
//Sex: data.RealNameInfo.Sex.ConvertInt32(),
}
return rep, nil
@ -500,38 +486,38 @@ func UpdateUserData(req *artistinfo.UserInfo) (rep *artistinfo.CommonNoParams, e
UpdatedAt: time.Unix(req.UpdatedAt, 0),
DeletedAt: soft_delete.DeletedAt(req.DeletedAt),
},
MgmtUserId: req.MgmtUserId,
MgmtArtistId: req.MgmtArtistId,
Account: req.Account,
MnemonicWords: req.MnemonicWords,
TelNum: req.TelNum,
Name: req.Name,
PenName: req.PenName,
StageName: req.StageName,
JoinAssoTime: req.JoinAssoTime,
CertificateNum: req.CertificateNum,
CertificateImg: req.CertificateImg,
Key: req.Key,
RealNameID: req.RealNameID,
IDNum: req.IDNum,
Sex: req.Sex,
Ruler: req.Ruler,
OpenId: req.OpenId,
CustomerId: req.CustomerId,
Age: req.Age,
Introduct: req.Introduct,
ConAddress: req.ConAddress,
Photo: req.Photo,
Video: req.Video,
IsRealName: req.IsRealName,
IsFdd: req.IsFdd,
FddState: req.FddState,
WxAccount: req.WxAccount,
IsLock: req.IsLock,
InvitedCode: req.InvitedCode,
IsRead: req.IsRead,
IsImport: req.IsImport,
Enable: req.Enable,
MgmtAccId: req.MgmtAccId,
MgmtArtistId: req.MgmtArtistId,
TelNum: req.TelNum,
//Ruler: req.Ruler,
IsRealName: req.IsRealName,
FddState: req.FddState,
IsLock: req.IsLock,
InvitedCode: req.InvitedCode,
IsRead: req.IsRead,
//IsImport: req.IsImport,
//Enable: req.Enable,
// todo
//Account: req.Account,
//MnemonicWords: req.MnemonicWords,
//OpenId: req.OpenId,
//CustomerId: req.CustomerId,
//Age: req.Age,
//Introduct: req.Introduct,
//ConAddress: req.ConAddress,
//Photo: req.Photo,
//Video: req.Video,
//WxAccount: req.WxAccount,
//Name: req.Name,
//PenName: req.PenName,
//StageName: req.StageName,
//JoinAssoTime: req.JoinAssoTime,
//CertificateNum: req.CertificateNum,
//CertificateImg: req.CertificateImg,
//Key: req.Key,
//RealNameID: req.RealNameID,
//IDNum: req.IDNum,
//Sex: req.Sex,
}
db.DB.Save(&updateData)
return nil, nil

View File

@ -79,7 +79,7 @@ func UpdateArtwork(data *artwork.UpdateArtworkRequest) (err error) {
}
CreataAddByte, _ := json.Marshal(data.CreateAddress)
artwork.ID = int32(data.ID)
artwork.ArtistId = userId
artwork.ArtistId = uint64(userId)
artwork.Name = data.Name
artwork.ModelYear = data.ModelYear
artwork.Photo = data.Photo
@ -285,7 +285,7 @@ func GetMgmtArtworkList(req *artwork.GetMgmtArtworkListRequest) (rep *artwork.Ge
return
}
func GetUserId(artistId string) (uint64, error) {
func GetUserId(artistId string) (int64, error) {
var user model.User
if err := db.DB.First(&user, "id = ?", artistId).Error; err != nil {

View File

@ -39,12 +39,13 @@ func ContractList(req *contract.ContractListRequest) (rep *contract.ContractList
return
}
var realName model.RealName
if err = db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil {
zap.L().Error("get realName info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
// todo
//var realName model.RealName
//if err = db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil {
// zap.L().Error("get realName info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
//}
var args []interface{}
var sqlWhere = "user_id = ? and type !=4 "
@ -96,52 +97,52 @@ func ContractTxList(req *contract.ContractTxListRequest) (rep *contract.Contract
err = errors.New(m.ERROR_SELECT)
return
}
var realName model.RealName
if err = db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil {
zap.L().Error("get realName info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
var args []interface{}
var sqlWhere = " card_id = ? and (type = 4 or type = 7) "
args = append(args, realName.IDNum)
if req.State != 0 {
sqlWhere += " and state = ? "
args = append(args, req.State)
}
var contractModel []model.Contract
if err = db.DB.Where(sqlWhere, args...).Find(&contractModel).Error; err != nil {
zap.L().Error("get contractModels info err", zap.Error(err))
err = errors.New(m.ERROR_SELECT)
return
}
for _, v := range contractModel {
contractTmp := &contract.ContractData{}
contractTmp.ID = uint64(v.ID)
contractTmp.ContractId = v.ContractId
contractTmp.DownloadUrl = v.DownloadUrl
contractTmp.MgmtUserId = v.MgmtUserId
contractTmp.State = int64(v.State)
contractTmp.TransactionId = v.TransactionId
contractTmp.Type = int64(v.Type)
var b string
if v.Type == 4 {
b = "物权"
}
if v.Type == 7 {
b = "版权"
}
contractTmp.BatchName = b + v.BatchName[0:4] + "年" + v.BatchName[4:6] + "月" + v.BatchName[6:11] + "年" + v.BatchName[11:13] + "月"
contractTmp.UserId = int64(v.UserId)
contractTmp.ViewUrl = v.ViewUrl
contractTmp.ExpirationTime = v.CreatedAt.Add(86400 * time.Second).Format("2006-01-02 15:04:05")
contractTmp.SignTime = v.UpdatedAt.Format("2006-01-02")
Data = append(Data, contractTmp)
}
// todo
//var realName model.RealName
//if err = db.DB.Where("id = ? ", user.RealNameID).First(&realName).Error; err != nil {
// zap.L().Error("get realName info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
//}
//
//var args []interface{}
//var sqlWhere = " card_id = ? and (type = 4 or type = 7) "
//args = append(args, realName.IDNum)
//if req.State != 0 {
// sqlWhere += " and state = ? "
// args = append(args, req.State)
//}
//
//var contractModel []model.Contract
//if err = db.DB.Where(sqlWhere, args...).Find(&contractModel).Error; err != nil {
// zap.L().Error("get contractModels info err", zap.Error(err))
// err = errors.New(m.ERROR_SELECT)
// return
//}
//
//for _, v := range contractModel {
// contractTmp := &contract.ContractData{}
// contractTmp.ID = uint64(v.ID)
// contractTmp.ContractId = v.ContractId
// contractTmp.DownloadUrl = v.DownloadUrl
// contractTmp.MgmtUserId = v.MgmtUserId
// contractTmp.State = int64(v.State)
// contractTmp.TransactionId = v.TransactionId
// contractTmp.Type = int64(v.Type)
// var b string
// if v.Type == 4 {
// b = "物权"
// }
// if v.Type == 7 {
// b = "版权"
// }
// contractTmp.BatchName = b + v.BatchName[0:4] + "年" + v.BatchName[4:6] + "月" + v.BatchName[6:11] + "年" + v.BatchName[11:13] + "月"
// contractTmp.UserId = int64(v.UserId)
// contractTmp.ViewUrl = v.ViewUrl
// contractTmp.ExpirationTime = v.CreatedAt.Add(86400 * time.Second).Format("2006-01-02 15:04:05")
// contractTmp.SignTime = v.UpdatedAt.Format("2006-01-02")
// Data = append(Data, contractTmp)
//}
rep.Data = Data

View File

@ -11,7 +11,7 @@ type IArtistInfo interface {
GetUserById(req *artistinfo.GetUserByIdRequest) (rep *artistinfo.GetUserByIdRespond, err error)
GetUser(req *artistinfo.GetUserRequest) (rep *artistinfo.GetUserRespond, err error)
CreateUserInfo(req *artistinfo.CreateUserInfoRequest) (rep *artistinfo.CreateUserInfoRespond, err error)
UpdateRealName(req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error)
//UpdateRealName(req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error)
FinishVerify(req *artistinfo.FinishVerifyRequest) (rep *artistinfo.FinishVerifyRespond, err error)
CheckUserLock(req *artistinfo.CheckUserLockRequest) (rep *artistinfo.CheckUserLockRespond, err error)
ArtistSupplyList(req *artistinfo.ArtistSupplyListRequest) (rep *artistinfo.ArtistSupplyListRespond, err error)
@ -39,15 +39,16 @@ func (a *ArtistInfo) CreateUserInfo(req *artistinfo.CreateUserInfoRequest) (rep
rep, err = dao.CreateUserInfo(req)
return
}
func (a *ArtistInfo) GetUserById(req *artistinfo.GetUserByIdRequest) (rep *artistinfo.GetUserByIdRespond, err error) {
rep, err = dao.GetUserById(req)
func (a *ArtistInfo) GetUserById(req *artistinfo.GetUserByIdRequest) (userInfo *artistinfo.GetUserByIdRespond, err error) {
userInfo, err = dao.GetUserById(req)
return
}
func (a *ArtistInfo) UpdateRealName(req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error) {
rep, err = dao.UpdateRealName(req)
return
}
//func (a *ArtistInfo) UpdateRealName(req *artistinfo.UpdateRealNameRequest) (rep *artistinfo.UpdateRealNameRespond, err error) {
// rep, err = dao.UpdateRealName(req)
// return
//}
func (a *ArtistInfo) FinishVerify(req *artistinfo.FinishVerifyRequest) (rep *artistinfo.FinishVerifyRespond, err error) {
rep, err = dao.FinishVerify(req)

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,12 @@
package model
import (
"gorm.io/gorm"
"gorm.io/plugin/soft_delete"
"time"
)
type Model struct {
gorm.Model
ID uint64 `gorm:"primarykey;" json:"id" form:"id"`
ID int64 `gorm:"primarykey;" json:"id" form:"id"`
CreatedAt time.Time `gorm:"column:created_at"`
UpdatedAt time.Time `gorm:"column:updated_at"`
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:int(11)" json:"deletedAt"`

View File

@ -1,11 +1,33 @@
package model
//实名认证模型
// 实名认证模型
type RealName struct {
Model
Name string `gorm:"not null"`
IDNum string `gorm:"type:varchar(18) not null"`
TelNum string `gorm:"type:varchar(11) not null"`
IdcardFront string `gorm:"type:varchar(256) not null"`
IdcardBack string `gorm:"type:varchar(256) not null"`
Name string `gorm:"not null"`
IdNum string `gorm:"type:varchar(18) not null"`
TelNum string `gorm:"type:varchar(11) not null"`
IdCardFront string `gorm:"column:idcard_front;comment:身份证正面"`
IdCardBack string `gorm:"column:idcard_back;comment:身份证反面"`
Age int `gorm:"column:age"`
Sex SexType `gorm:"column:sex"`
Birthday string `gorm:"column:birthday"`
Address string `gorm:"column:address"`
}
func (r RealName) TableName() string {
return "real_name"
}
type SexType string
func (s SexType) ConvertInt32() int32 {
switch s {
case "男":
return 1
case "女":
return 2
default: //其它
return 3
}
}

View File

@ -1,41 +1,53 @@
package model
import (
"gorm.io/plugin/soft_delete"
)
// User 用户模型
type User struct {
//ID uint64 `gorm:"primarykey;" json:"id" form:"id"`
//CreateAt int64 `gorm:"not null"`
//DeletedAt int64 `gorm:"not null"`
Model
MgmtUserId uint64 `gorm:"column:mgmt_user_id;not null;unique;comment:账号id"`
MgmtArtistId string `gorm:"column:mgmt_artist_id;type:varchar(256) not null;comment:艺术家id"`
Account string `gorm:"type:varchar(256) not null"`
MnemonicWords string `gorm:"type:varchar(256) not null"`
TelNum string `gorm:"type:varchar(20) not null"`
Name string `gorm:"type:varchar(20) not null"`
PenName string `gorm:"type:varchar(20) not null"`
StageName string `gorm:"type:varchar(20) not null"`
JoinAssoTime string `gorm:"type:varchar(64) not null"`
CertificateNum string `gorm:"type:varchar(16) not null"`
CertificateImg string `gorm:"type:varchar(512) not null"`
Key string `gorm:"type:varchar(16) not null"`
RealNameID int32 `gorm:"not null"`
IDNum string `gorm:"type:varchar(18) not null"`
Sex int32 `gorm:"not null"`
Ruler int64 `gorm:"not null"`
OpenId string `gorm:"type:varchar(2048) not null"`
CustomerId string `gorm:"type:varchar(2048) not null"`
Age int32 `gorm:"not null"`
Introduct string `gorm:"type:varchar(2048) not null"`
ConAddress string `gorm:"type:varchar(2048) not null"`
Photo string `gorm:"type:varchar(2048) not null"`
Video string `gorm:"type:varchar(256) not null"`
IsRealName int64 `gorm:"not null"`
IsFdd int64 `gorm:"not null"`
FddState int64 `gorm:"not null"`
WxAccount string `gorm:"type:varchar(256) not null"`
IsLock bool `gorm:"not null"`
InvitedCode string `gorm:"type:varchar(16) default ''"`
IsRead int32 `gorm:"not null"`
IsImport int32 `gorm:"not null"`
Enable bool `gorm:"not null"`
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:int(11)" json:"deletedAt"`
MgmtAccId int64 `gorm:"column:mgmt_acc_id;not null;uniqueIndex:mgmt_acc_mgmt_artist_idx;comment:账号id"`
MgmtArtistId string `gorm:"column:mgmt_artist_id;type:varchar(256);not null;uniqueIndex:mgmt_acc_mgmt_artist_idx;comment:艺术家id"`
TelNum string `gorm:"type:varchar(20);not null;电话号码"`
InvitedCode string `gorm:"column:invited_code;type:varchar(16);default:'';comment:邀请码"`
// 实名认证
IsRealName int64 `gorm:"column:is_real_name;not null;是否实名认证:0未认证 1已认证"`
RealNameId int64 `gorm:"column:real_name_id"`
RealNameInfo *RealName `gorm:"foreignKey:RealNameId"`
// 法大大认证
FddState int64 `gorm:"column:fdd_state;not null;comment:法大大认证状态0未认证 2已认证"`
CustomerId string `gorm:"column:costumer_id;type:varchar(2048);not null;comment:法大大客户id"`
OpenId string `gorm:"openId"`
//用户状态
IsRead int64 `gorm:"not null;comment:条款阅读状态"`
IsLock bool `gorm:"not null;comment:画家锁定状态"`
//IsFdd int64 `gorm:"column:is_fdd;not null;comment:"`
//Account string `gorm:"type:varchar(256) not null"`
//Name string `gorm:"type:varchar(20) not null"`
//MnemonicWords string `gorm:"type:varchar(256) not null"`
//PenName string `gorm:"type:varchar(20) not null"`
//StageName string `gorm:"type:varchar(20) not null"`
//JoinAssoTime string `gorm:"type:varchar(64) not null"`
//CertificateNum string `gorm:"type:varchar(16) not null"`
//CertificateImg string `gorm:"type:varchar(512) not null"`
//Key string `gorm:"type:varchar(16) not null"`
//RealNameID int32 `gorm:"not null"`
//IDNum string `gorm:"type:varchar(18) not null"`
//Sex int32 `gorm:"not null"`
//OpenId string `gorm:"type:varchar(2048) not null"`
//Age int32 `gorm:"not null"`
//Introduct string `gorm:"type:varchar(2048) not null"`
//ConAddress string `gorm:"type:varchar(2048) not null"`
//Photo string `gorm:"type:varchar(2048) not null"`
//Video string `gorm:"type:varchar(256) not null"`
//WxAccount string `gorm:"type:varchar(256) not null"`
}
func (u User) TableName() string {
return "user"
}

30
conf/xjjdev/conf.ini Normal file
View File

@ -0,0 +1,30 @@
[system]
mode = dev #正式prod #测试dev
[mysql]
Db = mysql
DbHost = 127.0.0.1
DbPort = 3306
DbUser = root
DbPassWord = 123456
DbName = artistmgmttest
[redis]
RedisDB = 2
RedisAddr = 127.0.0.1:6379
#RedisPW = "nDCTrfTtBu3Pw"
#RedisDBNAme =
[chain]
IP=127.0.0.1:37101
MnemonicWords=知 睡 迷 纤 纲 耀 镜 婆 渡 考 拔 百
ContractAccount=XC8214684261867838@xuper
ContractName=fp001
[zap_log]
level: "info"
filename: "logs/artist_server.log"
max_size: 200
max_age: 30
max_backups: 7

77
conf/xjjdev/dubbogo.yaml Normal file
View File

@ -0,0 +1,77 @@
dubbo:
metrics:
enable: true # default is true
path: /metrics # default is /metrics
port: 9091 # default is 9090
namespace: dubboArtist # default is dubbo 作为数据上报 metrics 的前
registries:
demoZK:
protocol: zookeeper
timeout: 120s
address: 127.0.0.1:2181
# address: 121.229.45.214:9004
# address: 114.218.158.24:2181
# address: zookeeper:2181
protocols:
triple: #triple
name: tri
# ip: 121.229.45.214
port: 20050
provider:
services:
ArtistInfoProvider:
interface: com.fontree.microservices.common.ArtistInfo
# retries: 100
ContractProvider:
interface: com.fontree.microservices.common.Contract
# retries: 0
ArtWorkProvider:
interface: com.fontree.microservices.common.ArtWork
# retries: 0
SupplyProvider:
interface: com.fontree.microservices.common.Supply
# retries: 0
logger:
zap-config:
level: info # 日志级别
development: false
disableCaller: false
disableStacktrace: false
encoding: "json"
# zap encoder 配置
encoderConfig:
messageKey: "message"
levelKey: "level"
timeKey: "time"
nameKey: "logger"
callerKey: "caller"
stacktraceKey: "stacktrace"
lineEnding: ""
levelEncoder: "capitalColor"
timeEncoder: "iso8601"
durationEncoder: "seconds"
callerEncoder: "short"
nameEncoder: ""
EncodeTime: zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05.000"),
EncodeDuration: zapcore.SecondsDurationEncoder,
outputPaths:
- "stderr"
errorOutputPaths:
- "stderr"
lumberjack-config:
# 写日志的文件名称
filename: "logs/artist_server.log"
# 每个日志文件长度的最大大小,单位是 MiB。默认 100MiB
maxSize: 10
# 日志保留的最大天数(只保留最近多少天的日志)
maxAge: 15
# 只保留最近多少个日志文件,用于控制程序总日志的大小
maxBackups: 10
# 是否使用本地时间,默认使用 UTC 时间
localTime: true
# 是否压缩日志文件,压缩方法 gzip
compress: false

18
conf/xjjdev/sdk.real.yaml Normal file
View File

@ -0,0 +1,18 @@
# endorseService Info
# testNet addrs
endorseServiceHost: "39.156.69.83:37100"
complianceCheck:
# 是否需要进行合规性背书
isNeedComplianceCheck: false
# 是否需要支付合规性背书费用
isNeedComplianceCheckFee: false
# 合规性背书费用
complianceCheckEndorseServiceFee: 400
# 支付合规性背书费用的收款地址
complianceCheckEndorseServiceFeeAddr: aB2hpHnTBDxko3UoP2BpBZRujwhdcAFoT
# 如果通过合规性检查,签发认证签名的地址
complianceCheckEndorseServiceAddr: jknGxa6eyum1JrATWvSJKW3thJ9GKHA9n
#创建平行链所需要的最低费用
minNewChainAmount: "100"
crypto: "xchain"
txVersion: 1

18
conf/xjjdev/sdk.test.yaml Normal file
View File

@ -0,0 +1,18 @@
# endorseService Info
# testNet addrs
endorseServiceHost: "14.215.179.74:37101"
complianceCheck:
# 是否需要进行合规性背书
isNeedComplianceCheck: true
# 是否需要支付合规性背书费用
isNeedComplianceCheckFee: true
# 合规性背书费用
complianceCheckEndorseServiceFee: 100
# 支付合规性背书费用的收款地址
complianceCheckEndorseServiceFeeAddr: cHvBK1TTB52GYtVxHK7HnW8N9RTqkN99R
# 如果通过合规性检查,签发认证签名的地址
complianceCheckEndorseServiceAddr: XDxkpQkfLwG6h56e896f3vBHhuN5g6M9u
#创建平行链所需要的最低费用
minNewChainAmount: "100"
crypto: "xchain"
txVersion: 1

18
conf/xjjdev/sdk.yaml Normal file
View File

@ -0,0 +1,18 @@
# endorseService Info
# testNet addrs
# endorseServiceHost: "120.48.24.223:37101"
endorseServiceHost: "127.0.0.1:37101"
complianceCheck:
# 是否需要进行合规性背书
isNeedComplianceCheck: false
# 是否需要支付合规性背书费用
isNeedComplianceCheckFee: false
# 合规性背书费用
complianceCheckEndorseServiceFee: 400
# 支付合规性背书费用的收款地址
complianceCheckEndorseServiceFeeAddr: WwLgfAatHyKx2mCJruRaML4oVf7Chzp42
# 如果通过合规性检查,签发认证签名的地址
complianceCheckEndorseServiceAddr: WwLgfAatHyKx2mCJruRaML4oVf7Chzp42
#创建平行链所需要的最低费用
minNewChainAmount: "100"
crypto: "xchain"

127
go.mod
View File

@ -1,6 +1,6 @@
module github.com/fonchain/fonchain-artistinfo
go 1.16
go 1.19
replace (
github.com/fonchain/electronic-contract => ../electronic-contract
@ -15,6 +15,7 @@ replace (
require (
dubbo.apache.org/dubbo-go/v3 v3.0.1
github.com/alibaba/sentinel-golang v1.0.4
github.com/dubbogo/grpc-go v1.42.9
github.com/dubbogo/triple v1.1.8
github.com/fonchain/utils/objstorage v0.0.0-00010101000000-000000000000
@ -23,6 +24,8 @@ require (
github.com/gin-gonic/gin v1.8.1
github.com/go-redis/redis v6.15.9+incompatible
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
github.com/golang/protobuf v1.5.2
github.com/mwitkow/go-proto-validators v0.3.2
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
go.uber.org/zap v1.21.0
golang.org/x/image v0.0.0-20190802002840-cff245a6509b
@ -30,12 +33,130 @@ require (
gopkg.in/ini.v1 v1.66.4
gorm.io/driver/mysql v1.4.4
gorm.io/gorm v1.24.1
gorm.io/plugin/soft_delete v1.2.0
)
require (
github.com/alibaba/sentinel-golang v1.0.4 // indirect
contrib.go.opencensus.io/exporter/prometheus v0.4.0 // indirect
github.com/RoaringBitmap/roaring v0.7.1 // indirect
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect
github.com/Workiva/go-datastructures v1.0.52 // indirect
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 // indirect
github.com/aliyun/alibaba-cloud-sdk-go v1.61.18 // indirect
github.com/aliyun/aliyun-oss-go-sdk v2.2.4+incompatible // indirect
github.com/apache/dubbo-getty v1.4.7 // indirect
github.com/apache/dubbo-go-hessian2 v1.11.0 // indirect
github.com/baidubce/bce-sdk-go v0.9.138 // indirect
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.2.0 // indirect
github.com/boombuler/barcode v1.0.1 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/creasty/defaults v1.5.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5 // indirect
github.com/dubbogo/gost v1.11.22 // indirect
github.com/emicklei/go-restful/v3 v3.7.3 // indirect
github.com/fsnotify/fsnotify v1.5.1 // indirect
github.com/ghodss/yaml v1.0.0 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-co-op/gocron v1.9.0 // indirect
github.com/go-errors/errors v1.0.1 // indirect
github.com/go-kit/log v0.1.0 // indirect
github.com/go-logfmt/logfmt v0.5.0 // indirect
github.com/go-logr/logr v0.4.0 // indirect
github.com/go-ole/go-ole v1.2.4 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-playground/validator/v10 v10.10.0 // indirect
github.com/go-resty/resty/v2 v2.7.0 // indirect
github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/goccy/go-json v0.9.7 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/mock v1.4.4 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/go-cmp v0.5.7 // indirect
github.com/google/gofuzz v1.1.0 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/vault/sdk v0.3.0 // indirect
github.com/jinzhu/copier v0.3.5 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/k0kubun/pp v3.0.1+incompatible // indirect
github.com/knadh/koanf v1.4.0 // indirect
github.com/leodido/go-urn v1.2.1 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.4.3 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/mschoch/smat v0.2.0 // indirect
github.com/nacos-group/nacos-sdk-go v1.1.0 // indirect
github.com/natefinch/lumberjack v2.0.0+incompatible // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pelletier/go-toml v1.9.4 // indirect
github.com/pelletier/go-toml/v2 v2.0.1 // indirect
github.com/pierrec/lz4 v2.5.2+incompatible // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/polarismesh/polaris-go v1.0.1 // indirect
github.com/prometheus/client_golang v1.12.1 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.32.1 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/prometheus/statsd_exporter v0.21.0 // indirect
github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect
github.com/shirou/gopsutil v3.20.11+incompatible // indirect
github.com/shirou/gopsutil/v3 v3.21.6 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/spf13/afero v1.8.2 // indirect
github.com/spf13/cast v1.4.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.11.0 // indirect
gorm.io/plugin/soft_delete v1.2.0 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/tklauser/go-sysconf v0.3.6 // indirect
github.com/tklauser/numcpus v0.2.2 // indirect
github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3 // indirect
github.com/uber/jaeger-client-go v2.29.1+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/ugorji/go/codec v1.2.7 // indirect
github.com/zouyx/agollo/v3 v3.4.5 // indirect
go.etcd.io/etcd/api/v3 v3.5.2 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.2 // indirect
go.etcd.io/etcd/client/v3 v3.5.2 // indirect
go.opencensus.io v0.23.0 // indirect
go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect
golang.org/x/net v0.0.0-20220412020605-290c469a71a5 // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect
google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac // indirect
google.golang.org/grpc v1.45.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
k8s.io/apimachinery v0.22.4 // indirect
k8s.io/klog/v2 v2.9.0 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.1.2 // indirect
)

164
go.sum
View File

@ -17,31 +17,15 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
@ -117,7 +101,6 @@ github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
@ -161,7 +144,6 @@ github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QH
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
@ -193,7 +175,6 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
@ -244,7 +225,6 @@ github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaB
github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful/v3 v3.7.3 h1:06a5brwUhivED9WAFB3Q1JZDhirpnHlCdEVhGz3PSfc=
github.com/emicklei/go-restful/v3 v3.7.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
@ -265,8 +245,6 @@ github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl
github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239/go.mod h1:Gdwt2ce0yfBxPvZrHkprdPPTTS3N5rwmLE8T22KBXlw=
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
@ -349,6 +327,7 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
@ -370,10 +349,8 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@ -395,7 +372,6 @@ github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc=
@ -430,7 +406,6 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
@ -441,11 +416,6 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@ -454,10 +424,6 @@ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM=
github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM=
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
@ -489,28 +455,22 @@ github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=
@ -519,7 +479,6 @@ github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es
github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw=
github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I=
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8=
@ -542,12 +501,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4=
github.com/hashicorp/serf v0.9.7/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4=
github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q=
github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M=
github.com/hashicorp/vault/sdk v0.3.0 h1:kR3dpxNkhh/wr6ycaJYqp6AFT/i2xaftbfnwZduTKEY=
@ -649,26 +604,22 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-sqlite3 v1.14.3 h1:j7a/xn1U6TKA/PHHxqZuzh64CdtRc7rU9M+AvkOl5bA=
github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
@ -704,6 +655,8 @@ github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOl
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-proto-validators v0.3.2 h1:qRlmpTzm2pstMKKzTdvwPCF5QfBNURSlAgN/R+qbKos=
github.com/mwitkow/go-proto-validators v0.3.2/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA7a5VarXUOUxD+oeD30w=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/nacos-group/nacos-sdk-go v1.0.8/go.mod h1:hlAPn3UdzlxIlSILAyOXKxjFSvDJ9oLzTJ9hLAK1KzA=
github.com/nacos-group/nacos-sdk-go v1.1.0 h1:6ESrAegx2pqp3Vi8mqDi7s2Vq+I+u0oYLn646K4wx6o=
@ -759,7 +712,6 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU=
github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
@ -782,7 +734,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/polarismesh/polaris-go v1.0.1 h1:Zqr8ZtxsJQsxt0MGyC/fFsF861ogoJCz16yWFJ/t54Q=
github.com/polarismesh/polaris-go v1.0.1/go.mod h1:3NOqn3QquPdEdY6YhPrsWGvBVCpKhPBGt0Hspq3yEqY=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
@ -842,7 +793,6 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
github.com/sagikazarmark/crypt v0.5.0/go.mod h1:l+nzl7KWh51rpzp2h7t4MZWyiEWdhNpOAnclKvg+mdA=
github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b h1:gQZ0qzfKHQIybLANtM3mBXNUtOfsCFXeTsnBqCsx1KM=
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
@ -931,7 +881,6 @@ github.com/uber/jaeger-client-go v2.29.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMW
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn0=
github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo=
github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw=
github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=
@ -1037,7 +986,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@ -1111,7 +1059,6 @@ golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@ -1136,21 +1083,13 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211105192438-b53810dc28af/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220412020605-290c469a71a5 h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4=
golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@ -1162,18 +1101,9 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE=
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1211,8 +1141,6 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -1225,7 +1153,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -1252,44 +1179,26 @@ golang.org/x/sys v0.0.0-20201223074533-0d417f636930/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211106132015-ebca88c72f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -1331,7 +1240,6 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@ -1375,17 +1283,13 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U=
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
@ -1410,23 +1314,6 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU=
google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8=
google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@ -1479,42 +1366,9 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211104193956-4c6863e31247/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac h1:qSNTkEN+L2mvWcLgJOR+8bdHX9rN/IdU3A1Ghpfb1Rg=
google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
@ -1544,19 +1398,13 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M=
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@ -1616,6 +1464,7 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gorm.io/driver/mysql v1.4.4 h1:MX0K9Qvy0Na4o7qSC/YI7XxqUw5KDw01umqgID+svdQ=
gorm.io/driver/mysql v1.4.4/go.mod h1:BCg8cKI+R0j/rZRQxeKis/forqRwRSYOR8OM3Wo6hOM=
gorm.io/driver/sqlite v1.1.3 h1:BYfdVuZB5He/u9dt4qDpZqiqDJ6KhPqs5QUqsr/Eeuc=
gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c=
gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
@ -1657,7 +1506,6 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ=
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno=

6429
pb/artist/artist.pb.go Normal file

File diff suppressed because it is too large Load Diff

571
pb/artist/artist.proto Normal file
View File

@ -0,0 +1,571 @@
syntax = "proto3";
package artist;
option go_package = "./;artist";
//import "validate.proto";
import "google/protobuf/descriptor.proto";
//import "google/protobuf/wrappers.proto";
//import "pb/artist/validate.proto";
import "pb/artist/validator.proto";
service Artist {
rpc ArtistList (ArtistListRequest) returns (ArtistListResponse) {} //
rpc CreateProfile (ProfileRequest) returns (ProfileResponse) {} //
rpc UpdateProfile (ProfileRequest) returns (ProfileResponse) {} //
rpc UpdateMedia (MediaRequest) returns (MediaResponse) {} //
rpc UpdateIndex (IndexRequest) returns (IndexResponse) {} //
rpc UpdateHonor (HonorRequest) returns (HonorResponse) {} //
rpc UploadMedia (UploadMediaRequest) returns (UploadMediaResponse) {} //
rpc ArtistDetail (DetailRequest) returns (DetailResponse) {} //
rpc DelArtist (DelRequest) returns (DelResponse) {} //
rpc HonorDel (HonorDelRequest) returns (HonorDelResponse) {} //
rpc CreateArtistBatch (CreateArtistBatchRequest) returns (CreateArtistBatchResponse) {} //
rpc ArtistIdName (ArtIdNameRequest) returns (ArtIdNameResponse){} // ID列表1
rpc ArtistInfo (ArtistInfoRequest) returns (ArtistInfoResponse){} //
rpc ArtistData (ArtistDataRequest) returns (ArtistDataResponse){} //
rpc InvitationAdd (InvitationAddRequest) returns (InvitationAddResponse){} //
rpc InvitationUpdate (InvitationUpdateRequest) returns (InvitationUpdateResponse){} //
rpc InvitationDel (InvitationDelRequest) returns (InvitationDelResponse){} //
rpc InvitationList (InvitationListRequest) returns (InvitationListResponse){} //
rpc InvitationInfo (InvitationInfoRequest) returns (InvitationInfoResponse){} //
rpc ContractAdd (ContractAddRequest) returns (ContractAddResponse) {} //
rpc ContractUpdate (ContractAddRequest) returns (ContractUpdateResponse) {} //
rpc ContractList (ContractListRequest) returns (ContractListResponse){} //
rpc ArtistChainUpdate (ArtistChainUpdateRequest) returns (ArtistChainUpdateResponse){} //
rpc ExportArtist (ExportArtistRequest) returns (ExportArtistResponse){} //
rpc ExportFieldList (ExportFieldListRequest) returns (ExportFieldListResponse) {} //
rpc GetInfoByUuids (GetInfoByUuidsRequest) returns (GetInfoByUuidsResponse) {} //
rpc GetCardIdWithImg (GetCardIdWithImgReq) returns (GetCardIdWithImgResp) {} //ID
}
// ProfileListRequest
message ArtistListRequest {
string Keyword = 1 [json_name = "keyword"];
int32 Page = 2 [json_name = "page"];
int32 PageSize = 3 [json_name = "page_size"];
}
// ProfileListRequest
// ProfileListResponse
message ArtistListResponse {
int32 Count = 1 [json_name = "count"];
int32 Page = 2 [json_name = "page"];
repeated ProfileRequest Data = 3 [json_name = "data"];
string Msg = 4 [json_name = "message"];
}
// ProfileListResponse
// CreateProfile
message ProfileRequest{
// string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true}];
string Uid = 1 [json_name = "uid"];
string Name = 2 [json_name = "name",(validator.field) = {string_not_empty: true,human_error:"画家名字不能为空"}];
string PenName = 3 [json_name = "pen_name"];
int32 Gender = 4 [json_name = "gender"];
int32 Age = 5 [json_name = "age"];
string NativePlace = 6 [json_name = "native_place"]; //
string Phone = 7 [json_name = "phone"]; //
string Email = 8 [json_name = "email"]; //
string CardId = 9 [json_name = "card_id"]; //
string BankName = 10 [json_name = "bank_name"]; //
string BankNum = 11 [json_name = "bank_num"]; //
int32 Seqnum = 12 [json_name = "seqnum"];
string Tnum = 13 [json_name = "tnum"];
int32 Num = 14 [json_name = "num"]; //
string CaaCertNum = 15 [json_name = "caa_cert_num"]; //
string Agent = 16 [json_name = "agent"];
string Teacher = 17 [json_name = "teacher"]; //
string Student = 18 [json_name = "student"]; //
string Address = 19 [json_name = "address"];
string StyleFaction = 20 [json_name = "style_faction"]; //
string School = 21 [json_name = "school"]; //
string Position = 22 [json_name = "position"]; //
string CoopPlatform = 23 [json_name = "coop_platform"]; //
int32 Belong = 24 [json_name = "belong"]; //
int32 Id = 25 [json_name = "id"];
string RecentPhotoOne = 26 [json_name = "recent_photo_one"];
// string Exhibition = 27 [json_name = "exhibition"]; //-
// string Collectible = 28 [json_name = "collectible"]; //-
// string Education = 29 [json_name = "education"]; //-
// string Influence = 30 [json_name = "influence"]; //-
// string Professionalism = 31 [json_name = "professionalism"]; //-
string Resume = 27 [json_name = "resume"];
string Indexs = 28 [json_name = "index"];
string ChainHash = 29 [json_name = "chain_hash"];
string StageName = 30 [json_name = "stage_name"];
string CaaJoinTime = 31 [json_name = "caa_join_time"];
int32 JoinShow = 32 [json_name = "join_show",(validator.field) = {int_gt: 0,human_error:"请选择是否参加画展"}];
// double lataaaaa = 27 [json_name = "lataaaaa",(validator.field) = {uuid_ver: 4, string_not_empty: true}];
// string Lataaaaa = 27 [(validate.rules).string = {min_len:1}];
// string Home = 24 [(validate.rules).string.required = true];
// message Location {
// double lat = 1 [(validate.rules).double = { gte: -90, lte: 90 }];
// double lng = 2 [(validate.rules).double = { gte: -180, lte: 180 }];
// }
}
message ProfileResponse{
message Data {
string Uid = 1 [json_name = "uid"];
}
string Msg = 1 [json_name = "msg"];
Data DataInfo = 2[json_name = "data_info"];
}
// CreateProfile
// CreateMedia
message MediaRequest {
string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
string RecentPhotoOne = 2 [json_name = "recent_photo_one"];
string RecentPhotoTwo = 3 [json_name = "recent_photo_two"];
string CardFace = 4 [json_name = "card_face"];
string CardNational = 5 [json_name = "card_national"];
string SignImg = 6 [json_name = "sign_img"];
message VideosMap{
string CoverUrl = 1 [json_name = "cover_url"];
string OriUrl = 2 [json_name = "ori_url"];
}
repeated VideosMap InterviewVideos = 7 [json_name = "interview_videos"];
repeated VideosMap ThirdPartyVideos = 8 [json_name = "third_party_videos"];
string CaaImg = 9 [json_name = "caa_img"];
}
// IndexRequest
message IndexRequest{
string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
float Exhibition = 2 [json_name = "exhibition"];
float Collectible = 3 [json_name = "collectible"];
float Education = 4 [json_name = "education"];
float Influence = 5 [json_name = "influence"];
float Professionalism = 6 [json_name = "professionalism"];
}
message IndexResponse{
string Msg = 1 [json_name = "msg"];
message Data{
string Uid = 1 [json_name = "uid"];
}
Data DataInfo = 2 [json_name = "data_info"];
}
// IndexRequest
message MediaResponse{
string Msg = 1 [json_name = "msg"];
message Data{
string Uid = 1 [json_name = "uid"];
}
Data DataInfo = 2 [json_name = "data_info"];
}
// CreateMedia
// UpdateHonor
message HonorRequest {
string Uid = 1 [json_name = "uuid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
int32 HonorType = 2 [json_name = "honor_type"];
// string HonorAddDate = 3 [json_name = "honor_add_date"];
// string HonorBeginDate = 4 [json_name = "honor_begin_date"];
// string HonorEndDate = 5 [json_name = "honor_end_date"];
// string HonorDisplayName = 6 [json_name = "honor_display_name"];
// string HonorArtName = 7 [json_name = "honor_art_name"];
// string HonorImg = 8 [json_name = "honor_img"];
string HonorDetail = 3 [json_name = "honor_detail"];
int32 Id = 4 [json_name = "id"];
}
message HonorResponse{
string Msg = 1 [json_name = "msg"];
message HonorResData{
int32 Id = 1 [json_name = "id"];
}
HonorResData DataInfo = 2 [json_name = "data"];
}
// UpdateHonor
// UploadMediaRequest
message UploadMediaRequest{
string FileType = 1 [json_name = "file_type"];
string FileBuffer = 2 [json_name = "file_buffer"];
}
message UploadMediaResponse{
string Msg = 1 [json_name = "msg"];
string Data = 2 [json_name = "data"];
}
// UploadMediaRequest
// DetailRequest
message DetailRequest{
string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
}
//DetailRequest
// DetailResponse
message DetailResponse{
ProfileRequest ProfileInfo = 1 [json_name = "profile_info"];
MediaRequest MediaInfo = 2 [json_name = "media_info"];
repeated HonorRequest HonorInfo = 3 [json_name = "honor_info"];
string Msg = 4;
}
//DetailResponse
// DelRequest
message DelRequest{
string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
}
// DelRequest
// DelResponse
message DelResponse{
string Msg = 1 [json_name = "msg"];
}
// DelResponse
// HonorDel
message HonorDelRequest{
repeated int32 Ids = 1 [json_name = "ids"];
}
message HonorDelResponse{
string Msg = 1 [json_name = "msg"];
}
// HonorDel
message ArtistInfo {
string Uid = 1 [json_name = "uid"];
string Name = 2 [json_name = "name"];
string PenName = 3 [json_name = "pen_name"];
int32 Gender = 4 [json_name = "gender"];
int32 Age = 5 [json_name = "age"];
string NativePlace = 6 [json_name = "native_place"]; //
string Phone = 7 [json_name = "phone"]; //
string Email = 8 [json_name = "email"]; //
string CardId = 9 [json_name = "card_id"]; //
string BankName = 10 [json_name = "bank_name"]; //
string BankNum = 11 [json_name = "bank_num"]; //
int32 Seqnum = 12 [json_name = "seqnum"];
string Tnum = 13 [json_name = "tnum"];
int32 Num = 14 [json_name = "num"]; //
string CaaCertNum = 15 [json_name = "caa_cert_num"]; //
string Agent = 16 [json_name = "agent"];
string Teacher = 17 [json_name = "teacher"]; //
string Student = 18 [json_name = "student"]; //
string Address = 19 [json_name = "address"];
string StyleFaction = 20 [json_name = "style_faction"]; //
string School = 21 [json_name = "school"]; //
string Position = 22 [json_name = "position"]; //
string CoopPlatform = 23 [json_name = "coop_platform"]; //
int32 Belong = 24 [json_name = "belong"]; //
int32 Id = 25 [json_name = "id"];
string RecentPhotoOne = 26 [json_name = "recent_photo_one"];
}
message CreateArtistBatchRequest{
repeated ArtistInfo ArtistInfoBatch = 1 [json_name = "artist_info_batch"] ;
}
message CreateArtistBatchResponse{
string Msg = 1 [json_name = "msg"];
}
// ArtIdNameRequest
message ArtIdNameRequest {}
// ArtIdNameResponse
message ArtIdNameResponse{
message IdKbName{
string Uuid = 1 [json_name = "uuid"];
string Name = 2 [json_name = "name"];
}
repeated IdKbName Items = 3[json_name = "items"];
string Msg = 4 [json_name = "msg"];
}
// ArtistInfo
message ArtistInfoRequest{
string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
}
message ArtistInfoResponse{
message ArtistChainField {
int32 ArtistId = 1 [json_name = "artist_name"];
string Wtchainhash = 2 [json_name = "wtchainhash"];
string Baiduchainhash = 3 [json_name = "baiduchainhash"];
string Changchainhash = 4 [json_name = "changchainhash"];
string Changchaincerturl = 5 [json_name = "changchaincerturl"];
string Baiduchaincerturl = 6 [json_name = "baiduchaincerturl"];
string Changchaincertossurl = 7 [json_name = "changchaincertossurl"];
string Baiduchaincertossurl = 8 [json_name = "baiduchaincertossurl"];
string Status = 9 [json_name = "status"];
int32 Id = 10 [json_name = "id"];
string ChainHash = 11 [json_name = "chain_hash"];
}
ProfileRequest ProfileInfo = 1 [json_name = "profile_info"];
MediaRequest MediaRequest = 2 [json_name = "media"];
ArtistChainField ArtistChainInfo = 3 [json_name = "artist_chain_info"];
string Msg = 4 [json_name = "msg"];
}
// ArtistInfo
// ArtistData
message ArtistDataRequest{
repeated string Uids = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"画家Id不能为空"}];
}
message ArtistDataResponse{
message info{
ProfileRequest ProfileInfo = 1 [json_name = "profile_info"];
MediaRequest MediaRequest = 2 [json_name = "media"];
}
repeated info Data = 1;
string Msg = 2 [json_name = "msg"];
}
// ArtistData
// InvitationAdd
message InvitationAddRequest{
repeated string ArtistUuids = 1 [json_name = "artist_uuid",(validator.field) = {string_not_empty: true,human_error:"请选择画家"}];
string Address = 2 [json_name = "address",(validator.field) = {string_not_empty: true,human_error:"地址不能为空"}];
string InvitationDesc = 3 [json_name = "invitation_desc",(validator.field) = {string_not_empty: true,human_error:"邀请函主题不能为空"}];
string ShowDesc = 4 [json_name = "show_desc",(validator.field) = {string_not_empty: true,human_error:"画展主题不能为空"}];
string ShowTime = 5 [json_name = "show_time",(validator.field) = {string_not_empty: true,human_error:"时间不能为空"}];
}
message InvitationAddResponse{
string Msg = 1 [json_name = "msg"];
}
// InvitationAdd
// UpdateInvitation
message InvitationUpdateRequest{
string Uuid = 1 [json_name = "uuid",(validator.field) = {string_not_empty: true,human_error:"标识错误"}];
string ArtistUuid = 2 [json_name = "artist_uuid",(validator.field) = {string_not_empty: true,human_error:"请选择画家"}];
string Address = 3 [json_name = "address",(validator.field) = {string_not_empty: true,human_error:"地址不能为空"}];
string InvitationDesc = 4 [json_name = "invitation_desc",(validator.field) = {string_not_empty: true,human_error:"邀请函主题不能为空"}];
string ShowDesc = 5 [json_name = "show_desc",(validator.field) = {string_not_empty: true,human_error:"画展主题不能为空"}];
string ShowTime = 6 [json_name = "show_time",(validator.field) = {string_not_empty: true,human_error:"时间不能为空"}];
string ArtistName = 7 [json_name = "artist_name"];
}
message InvitationUpdateResponse{
string Msg = 1 [json_name = "msg"];
}
// UpdateInvitation
// InvitationDel
message InvitationDelRequest{
string Uuid = 1 [json_name = "uuid"];
}
message InvitationDelResponse{
string Msg = 1 [json_name = "msg"];
}
// InvitationDel
// InvitationList
message InvitationListRequest{
string ArtistUuid = 1 [json_name = "artist_uuid",(validator.field) = {string_not_empty: true,human_error:"请选择画家"}];
}
message InvitationListResponse{
repeated InvitationUpdateRequest Data = 1 [json_name = "data"];
string Msg = 2 [json_name = "msg"];
}
// InvitationList
// InvitationInfo
message InvitationInfoRequest{
string Uuid = 1 [json_name = "uuid",(validator.field) = {string_not_empty: true,human_error:"请选择数据"}];
}
message InvitationInfoResponse{
InvitationUpdateRequest Info = 1 [json_name = "info"];
string Msg = 2 [json_name = "msg"];
}
// InvitationInfo
// ContractAdd
message ContractAddRequest {
string Uid = 1 [json_name = "uid"];
int32 Id = 2 [json_name = "id"];
string CtOnlineSaleListImg = 3 [json_name = "ct_online_sale_list_img"];
string CtOnlineCopySaleImg = 4 [json_name = "ct_online_copy_sale_img"];
string CtOnlineCopyListImg = 5 [json_name = "ct_online_copy_list_img"];
string CtOnlineSaleImg = 6 [json_name = "ct_online_sale_img"];
string CtOnlineSaleTime = 7 [json_name = "ct_online_sale_time"];
string CtOnlineCopyTime = 8 [json_name = "ct_online_copy_time"];
string CtOfflineSaleImg = 9 [json_name = "ct_offline_sale_img"];
string CtOfflineSaleListImg = 10 [json_name = "ct_offline_sale_list_img"];
string CtOfflineCopySaleImg = 11 [json_name = "ct_offline_copy_sale_img"];
string CtOfflineCopyListImg = 12 [json_name = "ct_offline_copy_list_img"];
string CtOfflineSaleTime = 13 [json_name = "ct_offline_sale_time"];
string CtOfflineCopyTime = 14 [json_name = "ct_offline_copy_time"];
}
message ContractAddResponse{
string Msg = 1 [json_name = "msg"];
}
// ContractAdd
// ContractUpdate
message ContractUpdateResponse{
string Msg = 1 [json_name = "msg"];
}
// ContractUpdate
// ContractList
message ContractListRequest{
string Uid = 1 [json_name = "uid",(validator.field) = {string_not_empty: true,human_error:"请选择画家"}];
int32 Page = 2 [json_name = "page"];
int32 PageSize = 3 [json_name = "page_size"];
}
message ContractListResponse{
string Msg = 1 [json_name = "msg"];
int32 Count = 2 [json_name = "count"];
int32 Page = 3 [json_name = "page"];
repeated ContractAddRequest Data = 4 [json_name = "data"];
}
// ContractList
// ArtistChainUpdate
message ArtistChainUpdateRequest{
string ArtistUuid = 1 [json_name = "artist_uuid",(validator.field) = {string_not_empty: true,human_error:"请选择画家"}]; // uuid
string WtHash = 2 [json_name = "wt_hash"];
string CxHash = 3 [json_name = "cx_hash"];
string BaiduHash = 4 [json_name = "baidu_hash"];
string BaiduChainHash = 5 [json_name = "baiduchainhash"];
string BaiduChainCertUrl = 6 [json_name = "baiduchaincerturl"];
string BaiduChainCertOssUrl = 7 [json_name = "baiduchaincertossurl"];
string ChangChainHash = 8 [json_name = "changchainhash"];
string ChangChainCertUrl = 9 [json_name = "changchaincerturl"];
string ChangChainCertOssUrl = 10 [json_name = "changchaincertossurl"];
string MnemonicPhrase = 11 [json_name = "mnemonic_phrase"]; //
string PublicKey = 12 [json_name = "public_key"]; //
string ChainHash = 13 [json_name = "chain_hash"]; //
}
message ArtistChainUpdateResponse{
string Msg = 1 [json_name = "msg"];
}
// ArtistChainUpdate
// ExportArtist
message ExportArtistRequest{
string Keyword = 1 [json_name = "keyword"];
int32 Page = 2 [json_name = "page"];
int32 PageSize = 3 [json_name = "page_size"];
string ColumnId = 4 [json_name = "column_id",(validator.field) = {string_not_empty: true,human_error:"请选择字段"}];
string ColumnName = 5 [json_name = "column_name"];
repeated string ArtistUuids = 6 [json_name = "artist_uuids"];
}
message ExportArtistResponse{
message Info {
string Uid = 1 [json_name = "uid"];
string Name = 2 [json_name = "name"];
string PenName = 3 [json_name = "pen_name"];
int32 Gender = 4 [json_name = "gender"];
int32 Age = 5 [json_name = "age"];
string NativePlace = 6 [json_name = "native_place"]; //
string Phone = 7 [json_name = "phone"]; //
string Email = 8 [json_name = "email"]; //
string CardId = 9 [json_name = "card_id"]; //
string BankName = 10 [json_name = "bank_name"]; //
string BankNum = 11 [json_name = "bank_num"]; //
int32 Seqnum = 12 [json_name = "seqnum"];
string Tnum = 13 [json_name = "tnum"];
int32 Num = 14 [json_name = "num"]; //
string CaaCertNum = 15 [json_name = "caa_cert_num"]; //
string Agent = 16 [json_name = "agent"];
string Teacher = 17 [json_name = "teacher"]; //
string Student = 18 [json_name = "student"]; //
string Address = 19 [json_name = "address"];
string StyleFaction = 20 [json_name = "style_faction"]; //
string School = 21 [json_name = "school"]; //
string Position = 22 [json_name = "position"]; //
string CoopPlatform = 23 [json_name = "coop_platform"]; //
int32 Belong = 24 [json_name = "belong"]; //
string Resume = 25 [json_name = "resume"];
string Indexs = 26 [json_name = "index"];
// string ChainHash = 27 [json_name = "chain_hash"];
string RecentPhotoOne = 28 [json_name = "recent_photo_one"];
string RecentPhotoTwo = 29 [json_name = "recent_photo_two"];
string CardFace = 30 [json_name = "card_face"];
string CardNational = 31 [json_name = "card_national"];
string SignImg = 32 [json_name = "sign_img"];
string ArtistUuid = 33 [json_name = "artist_uuid"]; // uuid
string WtHash = 34 [json_name = "wt_hash"];
string CxHash = 35 [json_name = "cx_hash"];
string BaiduHash = 36 [json_name = "baidu_hash"];
string BaiduChainHash = 37 [json_name = "baiduchainhash"];
string BaiduChainCertUrl = 38 [json_name = "baiduchaincerturl"];
string BaiduChainCertOssUrl = 39 [json_name = "baiduchaincertossurl"];
string ChangChainHash = 40 [json_name = "changchainhash"];
string ChangChainCertUrl = 41 [json_name = "changchaincerturl"];
string ChangChainCertOssUrl = 42 [json_name = "changchaincertossurl"];
string MnemonicPhrase = 43 [json_name = "mnemonic_phrase"]; //
string PublicKey = 44 [json_name = "public_key"]; //
string ChainHash = 45 [json_name = "chain_hash"]; //
}
repeated Info Data = 1 [json_name = "data"];
string StructName = 2 [json_name = "struct_name"];
string ColumnDesc = 3 [json_name = "column_desc"];
string Msg = 4 [json_name = "msg"];
}
// ExportArtist
// ExportFieldList
message ExportFieldListRequest{
int32 ExportType = 1 [json_name = "export_type",(validator.field) = {int_gt: 0,human_error:"导出类型必须大于0"}];
}
message ExportFieldListResponse{
message Info {
int32 Id = 1 [json_name = "id"];
string ColumnDesc = 2 [json_name = "column_desc"];
}
repeated Info Data = 1[json_name = "data"];
string Msg = 2 [json_name = "msg"];
}
// ExportFieldList
// GetInfoByUuidsRequest
message GetInfoByUuidsRequest{
repeated string ArtistUuids = 1 [json_name = "artist_uuids"];
}
message GetInfoByUuidsResponse{
message Info{
string Uid = 1 [json_name = "uid"];
int32 Seqnum = 2 [json_name = "seqnum"];
string Tnum = 3 [json_name = "tnum"];
int32 Num = 4 [json_name = "num"];
}
repeated Info Data = 1 [json_name = "data"];
string Msg = 2 [json_name = "msg"];
}
// GetInfoByUuidsRequest
message GetCardIdWithImgReq{
string CardFace = 1 [json_name = "card_face",(validator.field) = {string_not_empty: true,human_error:"身份证照片不能为空"}];
}
message GetCardIdWithImgResp{
string Path = 1;
string Name = 2;
string IdCard = 3;
int32 Age = 4;
string Birthday = 5;
string Sex = 6;
string Msg = 7;
}

View File

@ -0,0 +1,437 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: pb/artist/artist.proto
package artist
import (
fmt "fmt"
math "math"
proto "github.com/golang/protobuf/proto"
_ "github.com/mwitkow/go-proto-validators"
_ "google.golang.org/protobuf/types/descriptorpb"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *ArtistListRequest) Validate() error {
return nil
}
func (this *ArtistListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *ProfileRequest) Validate() error {
if this.Name == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Name", fmt.Errorf(`画家名字不能为空`))
}
if !(this.JoinShow > 0) {
return github_com_mwitkow_go_proto_validators.FieldError("JoinShow", fmt.Errorf(`请选择是否参加画展`))
}
return nil
}
func (this *ProfileResponse) Validate() error {
if this.DataInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err)
}
}
return nil
}
func (this *ProfileResponse_Data) Validate() error {
return nil
}
func (this *MediaRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`))
}
for _, item := range this.InterviewVideos {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("InterviewVideos", err)
}
}
}
for _, item := range this.ThirdPartyVideos {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ThirdPartyVideos", err)
}
}
}
return nil
}
func (this *MediaRequest_VideosMap) Validate() error {
return nil
}
func (this *IndexRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`))
}
return nil
}
func (this *IndexResponse) Validate() error {
if this.DataInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err)
}
}
return nil
}
func (this *IndexResponse_Data) Validate() error {
return nil
}
func (this *MediaResponse) Validate() error {
if this.DataInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err)
}
}
return nil
}
func (this *MediaResponse_Data) Validate() error {
return nil
}
func (this *HonorRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`))
}
return nil
}
func (this *HonorResponse) Validate() error {
if this.DataInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err)
}
}
return nil
}
func (this *HonorResponse_HonorResData) Validate() error {
return nil
}
func (this *UploadMediaRequest) Validate() error {
return nil
}
func (this *UploadMediaResponse) Validate() error {
return nil
}
func (this *DetailRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`))
}
return nil
}
func (this *DetailResponse) Validate() error {
if this.ProfileInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err)
}
}
if this.MediaInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("MediaInfo", err)
}
}
for _, item := range this.HonorInfo {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("HonorInfo", err)
}
}
}
return nil
}
func (this *DelRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`))
}
return nil
}
func (this *DelResponse) Validate() error {
return nil
}
func (this *HonorDelRequest) Validate() error {
return nil
}
func (this *HonorDelResponse) Validate() error {
return nil
}
func (this *ArtistInfo) Validate() error {
return nil
}
func (this *CreateArtistBatchRequest) Validate() error {
for _, item := range this.ArtistInfoBatch {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistInfoBatch", err)
}
}
}
return nil
}
func (this *CreateArtistBatchResponse) Validate() error {
return nil
}
func (this *ArtIdNameRequest) Validate() error {
return nil
}
func (this *ArtIdNameResponse) Validate() error {
for _, item := range this.Items {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Items", err)
}
}
}
return nil
}
func (this *ArtIdNameResponse_IdKbName) Validate() error {
return nil
}
func (this *ArtistInfoRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`))
}
return nil
}
func (this *ArtistInfoResponse) Validate() error {
if this.ProfileInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err)
}
}
if this.MediaRequest != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaRequest); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("MediaRequest", err)
}
}
if this.ArtistChainInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ArtistChainInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistChainInfo", err)
}
}
return nil
}
func (this *ArtistInfoResponse_ArtistChainField) Validate() error {
return nil
}
func (this *ArtistDataRequest) Validate() error {
for _, item := range this.Uids {
if item == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uids", fmt.Errorf(`画家Id不能为空`))
}
}
return nil
}
func (this *ArtistDataResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *ArtistDataResponseInfo) Validate() error {
if this.ProfileInfo != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err)
}
}
if this.MediaRequest != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaRequest); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("MediaRequest", err)
}
}
return nil
}
func (this *InvitationAddRequest) Validate() error {
for _, item := range this.ArtistUuids {
if item == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuids", fmt.Errorf(`请选择画家`))
}
}
if this.Address == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Address", fmt.Errorf(`地址不能为空`))
}
if this.InvitationDesc == "" {
return github_com_mwitkow_go_proto_validators.FieldError("InvitationDesc", fmt.Errorf(`邀请函主题不能为空`))
}
if this.ShowDesc == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ShowDesc", fmt.Errorf(`画展主题不能为空`))
}
if this.ShowTime == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ShowTime", fmt.Errorf(`时间不能为空`))
}
return nil
}
func (this *InvitationAddResponse) Validate() error {
return nil
}
func (this *InvitationUpdateRequest) Validate() error {
if this.Uuid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uuid", fmt.Errorf(`标识错误`))
}
if this.ArtistUuid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuid", fmt.Errorf(`请选择画家`))
}
if this.Address == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Address", fmt.Errorf(`地址不能为空`))
}
if this.InvitationDesc == "" {
return github_com_mwitkow_go_proto_validators.FieldError("InvitationDesc", fmt.Errorf(`邀请函主题不能为空`))
}
if this.ShowDesc == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ShowDesc", fmt.Errorf(`画展主题不能为空`))
}
if this.ShowTime == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ShowTime", fmt.Errorf(`时间不能为空`))
}
return nil
}
func (this *InvitationUpdateResponse) Validate() error {
return nil
}
func (this *InvitationDelRequest) Validate() error {
return nil
}
func (this *InvitationDelResponse) Validate() error {
return nil
}
func (this *InvitationListRequest) Validate() error {
if this.ArtistUuid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuid", fmt.Errorf(`请选择画家`))
}
return nil
}
func (this *InvitationListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *InvitationInfoRequest) Validate() error {
if this.Uuid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uuid", fmt.Errorf(`请选择数据`))
}
return nil
}
func (this *InvitationInfoResponse) Validate() error {
if this.Info != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Info); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Info", err)
}
}
return nil
}
func (this *ContractAddRequest) Validate() error {
return nil
}
func (this *ContractAddResponse) Validate() error {
return nil
}
func (this *ContractUpdateResponse) Validate() error {
return nil
}
func (this *ContractListRequest) Validate() error {
if this.Uid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`请选择画家`))
}
return nil
}
func (this *ContractListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *ArtistChainUpdateRequest) Validate() error {
if this.ArtistUuid == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuid", fmt.Errorf(`请选择画家`))
}
return nil
}
func (this *ArtistChainUpdateResponse) Validate() error {
return nil
}
func (this *ExportArtistRequest) Validate() error {
if this.ColumnId == "" {
return github_com_mwitkow_go_proto_validators.FieldError("ColumnId", fmt.Errorf(`请选择字段`))
}
return nil
}
func (this *ExportArtistResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *ExportArtistResponse_Info) Validate() error {
return nil
}
func (this *ExportFieldListRequest) Validate() error {
if !(this.ExportType > 0) {
return github_com_mwitkow_go_proto_validators.FieldError("ExportType", fmt.Errorf(`导出类型必须大于0`))
}
return nil
}
func (this *ExportFieldListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *ExportFieldListResponse_Info) Validate() error {
return nil
}
func (this *GetInfoByUuidsRequest) Validate() error {
return nil
}
func (this *GetInfoByUuidsResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *GetInfoByUuidsResponse_Info) Validate() error {
return nil
}
func (this *GetCardIdWithImgReq) Validate() error {
if this.CardFace == "" {
return github_com_mwitkow_go_proto_validators.FieldError("CardFace", fmt.Errorf(`身份证照片不能为空`))
}
return nil
}
func (this *GetCardIdWithImgResp) Validate() error {
return nil
}

File diff suppressed because it is too large Load Diff

862
pb/artist/validate.proto Normal file
View File

@ -0,0 +1,862 @@
syntax = "proto2";
package validate;
option go_package = "github.com/envoyproxy/protoc-gen-validate/validate";
option java_package = "io.envoyproxy.pgv.validate";
import "google/protobuf/descriptor.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
// Validation rules applied at the message level
extend google.protobuf.MessageOptions {
// Disabled nullifies any validation rules for this message, including any
// message fields associated with it that do support validation.
optional bool disabled = 1071;
// Ignore skips generation of validation methods for this message.
optional bool ignored = 1072;
}
// Validation rules applied at the oneof level
extend google.protobuf.OneofOptions {
// Required ensures that exactly one the field options in a oneof is set;
// validation fails if no fields in the oneof are set.
optional bool required = 1071;
}
// Validation rules applied at the field level
extend google.protobuf.FieldOptions {
// Rules specify the validations to be performed on this field. By default,
// no validation is performed against a field.
optional FieldRules rules = 1071;
}
// FieldRules encapsulates the rules for each type of field. Depending on the
// field, the correct set should be used to ensure proper validations.
message FieldRules {
optional MessageRules message = 17;
oneof type {
// Scalar Field Types
FloatRules float = 1;
DoubleRules double = 2;
Int32Rules int32 = 3;
Int64Rules int64 = 4;
UInt32Rules uint32 = 5;
UInt64Rules uint64 = 6;
SInt32Rules sint32 = 7;
SInt64Rules sint64 = 8;
Fixed32Rules fixed32 = 9;
Fixed64Rules fixed64 = 10;
SFixed32Rules sfixed32 = 11;
SFixed64Rules sfixed64 = 12;
BoolRules bool = 13;
StringRules string = 14;
BytesRules bytes = 15;
// Complex Field Types
EnumRules enum = 16;
RepeatedRules repeated = 18;
MapRules map = 19;
// Well-Known Field Types
AnyRules any = 20;
DurationRules duration = 21;
TimestampRules timestamp = 22;
}
}
// FloatRules describes the constraints applied to `float` values
message FloatRules {
// Const specifies that this field must be exactly the specified value
optional float const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional float lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional float lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional float gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional float gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated float in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated float not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// DoubleRules describes the constraints applied to `double` values
message DoubleRules {
// Const specifies that this field must be exactly the specified value
optional double const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional double lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional double lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional double gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional double gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated double in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated double not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// Int32Rules describes the constraints applied to `int32` values
message Int32Rules {
// Const specifies that this field must be exactly the specified value
optional int32 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional int32 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional int32 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional int32 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional int32 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated int32 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated int32 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// Int64Rules describes the constraints applied to `int64` values
message Int64Rules {
// Const specifies that this field must be exactly the specified value
optional int64 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional int64 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional int64 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional int64 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional int64 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated int64 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated int64 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// UInt32Rules describes the constraints applied to `uint32` values
message UInt32Rules {
// Const specifies that this field must be exactly the specified value
optional uint32 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional uint32 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional uint32 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional uint32 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional uint32 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated uint32 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated uint32 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// UInt64Rules describes the constraints applied to `uint64` values
message UInt64Rules {
// Const specifies that this field must be exactly the specified value
optional uint64 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional uint64 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional uint64 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional uint64 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional uint64 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated uint64 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated uint64 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// SInt32Rules describes the constraints applied to `sint32` values
message SInt32Rules {
// Const specifies that this field must be exactly the specified value
optional sint32 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional sint32 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional sint32 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional sint32 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional sint32 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated sint32 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated sint32 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// SInt64Rules describes the constraints applied to `sint64` values
message SInt64Rules {
// Const specifies that this field must be exactly the specified value
optional sint64 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional sint64 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional sint64 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional sint64 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional sint64 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated sint64 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated sint64 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// Fixed32Rules describes the constraints applied to `fixed32` values
message Fixed32Rules {
// Const specifies that this field must be exactly the specified value
optional fixed32 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional fixed32 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional fixed32 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional fixed32 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional fixed32 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated fixed32 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated fixed32 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// Fixed64Rules describes the constraints applied to `fixed64` values
message Fixed64Rules {
// Const specifies that this field must be exactly the specified value
optional fixed64 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional fixed64 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional fixed64 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional fixed64 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional fixed64 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated fixed64 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated fixed64 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// SFixed32Rules describes the constraints applied to `sfixed32` values
message SFixed32Rules {
// Const specifies that this field must be exactly the specified value
optional sfixed32 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional sfixed32 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional sfixed32 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional sfixed32 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional sfixed32 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated sfixed32 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated sfixed32 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// SFixed64Rules describes the constraints applied to `sfixed64` values
message SFixed64Rules {
// Const specifies that this field must be exactly the specified value
optional sfixed64 const = 1;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional sfixed64 lt = 2;
// Lte specifies that this field must be less than or equal to the
// specified value, inclusive
optional sfixed64 lte = 3;
// Gt specifies that this field must be greater than the specified value,
// exclusive. If the value of Gt is larger than a specified Lt or Lte, the
// range is reversed.
optional sfixed64 gt = 4;
// Gte specifies that this field must be greater than or equal to the
// specified value, inclusive. If the value of Gte is larger than a
// specified Lt or Lte, the range is reversed.
optional sfixed64 gte = 5;
// In specifies that this field must be equal to one of the specified
// values
repeated sfixed64 in = 6;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated sfixed64 not_in = 7;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 8;
}
// BoolRules describes the constraints applied to `bool` values
message BoolRules {
// Const specifies that this field must be exactly the specified value
optional bool const = 1;
}
// StringRules describe the constraints applied to `string` values
message StringRules {
// Const specifies that this field must be exactly the specified value
optional string const = 1;
// Len specifies that this field must be the specified number of
// characters (Unicode code points). Note that the number of
// characters may differ from the number of bytes in the string.
optional uint64 len = 19;
// MinLen specifies that this field must be the specified number of
// characters (Unicode code points) at a minimum. Note that the number of
// characters may differ from the number of bytes in the string.
optional uint64 min_len = 2;
// MaxLen specifies that this field must be the specified number of
// characters (Unicode code points) at a maximum. Note that the number of
// characters may differ from the number of bytes in the string.
optional uint64 max_len = 3;
// LenBytes specifies that this field must be the specified number of bytes
optional uint64 len_bytes = 20;
// MinBytes specifies that this field must be the specified number of bytes
// at a minimum
optional uint64 min_bytes = 4;
// MaxBytes specifies that this field must be the specified number of bytes
// at a maximum
optional uint64 max_bytes = 5;
// Pattern specifes that this field must match against the specified
// regular expression (RE2 syntax). The included expression should elide
// any delimiters.
optional string pattern = 6;
// Prefix specifies that this field must have the specified substring at
// the beginning of the string.
optional string prefix = 7;
// Suffix specifies that this field must have the specified substring at
// the end of the string.
optional string suffix = 8;
// Contains specifies that this field must have the specified substring
// anywhere in the string.
optional string contains = 9;
// NotContains specifies that this field cannot have the specified substring
// anywhere in the string.
optional string not_contains = 23;
// In specifies that this field must be equal to one of the specified
// values
repeated string in = 10;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated string not_in = 11;
// WellKnown rules provide advanced constraints against common string
// patterns
oneof well_known {
// Email specifies that the field must be a valid email address as
// defined by RFC 5322
bool email = 12;
// Hostname specifies that the field must be a valid hostname as
// defined by RFC 1034. This constraint does not support
// internationalized domain names (IDNs).
bool hostname = 13;
// Ip specifies that the field must be a valid IP (v4 or v6) address.
// Valid IPv6 addresses should not include surrounding square brackets.
bool ip = 14;
// Ipv4 specifies that the field must be a valid IPv4 address.
bool ipv4 = 15;
// Ipv6 specifies that the field must be a valid IPv6 address. Valid
// IPv6 addresses should not include surrounding square brackets.
bool ipv6 = 16;
// Uri specifies that the field must be a valid, absolute URI as defined
// by RFC 3986
bool uri = 17;
// UriRef specifies that the field must be a valid URI as defined by RFC
// 3986 and may be relative or absolute.
bool uri_ref = 18;
// Address specifies that the field must be either a valid hostname as
// defined by RFC 1034 (which does not support internationalized domain
// names or IDNs), or it can be a valid IP (v4 or v6).
bool address = 21;
// Uuid specifies that the field must be a valid UUID as defined by
// RFC 4122
bool uuid = 22;
// WellKnownRegex specifies a common well known pattern defined as a regex.
KnownRegex well_known_regex = 24;
}
// This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable
// strict header validation.
// By default, this is true, and HTTP header validations are RFC-compliant.
// Setting to false will enable a looser validations that only disallows
// \r\n\0 characters, which can be used to bypass header matching rules.
optional bool strict = 25 [default = true];
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 26;
}
// WellKnownRegex contain some well-known patterns.
enum KnownRegex {
UNKNOWN = 0;
// HTTP header name as defined by RFC 7230.
HTTP_HEADER_NAME = 1;
// HTTP header value as defined by RFC 7230.
HTTP_HEADER_VALUE = 2;
}
// BytesRules describe the constraints applied to `bytes` values
message BytesRules {
// Const specifies that this field must be exactly the specified value
optional bytes const = 1;
// Len specifies that this field must be the specified number of bytes
optional uint64 len = 13;
// MinLen specifies that this field must be the specified number of bytes
// at a minimum
optional uint64 min_len = 2;
// MaxLen specifies that this field must be the specified number of bytes
// at a maximum
optional uint64 max_len = 3;
// Pattern specifes that this field must match against the specified
// regular expression (RE2 syntax). The included expression should elide
// any delimiters.
optional string pattern = 4;
// Prefix specifies that this field must have the specified bytes at the
// beginning of the string.
optional bytes prefix = 5;
// Suffix specifies that this field must have the specified bytes at the
// end of the string.
optional bytes suffix = 6;
// Contains specifies that this field must have the specified bytes
// anywhere in the string.
optional bytes contains = 7;
// In specifies that this field must be equal to one of the specified
// values
repeated bytes in = 8;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated bytes not_in = 9;
// WellKnown rules provide advanced constraints against common byte
// patterns
oneof well_known {
// Ip specifies that the field must be a valid IP (v4 or v6) address in
// byte format
bool ip = 10;
// Ipv4 specifies that the field must be a valid IPv4 address in byte
// format
bool ipv4 = 11;
// Ipv6 specifies that the field must be a valid IPv6 address in byte
// format
bool ipv6 = 12;
}
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 14;
}
// EnumRules describe the constraints applied to enum values
message EnumRules {
// Const specifies that this field must be exactly the specified value
optional int32 const = 1;
// DefinedOnly specifies that this field must be only one of the defined
// values for this enum, failing on any undefined value.
optional bool defined_only = 2;
// In specifies that this field must be equal to one of the specified
// values
repeated int32 in = 3;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated int32 not_in = 4;
}
// MessageRules describe the constraints applied to embedded message values.
// For message-type fields, validation is performed recursively.
message MessageRules {
// Skip specifies that the validation rules of this field should not be
// evaluated
optional bool skip = 1;
// Required specifies that this field must be set
optional bool required = 2;
}
// RepeatedRules describe the constraints applied to `repeated` values
message RepeatedRules {
// MinItems specifies that this field must have the specified number of
// items at a minimum
optional uint64 min_items = 1;
// MaxItems specifies that this field must have the specified number of
// items at a maximum
optional uint64 max_items = 2;
// Unique specifies that all elements in this field must be unique. This
// contraint is only applicable to scalar and enum types (messages are not
// supported).
optional bool unique = 3;
// Items specifies the contraints to be applied to each item in the field.
// Repeated message fields will still execute validation against each item
// unless skip is specified here.
optional FieldRules items = 4;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 5;
}
// MapRules describe the constraints applied to `map` values
message MapRules {
// MinPairs specifies that this field must have the specified number of
// KVs at a minimum
optional uint64 min_pairs = 1;
// MaxPairs specifies that this field must have the specified number of
// KVs at a maximum
optional uint64 max_pairs = 2;
// NoSparse specifies values in this field cannot be unset. This only
// applies to map's with message value types.
optional bool no_sparse = 3;
// Keys specifies the constraints to be applied to each key in the field.
optional FieldRules keys = 4;
// Values specifies the constraints to be applied to the value of each key
// in the field. Message values will still have their validations evaluated
// unless skip is specified here.
optional FieldRules values = 5;
// IgnoreEmpty specifies that the validation rules of this field should be
// evaluated only if the field is not empty
optional bool ignore_empty = 6;
}
// AnyRules describe constraints applied exclusively to the
// `google.protobuf.Any` well-known type
message AnyRules {
// Required specifies that this field must be set
optional bool required = 1;
// In specifies that this field's `type_url` must be equal to one of the
// specified values.
repeated string in = 2;
// NotIn specifies that this field's `type_url` must not be equal to any of
// the specified values.
repeated string not_in = 3;
}
// DurationRules describe the constraints applied exclusively to the
// `google.protobuf.Duration` well-known type
message DurationRules {
// Required specifies that this field must be set
optional bool required = 1;
// Const specifies that this field must be exactly the specified value
optional google.protobuf.Duration const = 2;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional google.protobuf.Duration lt = 3;
// Lt specifies that this field must be less than the specified value,
// inclusive
optional google.protobuf.Duration lte = 4;
// Gt specifies that this field must be greater than the specified value,
// exclusive
optional google.protobuf.Duration gt = 5;
// Gte specifies that this field must be greater than the specified value,
// inclusive
optional google.protobuf.Duration gte = 6;
// In specifies that this field must be equal to one of the specified
// values
repeated google.protobuf.Duration in = 7;
// NotIn specifies that this field cannot be equal to one of the specified
// values
repeated google.protobuf.Duration not_in = 8;
}
// TimestampRules describe the constraints applied exclusively to the
// `google.protobuf.Timestamp` well-known type
message TimestampRules {
// Required specifies that this field must be set
optional bool required = 1;
// Const specifies that this field must be exactly the specified value
optional google.protobuf.Timestamp const = 2;
// Lt specifies that this field must be less than the specified value,
// exclusive
optional google.protobuf.Timestamp lt = 3;
// Lte specifies that this field must be less than the specified value,
// inclusive
optional google.protobuf.Timestamp lte = 4;
// Gt specifies that this field must be greater than the specified value,
// exclusive
optional google.protobuf.Timestamp gt = 5;
// Gte specifies that this field must be greater than the specified value,
// inclusive
optional google.protobuf.Timestamp gte = 6;
// LtNow specifies that this must be less than the current time. LtNow
// can only be used with the Within rule.
optional bool lt_now = 7;
// GtNow specifies that this must be greater than the current time. GtNow
// can only be used with the Within rule.
optional bool gt_now = 8;
// Within specifies that this field must be within this duration of the
// current time. This constraint can be used alone or with the LtNow and
// GtNow rules.
optional google.protobuf.Duration within = 9;
}

78
pb/artist/validator.proto Normal file
View File

@ -0,0 +1,78 @@
// Copyright 2016 Michal Witkowski. All Rights Reserved.
// See LICENSE for licensing terms.
// Protocol Buffers extensions for defining auto-generateable validators for messages.
syntax = "proto2";
package validator;
import "google/protobuf/descriptor.proto";
option go_package = "github.com/mwitkow/go-proto-validators;validator";
extend google.protobuf.FieldOptions {
optional FieldValidator field = 65020;
}
extend google.protobuf.OneofOptions {
optional OneofValidator oneof = 65021;
}
message FieldValidator {
// Uses a Golang RE2-syntax regex to match the field contents.
optional string regex = 1;
// Field value of integer strictly greater than this value.
optional int64 int_gt = 2;
// Field value of integer strictly smaller than this value.
optional int64 int_lt = 3;
// Used for nested message types, requires that the message type exists.
optional bool msg_exists = 4;
// Human error specifies a user-customizable error that is visible to the user.
optional string human_error = 5;
// Field value of double strictly greater than this value.
// Note that this value can only take on a valid floating point
// value. Use together with float_epsilon if you need something more specific.
optional double float_gt = 6;
// Field value of double strictly smaller than this value.
// Note that this value can only take on a valid floating point
// value. Use together with float_epsilon if you need something more specific.
optional double float_lt = 7;
// Field value of double describing the epsilon within which
// any comparison should be considered to be true. For example,
// when using float_gt = 0.35, using a float_epsilon of 0.05
// would mean that any value above 0.30 is acceptable. It can be
// thought of as a {float_value_condition} +- {float_epsilon}.
// If unset, no correction for floating point inaccuracies in
// comparisons will be attempted.
optional double float_epsilon = 8;
// Floating-point value compared to which the field content should be greater or equal.
optional double float_gte = 9;
// Floating-point value compared to which the field content should be smaller or equal.
optional double float_lte = 10;
// Used for string fields, requires the string to be not empty (i.e different from "").
optional bool string_not_empty = 11;
// Repeated field with at least this number of elements.
optional int64 repeated_count_min = 12;
// Repeated field with at most this number of elements.
optional int64 repeated_count_max = 13;
// Field value of length greater than this value.
optional int64 length_gt = 14;
// Field value of length smaller than this value.
optional int64 length_lt = 15;
// Field value of length strictly equal to this value.
optional int64 length_eq = 16;
// Requires that the value is in the enum.
optional bool is_in_enum = 17;
// Ensures that a string value is in UUID format.
// uuid_ver specifies the valid UUID versions. Valid values are: 0-5.
// If uuid_ver is 0 all UUID versions are accepted.
optional int32 uuid_ver = 18;
}
message OneofValidator {
// Require that one of the oneof fields is set.
optional bool required = 1;
}

File diff suppressed because it is too large Load Diff

View File

@ -4,14 +4,14 @@ option go_package = "./;artistinfo";
import public "google/protobuf/timestamp.proto";
// protoc --proto_path=. --go_out=./pb/artistinfo --go-triple_out=./pb/artistinfo ./pb/artistinfo/artistinfo.proto
service ArtistInfo {
rpc UploadPic (UploadPicRequest) returns (UploadPicRespond) {}
rpc UploadIdCard (UploadIdCardRequest) returns (UploadIdCardRespond) {}
rpc RegisterUser (RegisterUserRequest) returns (RegisterUserRespond){}
rpc UpdateIdCard (UpdateIdCardRequest) returns (CommonNoParams) {} //
// rpc UploadPic (UploadPicRequest) returns (UploadPicRespond) {} //
rpc GetUser(GetUserRequest) returns (GetUserRespond){}
rpc GetUserById(GetUserByIdRequest) returns (GetUserByIdRespond){}
rpc CreateUser (CreateUserRequest) returns (CreateUserRespond){}
rpc CreateUserInfo (CreateUserInfoRequest) returns (CreateUserInfoRespond){}
rpc UpdateRealName (UpdateRealNameRequest) returns (UpdateRealNameRespond){}
// rpc UpdateRealName (UpdateRealNameRequest) returns (UpdateRealNameRespond){}
rpc FinishVerify (FinishVerifyRequest) returns (FinishVerifyRespond){}
rpc CheckUserLock (CheckUserLockRequest) returns (CheckUserLockRespond) {}
rpc ArtistSupplyList (ArtistSupplyListRequest) returns (ArtistSupplyListRespond){}
@ -30,7 +30,7 @@ service ArtistInfo {
message CommonNoParams{
}
message UpdateMsgRequest {
uint64 Id = 1;
int64 Id = 1;
}
message UpdateMsgRespond {
@ -38,12 +38,12 @@ message UpdateMsgRespond {
}
message GetUserMsgRequest{
uint64 Id = 1;
int64 Id = 1;
}
message GetUserMsgRespond{
uint64 id = 1[json_name = "id"];
uint64 mgmtUserId = 2[json_name = "mgmtUserId"];
int64 id = 1[json_name = "id"];
int64 mgmtAccId = 2[json_name = "mgmtAccId"];
string mgmtArtistId = 3[json_name = "mgmtArtistId"];
string account = 4[json_name = "account"];
string mnemonicWords = 5[json_name = "mnemonicWords"];
@ -85,7 +85,7 @@ message CheckInvitedCodeRespond {
}
message UnFinishListRequest {
uint64 id = 1;
int64 id = 1;
}
message UnFinishListRespond {
@ -102,12 +102,18 @@ message UploadPicRespond {
}
message UploadIdCardRequest {
}
message UploadIdCardRespond {
message UpdateIdCardRequest {
// int64 id = 1;//id
int64 mgmtAccId =2; //id
string idNum =3;//
string name =4;
int64 age=5;//
string sex=6;//
string address=7;//
string idCardFront=8;//url
string idCardBack=9;//url
string nativePlace=10;//
string birthday=11; //
}
message CheckMsgRequest{
@ -115,8 +121,8 @@ message CheckMsgRequest{
string verCode = 2;
}
message RegisterUserRequest {
uint64 id = 1;
uint64 mgmtUserId = 2;
int64 id = 1;
int64 mgmtAccId = 2;
string mgmtArtistId = 3;
string telNum = 4;
}
@ -132,25 +138,25 @@ message GetUserRequest {
}
message GetUserRespond {
uint64 id = 1;
uint64 mgmtUserId = 2;
int64 id = 1;
int64 mgmtAccId = 2;
string mgmtArtistId = 3;
string telNum = 4;
int64 isFdd = 5;
int64 fddState = 5;
int64 isRealName = 6;
int64 ruler = 7;
}
message GetUserByIdRequest {
uint64 id = 1;
int64 id = 1;
}
message GetUserByIdRespond{
uint64 id = 1;
uint64 mgmtUserId = 2;
int64 id = 1;
int64 mgmtAccId = 2;
string mgmtArtistId = 3;
string telNum = 4;
int64 isFdd = 5;
int64 fddState = 5;
int64 isRealName = 6;
int64 ruler = 7;
string invitedCode = 8;
@ -187,7 +193,7 @@ message GetUserByIdData {
message CreateUserRequest {
uint64 id = 1;
int64 id = 1;
string telNum = 2;
}
@ -220,7 +226,7 @@ message CreateUserInfoRequest {
string qrCodeImgDownload = 23 [json_name = "qrCodeDownload"];
string htmlType = 24 [json_name = "htmlType"];
string envType = 25 [json_name = "envType"];
uint64 id = 26 [json_name = "id"];
int64 id = 26 [json_name = "id"];
}
message CreateUserInfoRespond {
@ -230,7 +236,7 @@ message CreateUserInfoRespond {
message UpdateRealNameRequest {
uint64 id = 1; //id
int64 id = 1; //id
string idNum = 2; //
string name = 3; //
}
@ -242,7 +248,7 @@ message UpdateRealNameRespond {
message FinishVerifyRequest {
uint64 id = 1;
int64 id = 1;
}
message FinishVerifyRespond {
@ -251,7 +257,7 @@ message FinishVerifyRespond {
message CheckUserLockRequest {
uint64 id = 1 [json_name = "id"];
int64 id = 1 [json_name = "id"];
}
message CheckUserLockRespond {
@ -265,31 +271,31 @@ message ArtistSupplyListRequest {
string name = 2;
string artistName = 3;
string invitedName = 4;
uint64 isImport = 5;
uint64 state = 6;
uint64 page = 7;
uint64 pageSize = 8;
int64 isImport = 5;
int64 state = 6;
int64 page = 7;
int64 pageSize = 8;
}
message ArtistSupplyListRespond {
uint64 count = 1;
int64 count = 1;
repeated ArtistArtworkSupplyListResponseData data = 2;
}
message ArtistArtworkSupplyListResponseData {
string id = 1;
string account = 2;
uint64 passRulerCount = 3;
int64 passRulerCount = 3;
string mnemonicWords = 4;
string telNum = 5;
uint64 passArtworkCount = 6;
int64 passArtworkCount = 6;
string name = 7;
string penName = 8;
string certificate = 9;
string certificateImg = 10;
string key = 11;
uint64 sex = 12;
uint64 age = 13;
int64 sex = 12;
int64 age = 13;
string introduct = 14;
string createTime = 15;
string joinAssoTime = 16;
@ -301,7 +307,7 @@ message ArtistArtworkSupplyListResponseData {
string invitedName = 22;
bool enable = 23;
string idCard = 24;
uint64 isImport = 25;
int64 isImport = 25;
bool isLock = 26;
string idCardFront = 27;
string idCardBack = 28;
@ -309,8 +315,8 @@ message ArtistArtworkSupplyListResponseData {
string bankAccount = 30;
string minTime = 31;
string lockTime = 32;
uint64 artworkCount = 33;
uint64 rulerCount = 34;
int64 artworkCount = 33;
int64 rulerCount = 34;
}
@ -350,53 +356,50 @@ message CreateDataRequest{
}
message FindUserRequest{
uint64 mgmtUserId = 1;
string mgmtArtistId = 2;
int64 mgmtAccId = 1; //id
string mgmtArtistId = 2;//id
// string Account = 3;
// string TelNum = 4;
// bool IsLock = 5;
// bool Enable = 6;
// int64 FddState = 7;
string invitedCode = 8;
string invitedCode = 8;//
}
message FindUserResponse{
repeated UserInfo data = 1;
}
message RealNameInfo{
string Name =1;
string IdNum =2;
string TelNum =3;
string IdCardFront =4;
string IdCardBack =5;
int32 Age =6;
string Sex =7;
string Birthday =8;
string Address =9;
int64 Id = 10;
}
message UserInfo{
uint64 id = 1;
uint64 mgmtUserId = 2;
string mgmtArtistId = 3;
string account = 4;
string mnemonicWords = 5;
string telNum = 6;
string name = 7;
string penName = 8;
string stageName = 9;
string joinAssoTime = 10;
string certificateNum = 11;
string certificateImg = 12;
string key = 13;
int32 realNameID = 14;
string iDNum = 15;
int32 sex = 16;
int64 ruler = 17;
string openId = 18;
string customerId = 19;
int32 age = 20;
string introduct = 21;
int64 createdAt = 22;
string conAddress = 23;
string photo = 24;
string video = 25;
int64 isRealName = 26;
int64 isFdd = 27;
int64 fddState = 28;
string wxAccount = 29;
bool isLock = 30;
string invitedCode = 31;
int32 isRead = 32;
int32 isImport = 33;
bool enable = 34;
int64 deletedAt = 35;
int64 updatedAt =36;
int64 id = 1;
int64 deletedAt = 2;
int64 updatedAt =3;
int64 createdAt =4;
int64 mgmtAccId = 5;
string mgmtArtistId = 6;
string TelNum =7;
string InvitedCode = 8;
int64 IsRealName=9;
int64 RealNameId=10;
RealNameInfo realName = 11;
int64 FddState = 12 ;
string CustomerId= 13 ;
string OpenId= 14;
int64 IsRead=15;
int64 IsImport=16;
bool Enable=17;
bool IsLock=18;
int64 Ruler=19;
}

View File

@ -28,14 +28,14 @@ const _ = grpc_go.SupportPackageIsVersion7
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type ArtistInfoClient interface {
UploadPic(ctx context.Context, in *UploadPicRequest, opts ...grpc_go.CallOption) (*UploadPicRespond, common.ErrorWithAttachment)
UploadIdCard(ctx context.Context, in *UploadIdCardRequest, opts ...grpc_go.CallOption) (*UploadIdCardRespond, common.ErrorWithAttachment)
RegisterUser(ctx context.Context, in *RegisterUserRequest, opts ...grpc_go.CallOption) (*RegisterUserRespond, common.ErrorWithAttachment)
UpdateIdCard(ctx context.Context, in *UpdateIdCardRequest, opts ...grpc_go.CallOption) (*CommonNoParams, common.ErrorWithAttachment)
// rpc UploadPic (UploadPicRequest) returns (UploadPicRespond) {} //上传身份证反面
GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc_go.CallOption) (*GetUserRespond, common.ErrorWithAttachment)
GetUserById(ctx context.Context, in *GetUserByIdRequest, opts ...grpc_go.CallOption) (*GetUserByIdRespond, common.ErrorWithAttachment)
CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc_go.CallOption) (*CreateUserRespond, common.ErrorWithAttachment)
CreateUserInfo(ctx context.Context, in *CreateUserInfoRequest, opts ...grpc_go.CallOption) (*CreateUserInfoRespond, common.ErrorWithAttachment)
UpdateRealName(ctx context.Context, in *UpdateRealNameRequest, opts ...grpc_go.CallOption) (*UpdateRealNameRespond, common.ErrorWithAttachment)
// rpc UpdateRealName (UpdateRealNameRequest) returns (UpdateRealNameRespond){}
FinishVerify(ctx context.Context, in *FinishVerifyRequest, opts ...grpc_go.CallOption) (*FinishVerifyRespond, common.ErrorWithAttachment)
CheckUserLock(ctx context.Context, in *CheckUserLockRequest, opts ...grpc_go.CallOption) (*CheckUserLockRespond, common.ErrorWithAttachment)
ArtistSupplyList(ctx context.Context, in *ArtistSupplyListRequest, opts ...grpc_go.CallOption) (*ArtistSupplyListRespond, common.ErrorWithAttachment)
@ -56,14 +56,12 @@ type artistInfoClient struct {
}
type ArtistInfoClientImpl struct {
UploadPic func(ctx context.Context, in *UploadPicRequest) (*UploadPicRespond, error)
UploadIdCard func(ctx context.Context, in *UploadIdCardRequest) (*UploadIdCardRespond, error)
RegisterUser func(ctx context.Context, in *RegisterUserRequest) (*RegisterUserRespond, error)
UpdateIdCard func(ctx context.Context, in *UpdateIdCardRequest) (*CommonNoParams, error)
GetUser func(ctx context.Context, in *GetUserRequest) (*GetUserRespond, error)
GetUserById func(ctx context.Context, in *GetUserByIdRequest) (*GetUserByIdRespond, error)
CreateUser func(ctx context.Context, in *CreateUserRequest) (*CreateUserRespond, error)
CreateUserInfo func(ctx context.Context, in *CreateUserInfoRequest) (*CreateUserInfoRespond, error)
UpdateRealName func(ctx context.Context, in *UpdateRealNameRequest) (*UpdateRealNameRespond, error)
FinishVerify func(ctx context.Context, in *FinishVerifyRequest) (*FinishVerifyRespond, error)
CheckUserLock func(ctx context.Context, in *CheckUserLockRequest) (*CheckUserLockRespond, error)
ArtistSupplyList func(ctx context.Context, in *ArtistSupplyListRequest) (*ArtistSupplyListRespond, error)
@ -91,24 +89,18 @@ func NewArtistInfoClient(cc *triple.TripleConn) ArtistInfoClient {
return &artistInfoClient{cc}
}
func (c *artistInfoClient) UploadPic(ctx context.Context, in *UploadPicRequest, opts ...grpc_go.CallOption) (*UploadPicRespond, common.ErrorWithAttachment) {
out := new(UploadPicRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadPic", in, out)
}
func (c *artistInfoClient) UploadIdCard(ctx context.Context, in *UploadIdCardRequest, opts ...grpc_go.CallOption) (*UploadIdCardRespond, common.ErrorWithAttachment) {
out := new(UploadIdCardRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UploadIdCard", in, out)
}
func (c *artistInfoClient) RegisterUser(ctx context.Context, in *RegisterUserRequest, opts ...grpc_go.CallOption) (*RegisterUserRespond, common.ErrorWithAttachment) {
out := new(RegisterUserRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RegisterUser", in, out)
}
func (c *artistInfoClient) UpdateIdCard(ctx context.Context, in *UpdateIdCardRequest, opts ...grpc_go.CallOption) (*CommonNoParams, common.ErrorWithAttachment) {
out := new(CommonNoParams)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateIdCard", in, out)
}
func (c *artistInfoClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc_go.CallOption) (*GetUserRespond, common.ErrorWithAttachment) {
out := new(GetUserRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -133,12 +125,6 @@ func (c *artistInfoClient) CreateUserInfo(ctx context.Context, in *CreateUserInf
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateUserInfo", in, out)
}
func (c *artistInfoClient) UpdateRealName(ctx context.Context, in *UpdateRealNameRequest, opts ...grpc_go.CallOption) (*UpdateRealNameRespond, common.ErrorWithAttachment) {
out := new(UpdateRealNameRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateRealName", in, out)
}
func (c *artistInfoClient) FinishVerify(ctx context.Context, in *FinishVerifyRequest, opts ...grpc_go.CallOption) (*FinishVerifyRespond, common.ErrorWithAttachment) {
out := new(FinishVerifyRespond)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -221,14 +207,14 @@ func (c *artistInfoClient) UpdateUserData(ctx context.Context, in *UserInfo, opt
// All implementations must embed UnimplementedArtistInfoServer
// for forward compatibility
type ArtistInfoServer interface {
UploadPic(context.Context, *UploadPicRequest) (*UploadPicRespond, error)
UploadIdCard(context.Context, *UploadIdCardRequest) (*UploadIdCardRespond, error)
RegisterUser(context.Context, *RegisterUserRequest) (*RegisterUserRespond, error)
UpdateIdCard(context.Context, *UpdateIdCardRequest) (*CommonNoParams, error)
// rpc UploadPic (UploadPicRequest) returns (UploadPicRespond) {} //上传身份证反面
GetUser(context.Context, *GetUserRequest) (*GetUserRespond, error)
GetUserById(context.Context, *GetUserByIdRequest) (*GetUserByIdRespond, error)
CreateUser(context.Context, *CreateUserRequest) (*CreateUserRespond, error)
CreateUserInfo(context.Context, *CreateUserInfoRequest) (*CreateUserInfoRespond, error)
UpdateRealName(context.Context, *UpdateRealNameRequest) (*UpdateRealNameRespond, error)
// rpc UpdateRealName (UpdateRealNameRequest) returns (UpdateRealNameRespond){}
FinishVerify(context.Context, *FinishVerifyRequest) (*FinishVerifyRespond, error)
CheckUserLock(context.Context, *CheckUserLockRequest) (*CheckUserLockRespond, error)
ArtistSupplyList(context.Context, *ArtistSupplyListRequest) (*ArtistSupplyListRespond, error)
@ -250,15 +236,12 @@ type UnimplementedArtistInfoServer struct {
proxyImpl protocol.Invoker
}
func (UnimplementedArtistInfoServer) UploadPic(context.Context, *UploadPicRequest) (*UploadPicRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadPic not implemented")
}
func (UnimplementedArtistInfoServer) UploadIdCard(context.Context, *UploadIdCardRequest) (*UploadIdCardRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UploadIdCard not implemented")
}
func (UnimplementedArtistInfoServer) RegisterUser(context.Context, *RegisterUserRequest) (*RegisterUserRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method RegisterUser not implemented")
}
func (UnimplementedArtistInfoServer) UpdateIdCard(context.Context, *UpdateIdCardRequest) (*CommonNoParams, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateIdCard not implemented")
}
func (UnimplementedArtistInfoServer) GetUser(context.Context, *GetUserRequest) (*GetUserRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented")
}
@ -271,9 +254,6 @@ func (UnimplementedArtistInfoServer) CreateUser(context.Context, *CreateUserRequ
func (UnimplementedArtistInfoServer) CreateUserInfo(context.Context, *CreateUserInfoRequest) (*CreateUserInfoRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateUserInfo not implemented")
}
func (UnimplementedArtistInfoServer) UpdateRealName(context.Context, *UpdateRealNameRequest) (*UpdateRealNameRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateRealName not implemented")
}
func (UnimplementedArtistInfoServer) FinishVerify(context.Context, *FinishVerifyRequest) (*FinishVerifyRespond, error) {
return nil, status.Errorf(codes.Unimplemented, "method FinishVerify not implemented")
}
@ -341,64 +321,6 @@ func RegisterArtistInfoServer(s grpc_go.ServiceRegistrar, srv ArtistInfoServer)
s.RegisterService(&ArtistInfo_ServiceDesc, srv)
}
func _ArtistInfo_UploadPic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadPicRequest)
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("UploadPic", 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 _ArtistInfo_UploadIdCard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UploadIdCardRequest)
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("UploadIdCard", 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 _ArtistInfo_RegisterUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(RegisterUserRequest)
if err := dec(in); err != nil {
@ -428,6 +350,35 @@ func _ArtistInfo_RegisterUser_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _ArtistInfo_UpdateIdCard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateIdCardRequest)
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("UpdateIdCard", 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 _ArtistInfo_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetUserRequest)
if err := dec(in); err != nil {
@ -544,35 +495,6 @@ func _ArtistInfo_CreateUserInfo_Handler(srv interface{}, ctx context.Context, de
return interceptor(ctx, in, info, handler)
}
func _ArtistInfo_UpdateRealName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateRealNameRequest)
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("UpdateRealName", 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 _ArtistInfo_FinishVerify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(FinishVerifyRequest)
if err := dec(in); err != nil {
@ -957,18 +879,14 @@ var ArtistInfo_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "artistinfo.ArtistInfo",
HandlerType: (*ArtistInfoServer)(nil),
Methods: []grpc_go.MethodDesc{
{
MethodName: "UploadPic",
Handler: _ArtistInfo_UploadPic_Handler,
},
{
MethodName: "UploadIdCard",
Handler: _ArtistInfo_UploadIdCard_Handler,
},
{
MethodName: "RegisterUser",
Handler: _ArtistInfo_RegisterUser_Handler,
},
{
MethodName: "UpdateIdCard",
Handler: _ArtistInfo_UpdateIdCard_Handler,
},
{
MethodName: "GetUser",
Handler: _ArtistInfo_GetUser_Handler,
@ -985,10 +903,6 @@ var ArtistInfo_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "CreateUserInfo",
Handler: _ArtistInfo_CreateUserInfo_Handler,
},
{
MethodName: "UpdateRealName",
Handler: _ArtistInfo_UpdateRealName_Handler,
},
{
MethodName: "FinishVerify",
Handler: _ArtistInfo_FinishVerify_Handler,

View File

@ -83,9 +83,10 @@ func Database(conn string) {
func migration() {
//自迁移模式
err := DB.AutoMigrate(&model.User{},
err := DB.AutoMigrate(
&model.Bank{},
&model.RealName{},
&model.User{},
&model.Artwork{},
&model.Contract{},
&model.SupplyInfo{},

View File

@ -2,15 +2,11 @@ package service
import (
"dubbo.apache.org/dubbo-go/v3/config"
"github.com/fonchain-artwork/pb/artist"
"github.com/fonchain-artwork/pb/chain"
"github.com/fonchain/fonchain-artistinfo/pb/artist"
)
var GrpcArtistImpl = new(artist.ArtistClientImpl)
var GrpcChainImpl = new(chain.ChainClientImpl)
func init() {
config.SetConsumerService(GrpcArtistImpl)
config.SetConsumerService(GrpcChainImpl)
}