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"; // protoc --proto_path=. --go_out=./pb/artist --go-triple_out=./pb/artist ./pb/artist/artist.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 rpc IdcardConvertArtistId (IdcardConvertArtistIdRequest) returns (IdcardConvertArtistIdResponse) {} //使用身份证编号换取艺术家id Created By JJxu rpc CheckCaaCertNum(CheckCaaCertNumRequest)returns(CheckCaaCertNumResponse){} //校验中美协编号 } // 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; } message IdcardConvertArtistIdRequest{ string idcard = 1; } message IdcardConvertArtistIdResponse{ int64 id = 1; string uid =2; } message CheckCaaCertNumRequest{ string caaCertNum = 1; string realName =2; } message CheckCaaCertNumResponse{ }