Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
- 新增六对成对迁移 000232–000237:H5 弹窗类型、退款结算标识与申请人备注、优先轮询事实字段与两个新终态、通道阈值命中留痕、手机号最近解绑人、提现资格校验留痕 - 退款:原因必填与申请人备注、来源支付与渠道流水冻结、线下处理流水号补录审计、按订单查询可选退款方式、企微审批材料补齐且新增字段缺失映射即明确失败 - 优先轮询:人工关闭、有效期到期独立周期任务、失败与过期人工重触发、事实字段与异常重试查询、资产解析端点只读投影 - 通道阈值:命中事实同事务留痕与命中记录查询;员工账单:列表筛选与详情投影;商户池:列表投影与统计周期语义;H5:弹窗类型与类别排序 - 手机号:有效关联数量与最近解绑人、短信验证码失败次数限制;导出:佣金明细十五列与报表序号列 - 时间筛选:三处新增筛选纳入统一严格解析契约,员工账单产生时间参数改名 - 同步 12 份主 Spec 需求、两端点与异步任务证据链,门禁 context-health 与 OpenSpec 校验通过
156 lines
14 KiB
Go
156 lines
14 KiB
Go
package dto
|
||
|
||
// CreateAgentDistributionRegistrationReq 公开扫码注册请求(无需认证)。
|
||
type CreateAgentDistributionRegistrationReq struct {
|
||
DistributionCode string `json:"distribution_code" validate:"required,min=1,max=32" required:"true" minLength:"1" maxLength:"32" description:"上级代理店铺的分销码"`
|
||
Phone string `json:"phone" validate:"required,len=11" required:"true" minLength:"11" maxLength:"11" description:"注册手机号,必须已完成短信验证码校验"`
|
||
Code string `json:"code" validate:"required,len=6" required:"true" minLength:"6" maxLength:"6" description:"短信验证码,校验成功即消费"`
|
||
Password string `json:"password" validate:"required,min=6,max=64" required:"true" minLength:"6" maximum:"64" description:"代理主账号登录密码"`
|
||
Username string `json:"username" validate:"required,min=3,max=50" required:"true" minLength:"3" maxLength:"50" description:"代理主账号用户名"`
|
||
ShopName string `json:"shop_name" validate:"required,min=1,max=100" required:"true" minLength:"1" maxLength:"100" description:"申请店铺名称"`
|
||
ShopCode string `json:"shop_code" validate:"required,min=1,max=50" required:"true" minLength:"1" maxLength:"50" description:"申请店铺编号"`
|
||
ContactName string `json:"contact_name" validate:"omitempty,max=50" maxLength:"50" description:"联系人姓名"`
|
||
Province string `json:"province" validate:"omitempty,max=50" maxLength:"50" description:"省份"`
|
||
City string `json:"city" validate:"omitempty,max=50" maxLength:"50" description:"城市"`
|
||
District string `json:"district" validate:"omitempty,max=50" maxLength:"50" description:"区县"`
|
||
Address string `json:"address" validate:"omitempty,max=255" maxLength:"255" description:"详细地址"`
|
||
}
|
||
|
||
// CreateAgentDistributionRegistrationResp 公开扫码注册响应。
|
||
// 仅返回注册记录标识与待审批状态,不返回任何账号凭证或审批实例明细。
|
||
type CreateAgentDistributionRegistrationResp struct {
|
||
ID uint `json:"id" description:"待审批注册记录ID"`
|
||
Status int `json:"status" description:"注册记录状态 (0:待审批, 1:已通过, 2:已驳回)"`
|
||
StatusName string `json:"status_name" description:"状态名称(中文)"`
|
||
}
|
||
|
||
// SubmitWithdrawalQualificationReq 提交或替换提现资料资格请求。
|
||
type SubmitWithdrawalQualificationReq struct {
|
||
ShopID uint `json:"-" params:"shop_id" path:"shop_id" validate:"required" description:"店铺ID"`
|
||
SubjectType string `json:"subject_type" validate:"required,oneof=enterprise personal" required:"true" enum:"enterprise,personal" description:"签约主体类型 (enterprise:企业, personal:个人)"`
|
||
SubjectCode string `json:"subject_code" validate:"omitempty,max=64" maxLength:"64" description:"签约主体代码:企业填统一社会信用代码;个人留空并按法人身份证号取值"`
|
||
LegalPersonIDCard string `json:"legal_person_id_card" validate:"required,min=1,max=64" required:"true" minLength:"1" maxLength:"64" description:"法人身份证号"`
|
||
ContractFileKey string `json:"contract_file_key" validate:"required,min=1,max=255" required:"true" minLength:"1" maxLength:"255" description:"合同附件对象存储 Key(单个对象)"`
|
||
IDCardFrontFileKey string `json:"id_card_front_file_key" validate:"required,min=1,max=255" required:"true" minLength:"1" maxLength:"255" description:"法人身份证正面附件对象存储 Key(单个对象)"`
|
||
IDCardBackFileKey string `json:"id_card_back_file_key" validate:"required,min=1,max=255" required:"true" minLength:"1" maxLength:"255" description:"法人身份证反面附件对象存储 Key(单个对象)"`
|
||
BusinessLicenseFileKey string `json:"business_license_file_key" validate:"omitempty,max=255" maxLength:"255" description:"营业执照附件对象存储 Key(单个对象,可选)"`
|
||
ShopFrontFileKey string `json:"shop_front_file_key" validate:"omitempty,max=255" maxLength:"255" description:"门头照附件对象存储 Key(单个对象,可选)"`
|
||
InvoiceFileKey string `json:"invoice_file_key" validate:"omitempty,max=255" maxLength:"255" description:"发票附件对象存储 Key(单个对象,仅企业可选)"`
|
||
InvoiceTitle string `json:"invoice_title" validate:"omitempty,max=200" maxLength:"200" description:"发票抬头,仅企业填写,必须与合同主体一致"`
|
||
InvoiceSubjectCode string `json:"invoice_subject_code" validate:"omitempty,max=64" maxLength:"64" description:"发票统一社会信用代码,必须与签约主体代码一致"`
|
||
}
|
||
|
||
// SubmitWithdrawalQualificationResp 提现资料资格提交响应。
|
||
type SubmitWithdrawalQualificationResp struct {
|
||
ID uint `json:"id" description:"资料版本ID"`
|
||
Status int `json:"status" description:"资料版本状态 (0:待审批, 1:已通过有效, 2:已驳回, 3:已失效)"`
|
||
StatusName string `json:"status_name" description:"状态名称(中文)"`
|
||
}
|
||
|
||
// VoidWithdrawalQualificationReq 超级管理员作废提现资料资格请求。
|
||
type VoidWithdrawalQualificationReq struct {
|
||
Reason string `json:"reason" validate:"required,min=1,max=500" required:"true" minLength:"1" maxLength:"500" description:"作废原因,必填且可在资格详情查询"`
|
||
}
|
||
|
||
// VoidWithdrawalQualificationParams 作废提现资料资格路径与请求参数。
|
||
type VoidWithdrawalQualificationParams struct {
|
||
IDReq
|
||
VoidWithdrawalQualificationReq
|
||
}
|
||
|
||
// WithdrawalQualificationListReq 提现资料资格列表查询请求。
|
||
type WithdrawalQualificationListReq struct {
|
||
ShopID uint `json:"-" params:"shop_id" path:"shop_id" validate:"required" required:"true" description:"店铺ID(路径参数,必填;查询前校验当前账号对该店铺的数据范围)"`
|
||
Page int `query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码(默认1)"`
|
||
PageSize int `query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量(默认20,最大100)"`
|
||
Status *int `query:"status" validate:"omitempty,oneof=0 1 2 3" enum:"0,1,2,3" description:"资料版本状态 (0:待审批, 1:已通过有效, 2:已驳回, 3:已失效)"`
|
||
}
|
||
|
||
// WithdrawalQualificationItem 提现资料资格版本项。
|
||
// 证件号按脱敏值返回,附件仅返回对象存储 Key 引用。
|
||
type WithdrawalQualificationItem struct {
|
||
ID uint `json:"id" description:"资料版本ID"`
|
||
ShopID uint `json:"shop_id" description:"所属店铺ID"`
|
||
ShopName string `json:"shop_name" description:"所属店铺名称"`
|
||
SubjectType string `json:"subject_type" description:"签约主体类型 (enterprise:企业, personal:个人)"`
|
||
SubjectTypeName string `json:"subject_type_name" description:"签约主体类型名称(中文)"`
|
||
SubjectCodeMasked string `json:"subject_code_masked" description:"脱敏后的签约主体代码"`
|
||
LegalPersonIDCardMask string `json:"legal_person_id_card_masked" description:"脱敏后的法人身份证号"`
|
||
ContractFileKey string `json:"contract_file_key" description:"合同附件对象存储 Key"`
|
||
IDCardFrontFileKey string `json:"id_card_front_file_key" description:"法人身份证正面附件对象存储 Key"`
|
||
IDCardBackFileKey string `json:"id_card_back_file_key" description:"法人身份证反面附件对象存储 Key"`
|
||
BusinessLicenseFileKey string `json:"business_license_file_key,omitempty" description:"营业执照附件对象存储 Key"`
|
||
ShopFrontFileKey string `json:"shop_front_file_key,omitempty" description:"门头照附件对象存储 Key"`
|
||
InvoiceFileKey string `json:"invoice_file_key,omitempty" description:"发票附件对象存储 Key"`
|
||
InvoiceTitle string `json:"invoice_title,omitempty" description:"发票抬头"`
|
||
Status int `json:"status" description:"状态 (0:待审批, 1:已通过有效, 2:已驳回, 3:已失效)"`
|
||
StatusName string `json:"status_name" description:"状态名称(中文)"`
|
||
InvalidReason string `json:"invalid_reason,omitempty" description:"失效或作废原因"`
|
||
InvalidatedAt string `json:"invalidated_at,omitempty" description:"失效时间"`
|
||
ApprovalInstanceID uint `json:"approval_instance_id" description:"关联的通用审批实例ID,0 表示尚未关联"`
|
||
ApprovalStatus int `json:"approval_status" description:"通用审批实例状态 (0:提交中, 1:审批中, 2:已通过, 3:已拒绝, 4:已撤销, 5:通过后撤销, 6:已删除, 7:提交失败, 8:提交结果未知)"`
|
||
ApprovalStatusName string `json:"approval_status_name" description:"通用审批状态名称(中文)"`
|
||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||
UpdatedAt string `json:"updated_at" description:"最近更新时间"`
|
||
}
|
||
|
||
// WithdrawalQualificationPageResult 提现资料资格分页响应。
|
||
type WithdrawalQualificationPageResult struct {
|
||
Items []WithdrawalQualificationItem `json:"items" description:"资料版本列表(按版本从新到旧)"`
|
||
Total int64 `json:"total" description:"总记录数"`
|
||
Page int `json:"page" description:"当前页码"`
|
||
Size int `json:"size" description:"每页数量"`
|
||
}
|
||
|
||
// ResubmitWithdrawalReq 驳回后重提提现申请请求。
|
||
type ResubmitWithdrawalReq struct {
|
||
ShopID uint `json:"-" params:"shop_id" path:"shop_id" validate:"required" description:"店铺ID"`
|
||
ID uint `json:"-" params:"id" path:"id" validate:"required" description:"提现申请ID"`
|
||
Amount int64 `json:"amount" validate:"required,min=1" required:"true" minimum:"1" description:"提现金额(分)"`
|
||
WithdrawalMethod string `json:"withdrawal_method" validate:"required,oneof=alipay" required:"true" enum:"alipay" description:"收款类型"`
|
||
AccountName string `json:"account_name" validate:"required,max=50" required:"true" maximum:"50" description:"收款人姓名"`
|
||
AccountNumber string `json:"account_number" validate:"required,max=100" required:"true" maximum:"100" description:"收款账号"`
|
||
InvoiceKeys []string `json:"invoice_keys" description:"本次申请级发票对象存储 Key 列表;仅企业主体有效资格可提交"`
|
||
}
|
||
|
||
// ShopWithdrawalRequestDetailReq 提现申请详情路径参数。
|
||
type ShopWithdrawalRequestDetailReq struct {
|
||
ShopID uint `json:"-" params:"shop_id" path:"shop_id" validate:"required" description:"店铺ID"`
|
||
ID uint `json:"-" params:"id" path:"id" validate:"required" description:"提现申请ID"`
|
||
}
|
||
|
||
// WithdrawalRequestAttemptItem 提现审批尝试记录项。
|
||
type WithdrawalRequestAttemptItem struct {
|
||
ID uint `json:"id" description:"审批尝试记录ID"`
|
||
AttemptNo int `json:"attempt_no" description:"第几次提交,从 1 递增"`
|
||
Amount int64 `json:"amount" description:"本次提现金额(分)"`
|
||
Fee int64 `json:"fee" description:"本次手续费(分)"`
|
||
FeeRate int64 `json:"fee_rate" description:"本次手续费率(基点,100=1%)"`
|
||
ActualAmount int64 `json:"actual_amount" description:"本次实际到账金额(分)"`
|
||
WithdrawalMethod string `json:"withdrawal_method" description:"本次收款方式"`
|
||
SubmittedByID uint `json:"submitted_by_account_id" description:"本次提交账号ID"`
|
||
ApprovalInstanceID uint `json:"approval_instance_id" description:"本次尝试关联的通用审批实例ID,0 表示尚未关联"`
|
||
ApprovalStatus int `json:"approval_status" description:"通用审批实例状态 (0:提交中, 1:审批中, 2:已通过, 3:已拒绝, 4:已撤销, 5:通过后撤销, 6:已删除, 7:提交失败, 8:提交结果未知)"`
|
||
ApprovalStatusName string `json:"approval_status_name" description:"通用审批状态名称(中文)"`
|
||
// 本次提交依据的提现资料资格校验留痕,冻结在尝试快照上,历史尝试不被新版本改写。
|
||
QualificationVersionID uint `json:"qualification_version_id" description:"本次依据的有效提现资料资格版本ID,0 表示资格不存在或早于本变更的历史尝试"`
|
||
QualificationCheckedAt string `json:"qualification_checked_at,omitempty" description:"本次资料资格校验时间,空表示历史尝试无留痕"`
|
||
QualificationPassed int `json:"qualification_passed" description:"本次资料资格校验是否通过 (0:未通过, 1:通过)"`
|
||
QualificationFailureReason string `json:"qualification_failure_reason" description:"未通过时的稳定原因编码 (qualification_missing:资格不存在, qualification_invalidated:已失效, shop_disabled:已停用, qualification_not_approved:资料未通过审批),通过时为空"`
|
||
QualificationFailureName string `json:"qualification_failure_name" description:"未通过原因中文名称,通过时为空"`
|
||
ReleasedAt string `json:"released_at,omitempty" description:"本次冻结释放时间,空表示冻结仍未结算"`
|
||
CreatedAt string `json:"created_at" description:"创建时间"`
|
||
}
|
||
|
||
// ShopWithdrawalRequestDetailResp 提现申请详情响应。
|
||
type ShopWithdrawalRequestDetailResp struct {
|
||
ShopWithdrawalRequestItem
|
||
LatestAttemptID uint `json:"latest_attempt_id" description:"最新审批尝试记录ID,0 表示尚未接入企业微信审批"`
|
||
LatestApprovalInstanceID uint `json:"latest_approval_instance_id" description:"最新通用审批实例ID,0 表示尚未接入"`
|
||
ApprovalInstanceID uint `json:"approval_instance_id" description:"首次接入企业微信审批的审批实例ID,0 表示存量申请仍走本地人工终审"`
|
||
AnomalyFlag int `json:"anomaly_flag" description:"正交异常标记 (0:无异常, 1:通过后撤销)"`
|
||
AnomalyName string `json:"anomaly_name" description:"异常名称(中文)"`
|
||
AnomalyReason string `json:"anomaly_reason,omitempty" description:"异常原因,供人工处理"`
|
||
Attempts []WithdrawalRequestAttemptItem `json:"attempts" description:"审批尝试记录,按提交次序倒序;历史尝试与审批结果不被覆盖"`
|
||
}
|