新增代理注册申请管理
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m41s

This commit is contained in:
2026-09-21 16:51:37 +08:00
parent b063617153
commit 4a16eb0b1e
22 changed files with 927 additions and 179 deletions

View File

@@ -153,3 +153,68 @@ type ShopWithdrawalRequestDetailResp struct {
AnomalyReason string `json:"anomaly_reason,omitempty" description:"异常原因,供人工处理"`
Attempts []WithdrawalRequestAttemptItem `json:"attempts" description:"审批尝试记录,按提交次序倒序;历史尝试与审批结果不被覆盖"`
}
// AgentDistributionRegistrationListReq 代理注册申请列表查询请求。
type AgentDistributionRegistrationListReq struct {
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" enum:"0,1,2" description:"注册业务状态 (0:待审批, 1:已通过, 2:已驳回)"`
StartTime string `query:"start_time" description:"申请开始时间RFC3339闭区间"`
EndTime string `query:"end_time" description:"申请结束时间RFC3339闭区间"`
DecidedStartTime string `query:"decided_start_time" description:"决定开始时间RFC3339闭区间"`
DecidedEndTime string `query:"decided_end_time" description:"决定结束时间RFC3339闭区间"`
Phone string `query:"phone" validate:"omitempty,len=11" description:"手机号精确值"`
Keyword string `query:"keyword" validate:"omitempty,max=100" maxLength:"100" description:"店铺名称、编号、用户名或联系人关键字"`
ParentShopID *uint `query:"parent_shop_id" validate:"omitempty,min=1" description:"直接上级店铺ID仅平台账号可用"`
SubmissionAnomaly *bool `query:"submission_anomaly" description:"是否仅筛选提交失败或结果未知"`
}
// AgentDistributionRegistrationItem 代理注册申请后台投影。
// 该投影不包含密码哈希、验证码及企业微信内部响应。
type AgentDistributionRegistrationItem struct {
ID uint `json:"id" description:"注册申请ID"`
Status int `json:"status" description:"注册业务状态 (0:待审批, 1:已通过, 2:已驳回)"`
StatusName string `json:"status_name" description:"注册业务状态名称"`
ShopName string `json:"shop_name" description:"申请店铺名称"`
ShopCode string `json:"shop_code" description:"申请店铺编号"`
Username string `json:"username" description:"代理主账号用户名"`
ContactName string `json:"contact_name" description:"联系人"`
Phone string `json:"phone" description:"完整注册手机号"`
Province string `json:"province" description:"省份"`
City string `json:"city" description:"城市"`
District string `json:"district" description:"区县"`
Address string `json:"address" description:"详细注册地址"`
ParentShopID uint `json:"parent_shop_id" description:"直接上级店铺ID"`
ParentShopName string `json:"parent_shop_name" description:"直接上级店铺名称"`
DistributionCode string `json:"distribution_code" description:"分销码快照"`
CreatedAt string `json:"created_at" description:"申请时间"`
DecidedAt string `json:"decided_at,omitempty" description:"决定时间"`
RejectReason string `json:"reject_reason,omitempty" description:"驳回原因"`
ApprovalInstanceID uint `json:"approval_instance_id" description:"通用审批实例ID"`
ApprovalStatus int `json:"approval_status" description:"通用审批状态"`
ApprovalStatusName string `json:"approval_status_name" description:"通用审批状态名称"`
SubmissionStatus int `json:"submission_status" description:"企微提交状态 (0:待提交, 1:发送中, 2:已提交, 3:失败, 4:结果未知)"`
SubmissionStatusName string `json:"submission_status_name" description:"企微提交状态名称"`
FailureSummary string `json:"failure_summary,omitempty" description:"安全失败摘要"`
Recoverable bool `json:"recoverable" description:"是否允许恢复原审批"`
LastRecoveryAt string `json:"last_recovery_at,omitempty" description:"最近恢复时间"`
}
// AgentDistributionRegistrationPageResult 代理注册申请分页响应。
type AgentDistributionRegistrationPageResult struct {
Items []AgentDistributionRegistrationItem `json:"items" description:"代理注册申请列表"`
Total int64 `json:"total" description:"总记录数"`
Page int `json:"page" description:"当前页码"`
Size int `json:"size" description:"每页数量"`
}
// AgentDistributionRegistrationDetailReq 代理注册申请详情路径参数。
type AgentDistributionRegistrationDetailReq struct {
ID uint `json:"-" params:"id" path:"id" validate:"required" description:"注册申请ID"`
}
// RecoverAgentDistributionRegistrationResp 代理注册审批恢复响应。
type RecoverAgentDistributionRegistrationResp struct {
ID uint `json:"id" description:"注册申请ID"`
Message string `json:"message" description:"恢复处理结果"`
}