company.go 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. package v1
  2. import (
  3. "property-company-gateway/param/base"
  4. pb_v1 "property-company-gateway/pb/v1"
  5. )
  6. type CompanyRegisterBody struct {
  7. // 申请人
  8. Applicant string `form:"applicant" json:"applicant"`
  9. // 申请人电话
  10. ApplicantPhone string `form:"applicant_phone" json:"applicant_phone"`
  11. // 公司名称
  12. CompanyName string `form:"company_name" json:"company_name"`
  13. // 公司电话
  14. CompanyPhone string `form:"company_phone" json:"company_phone"`
  15. // 申请人职位
  16. ApplicantDuty string `form:"applicant_duty" json:"applicant_duty"`
  17. // 法人
  18. LegalPerson string `form:"legal_person" json:"legal_person"`
  19. // 公司地址
  20. CompanyAddr string `form:"company_addr" json:"company_addr"`
  21. // 社会信用码
  22. SocialCode string `form:"social_code" json:"social_code"`
  23. // 营业执照
  24. BusinessLicense string `form:"business_license" json:"business_license"`
  25. // 申请人身份
  26. ApplicantIdentification string `form:"applicant_identification" json:"applicant_identification"`
  27. // 营业执照类型
  28. LicenseType int32 `form:"license_type" json:"license_type"`
  29. // 免费小区个数
  30. FreeGardenCount int32 `form:"free_garden_count" json:"free_garden_count"`
  31. // 账户名
  32. Username string `form:"username" json:"username"`
  33. // 密码
  34. Password string `form:"password" json:"password"`
  35. // 公司logo
  36. Logo string `form:"logo" json:"logo"`
  37. // 简介
  38. Desc string `form:"desc" json:"desc"`
  39. // 网址
  40. Site string `form:"site" json:"site"`
  41. }
  42. type CompanyRegisterRequest struct {
  43. CompanyRegisterBody
  44. }
  45. type CompanyRegisterResponse struct {
  46. base.Result
  47. Data pb_v1.RegisterReply `json:"data"`
  48. }
  49. type CompanyInfoRequest struct {
  50. base.Header
  51. }
  52. type CompanyInfoResponse struct {
  53. base.Result
  54. Data pb_v1.CompanyInfoReply `json:"data"`
  55. }
  56. type CompanyUpdateBody struct {
  57. // 公司名称
  58. CompanyName string `form:"company_name" json:"company_name"`
  59. // 公司电话
  60. CompanyPhone string `form:"company_phone" json:"company_phone"`
  61. // 公司地址
  62. CompanyAddr string `form:"company_addr" json:"company_addr"`
  63. // 社会信用码
  64. SocialCode string `form:"social_code" json:"social_code"`
  65. // 营业执照
  66. BusinessLicense string `form:"business_license" json:"business_license"`
  67. // 营业执照类型
  68. LicenseType int32 `form:"license_type" json:"license_type"`
  69. // 公司logo
  70. Logo string `form:"logo" json:"logo"`
  71. // 简介
  72. Desc string `form:"desc" json:"desc"`
  73. // 网址
  74. Site string `form:"site" json:"site"`
  75. }
  76. type CompanyUpdateRequest struct {
  77. base.Header
  78. CompanyUpdateBody
  79. }
  80. type CompanyUpdateResponse struct {
  81. base.Result
  82. }
  83. type CompanyWxBusinessLicenseInfo struct {
  84. // 营业执照mediaid,调upload_wx接口获取 必填
  85. LicenseCopy string `form:"license_copy" json:"license_copy"`
  86. // 统一社会信用码 必填
  87. LicenseNumber string `form:"license_number" json:"license_number"`
  88. // 营业执照上的商户名称 必填
  89. MerchantName string `form:"merchant_name" json:"merchant_name"`
  90. // 法人姓名 必填
  91. LegalPerson string `form:"legal_person" json:"legal_person"`
  92. // 证书的注册地址 必填
  93. LicenseAddress string `form:"license_address" json:"license_address"`
  94. // 有效期限开始日期 yyyy-mm-dd格式 必填
  95. PeriodBegin string `form:"period_begin" json:"period_begin"`
  96. // 有效期限结束日期, yyyy-mm-dd格式,如果是长期则填长期 必填
  97. PeriodEnd string `form:"period_end" json:"period_end"`
  98. // 营业执照url, 调upload_wx接口获取 必填
  99. LicenseCopyUrl string `form:"license_copy_url" json:"license_copy_url"`
  100. }
  101. type CompanyWxIdCardInfo struct {
  102. // 身份证人像面照片mediaid,调upload_wx接口获取 必填
  103. IdCardCopy string `form:"id_card_copy" json:"id_card_copy"`
  104. // 身份证国徽面照片mediaid,调upload_wx接口获取 必填
  105. IdCardNational string `form:"id_card_national" json:"id_card_national"`
  106. // 身份证号码 必填
  107. IdCardNumber string `form:"id_card_number" json:"id_card_number"`
  108. // 有效期开始时间 必填
  109. CardPeriodBegin string `form:"card_period_begin" json:"card_period_begin"`
  110. // 有效期限结束日期, yyyy-mm-dd格式,如果是长期则填长期 必填
  111. CardPeriodEnd string `form:"card_period_end" json:"card_period_end"`
  112. // 身份证姓名 必填
  113. IdCardName string `form:"id_card_name" json:"id_card_name"`
  114. // 证件地址 必填
  115. IdCardAddress string `form:"id_card_address" json:"id_card_address"`
  116. // 身份证人像面照片url,调upload_wx接口获取 必填
  117. IdCardCopyUrl string `form:"id_card_copy_url" json:"id_card_copy_url"`
  118. // 身份证国徽面照片url,调upload_wx接口获取 必填
  119. IdCardNationalUrl string `form:"id_card_national_url" json:"id_card_national_url"`
  120. }
  121. type CompanyWxIdDocInfo struct {
  122. // 证件类型 必填
  123. // IDENTIFICATION_TYPE_IDCARD:中国大陆居民-身份证
  124. // IDENTIFICATION_TYPE_OVERSEA_PASSPORT:其他国家或地区居民-护照
  125. // IDENTIFICATION_TYPE_HONGKONG_PASSPORT:中国香港居民-来往内地通行证
  126. // IDENTIFICATION_TYPE_MACAO_PASSPORT:中国澳门居民-来往内地通行证
  127. // IDENTIFICATION_TYPE_TAIWAN_PASSPORT:中国台湾居民-来往大陆通行证
  128. IdDocType string `form:"id_doc_type" json:"id_doc_type"`
  129. // 证件正面图片mediaid,调upload_wx接口获取 必填
  130. IdDocCopy string `form:"id_doc_copy" json:"id_doc_copy"`
  131. // 证件背面图片mediaid,调upload_wx接口获取, 当证件类型为护照时,该字段为空,其他情况必填
  132. IdDocCopyBack string `form:"id_doc_copy_back" json:"id_doc_copy_back"`
  133. // 证件正面图片url,调upload_wx接口获取 必填
  134. IdDocCopyUrl string `form:"id_doc_copy_url" json:"id_doc_copy_url"`
  135. // 证件背面图片url,调upload_wx接口获取,当证件类型为护照时,该字段可为空,其他情况必填
  136. IdDocCopyBackUrl string `form:"id_doc_copy_back_url" json:"id_doc_copy_back_url"`
  137. // 证件姓名 必填
  138. IdDocName string `form:"id_doc_name" json:"id_doc_name"`
  139. // 证件号 必填
  140. IdDocNumber string `form:"id_doc_number" json:"id_doc_number"`
  141. // 开始时间 必填
  142. DocPeriodBegin string `form:"doc_period_begin" json:"doc_period_begin"`
  143. // 结束时间 必填
  144. DocPeriodEnd string `form:"doc_period_end" json:"doc_period_end"`
  145. // 证件地址 必填
  146. IdDocAddress string `form:"id_doc_address" json:"id_doc_address"`
  147. }
  148. type CompanyWxIdentityInfo struct {
  149. // 固定写死 LEGAL, 必填
  150. IdHolderType string `form:"id_holder_type" json:"id_holder_type"`
  151. // 目前直接写死传空字符串
  152. // 法定代表人说明函图片mediaid 调upload_wx接口获取
  153. // 1、当证件持有人类型为经办人时,必须上传。其他情况,无需上传。
  154. // 2、若因特殊情况,无法提供法定代表人证件时,请参照示例图打印法定代表人说明函,全部信息需打印,不支持手写商户信息,并加盖公章。
  155. // 3、可上传1张图片,请填写通过图片上传APIAPI预先上传图片生成好的MediaID。
  156. AuthorizeLetterCopy string `form:"authorize_letter_copy" json:"authorize_letter_copy"`
  157. // 目前直接写死传空字符串
  158. // 法定代表人说明函图片url 调upload_wx接口获取
  159. AuthorizeLetterCopyUrl string `form:"authorize_letter_copy_url" json:"authorize_letter_copy_url"`
  160. // 证件信息
  161. IdDocInfo CompanyWxIdDocInfo `form:"id_doc_info" json:"id_doc_info"`
  162. // 法人是否为最终受益人 必填
  163. Owner bool `form:"owner" json:"owner"`
  164. }
  165. type CompanyWxUboInfo struct {
  166. // 必填
  167. // IDENTIFICATION_TYPE_IDCARD:中国大陆居民-身份证
  168. // IDENTIFICATION_TYPE_OVERSEA_PASSPORT:其他国家或地区居民-护照
  169. // IDENTIFICATION_TYPE_HONGKONG_PASSPORT:中国香港居民-来往内地通行证
  170. // IDENTIFICATION_TYPE_MACAO_PASSPORT:中国澳门居民-来往内地通行证
  171. // IDENTIFICATION_TYPE_TAIWAN_PASSPORT:中国台湾居民-来往大陆通行证
  172. UboIdDocType string `form:"ubo_id_doc_type" json:"ubo_id_doc_type"`
  173. // 收益人证件正面mediaid,调upload_wx接口获取 必填
  174. UboIdDocCopy string `form:"ubo_id_doc_copy" json:"ubo_id_doc_copy"`
  175. // 背面mediaid,调upload_wx接口获取,护照不填该字段
  176. UboIdDocCopyBack string `form:"ubo_id_doc_copy_back" json:"ubo_id_doc_copy_back"`
  177. // 证件居住地址 必填
  178. UboIdDocAddress string `form:"ubo_id_doc_address" json:"ubo_id_doc_address"`
  179. // 受益人姓名 必填
  180. UboIdDocName string `form:"ubo_id_doc_name" json:"ubo_id_doc_name"`
  181. // 证件号码 必填
  182. UboIdDocNumber string `form:"ubo_id_doc_number" json:"ubo_id_doc_number"`
  183. // 开始时间 必填
  184. UboPeriodBegin string `form:"ubo_period_begin" json:"ubo_period_begin"`
  185. // 结束时间 必填
  186. UboPeriodEnd string `form:"ubo_period_end" json:"ubo_period_end"`
  187. // 收益人证件正面url,调upload_wx接口获取 必填
  188. UboIdDocCopyUrl string `form:"ubo_id_doc_copy_url" json:"ubo_id_doc_copy_url"`
  189. // 背面url,调upload_wx接口获取 护照不填该字段
  190. UboIdDocCopyBackUrl string `form:"ubo_id_doc_copy_back_url" json:"ubo_id_doc_copy_back_url"`
  191. }
  192. type CompanyWxSubjectInfo struct {
  193. // 主体类型 必填, 写死为SUBJECT_TYPE_ENTERPRISE
  194. // 主体类型需与营业执照/登记证书上一致,可参考选择主体指引
  195. // SUBJECT_TYPE_INDIVIDUAL(个体户):营业执照上的主体类型一般为个体户、个体工商户、个体经营;
  196. // SUBJECT_TYPE_ENTERPRISE(企业):营业执照上的主体类型一般为有限公司、有限责任公司;
  197. // SUBJECT_TYPE_INSTITUTIONS(党政、机关及事业单位):包括国内各级、各类政府机构、事业单位等(如:公安、党团、司法、交通、旅游、工商税务、市政、医疗、教育、学校等机构);
  198. // SUBJECT_TYPE_OTHERS(其他组织):不属于企业、政府/事业单位的组织机构(如社会团体、民办非企业、基金会),要求机构已办理组织机构代码证。
  199. SubjectType string `form:"subject_type" json:"subject_type"`
  200. // 营业执照信息 必填
  201. BusinessLicenseInfo CompanyWxBusinessLicenseInfo `form:"business_license_info" json:"business_license_info"`
  202. // 法人身份信息 必填
  203. IdentityInfo CompanyWxIdentityInfo `form:"identity_info" json:"identity_info"`
  204. // 受益人身份信息,若法人不是最终受益人,则该字段必填
  205. // 若经营者/法人不是最终受益所有人,则需提填写受益所有人信息。
  206. // 根据国家相关法律法规,需要提供公司受益所有人信息,受益所有人需符合至少以下条件之一:
  207. // 1、直接或者间接拥有超过25%公司股权或者表决权的自然人。
  208. // 2、通过人事、财务等其他方式对公司进行控制的自然人。
  209. // 3、公司的高级管理人员,包括公司的经理、副经理、财务负责人、上市公司董事会秘书和公司章程规定的其他人员。
  210. UboInfos []CompanyWxIdDocInfo `form:"ubo_infos" json:"ubo_infos"`
  211. }
  212. type CompanyWxBusinessInfo struct {
  213. // 商户简称 必填
  214. // 1、请输入2-30个字符,支持中文/字母/数字/特殊符号
  215. // 2、在支付完成页向买家展示,需与微信经营类目相关;
  216. // 3、简称要求
  217. // (1)不支持单纯以人名来命名,若为个体户经营,可用“个体户+经营者名称”或“经营者名称+业务”命名,如“个体户张三”或“张三餐饮店”;
  218. // (2)不支持无实际意义的文案,如“XX特约商户”、“800”、“XX客服电话XXX”;
  219. MerchantShortname string `form:"merchant_shortname" json:"merchant_shortname"`
  220. // 客服电话 必填
  221. ServicePhone string `form:"service_phone" json:"service_phone"`
  222. }
  223. type CompanyWxBankAccountInfo struct {
  224. // 开户姓名, 开户名称必须与营业执照/登记证书的“商户名称”一致 必填
  225. AccountName string `form:"account_name" json:"account_name"`
  226. // 开户行 必填 开户银行,传参规则如下:
  227. //1、17家直连银行,请根据开户银行对照表直接填写银行名 ;
  228. //2、非17家直连银行,该参数请填写为“其他银行”。
  229. //
  230. AccountBank string `form:"account_bank" json:"account_bank"`
  231. // 开户银行省市编码
  232. BankAddressCode string `form:"bank_address_code" json:"bank_address_code"`
  233. // 开户银行全称(含支行)必填
  234. //示例值:中国银行股份有限公司成都鹭洲里支行
  235. BankName string `form:"bank_name" json:"bank_name"`
  236. // 银行账号 必填
  237. AccountNumber string `form:"account_number" json:"account_number"`
  238. // 写死为 BANK_ACCOUNT_TYPE_CORPORATE
  239. BankAccountType string `protobuf:"bytes,7,opt,name=bank_account_type,json=bankAccountType,proto3" json:"bank_account_type"`
  240. }
  241. type CompanyWxContactInfo struct {
  242. // LEGAL:经营者/法人,SUPER:经办人 。必填
  243. ContactType string `form:"contact_type" json:"contact_type"`
  244. // 联系人姓名 必填
  245. ContactName string `form:"contact_name" json:"contact_name"`
  246. // 联系人证件类型(当为经办人时才填)
  247. ContactIdDocType string `form:"contact_id_doc_type" json:"contact_id_doc_type"`
  248. // 证件号(当为经办人时才填)
  249. ContactIdNumber string `form:"contact_id_number" json:"contact_id_number"`
  250. // 证件正面图片mediaid,调upload_wx接口获取(当为经办人时才填)
  251. ContactIdDocCopy string `form:"contact_id_doc_copy" json:"contact_id_doc_copy"`
  252. // 证件背面图片mediaid,调upload_wx接口获取(当为经办人时才填)护照不填该字段
  253. ContactIdDocCopyBack string `form:"contact_id_doc_copy_back" json:"contact_id_doc_copy_back"`
  254. // 证件开始时间(当为经办人时才填)
  255. ContactPeriodBegin string `form:"contact_period_begin" json:"contact_period_begin"`
  256. // 证件结束时间(当为经办人时才填)
  257. ContactPeriodEnd string `form:"contact_period_end" json:"contact_period_end"`
  258. // 授权函mediaid,调upload_wx接口获取(当为经办人时才填)
  259. BusinessAuthorizationLetter string `form:"business_authorization_letter" json:"business_authorization_letter"`
  260. // 授权函 url,调upload_wx接口获取
  261. BusinessAuthorizationLetterUrl string `form:"business_authorization_letter_url" json:"business_authorization_letter_url"`
  262. // 证件正面图片url,调upload_wx接口获取(当为经办人时才填)
  263. ContactIdDocCopyUrl string `form:"contact_id_doc_copy_url" json:"contact_id_doc_copy_url"`
  264. // 证件背面图片url,调upload_wx接口获取(当为经办人时才填),护照不填该字段
  265. ContactIdDocCopyBackUrl string `form:"contact_id_doc_copy_back_url" json:"contact_id_doc_copy_back_url"`
  266. // 联系人电话 必填
  267. MobilePhone string `form:"mobile_phone" json:"mobile_phone"`
  268. // 联系人邮箱 必填
  269. ContactEmail string `form:"contact_email" json:"contact_email"`
  270. }
  271. type CompanyWxAccountApplyBody struct {
  272. //主体资料 必填
  273. SubjectInfo CompanyWxSubjectInfo `form:"subject_info" json:"subject_info"`
  274. // 经营资料 必填
  275. BusinessInfo CompanyWxBusinessInfo `form:"business_info" json:"business_info"`
  276. // 银行账号资料 必填
  277. BankAccountInfo CompanyWxBankAccountInfo `form:"bank_account_info" json:"bank_account_info"`
  278. // 超管员资料 必填
  279. ContactInfo CompanyWxContactInfo `form:"contact_info" json:"contact_info"`
  280. }
  281. type CompanyWxAccountApplyRequest struct {
  282. base.Header
  283. CompanyWxAccountApplyBody
  284. }
  285. type CompanyWxAccountApplyResponse struct {
  286. base.Result
  287. }
  288. type CompanyWxAccountListQuery struct {
  289. Page int64 `form:"page"`
  290. PageSize int64 `form:"page_size"`
  291. }
  292. type CompanyWxAccountListRequest struct {
  293. base.Header
  294. CompanyWxAccountListQuery
  295. }
  296. type CompanyWxAccountListResponse struct {
  297. base.Result
  298. Data pb_v1.CompanyWxAccountApplyListReply `json:"data"`
  299. }
  300. type CompanyWxAccountApplyInfoQuery struct {
  301. Id int64 `form:"id"`
  302. }
  303. type CompanyWxAccountApplyInfoRequest struct {
  304. base.Header
  305. CompanyWxAccountApplyInfoQuery
  306. }
  307. type CompanyWxAccountApplyInfoResponse struct {
  308. base.Result
  309. Data pb_v1.CompanyWxAccountApplyInfoReply `json:"data"`
  310. }
  311. type TemplateQuery struct {
  312. TemplateType int32 `form:"template_type" json:"template_type"`
  313. }
  314. type TemplateRequest struct {
  315. base.Header
  316. TemplateQuery
  317. }
  318. type TemplateData struct {
  319. Url string `json:"url"`
  320. }
  321. type TemplateResponse struct {
  322. base.Result
  323. Data TemplateData `json:"data"`
  324. }
  325. type CompanyStatisticRequest struct {
  326. base.Header
  327. }
  328. type CompanyStatisticResponse struct {
  329. base.Result
  330. Data pb_v1.CompanyStatisticReply `json:"data"`
  331. }