新增代理注册申请管理
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

@@ -79,6 +79,46 @@
- **WHEN** 同一注册审批终态被重复投递
- **THEN** 系统至多创建一次店铺、账号、钱包与层级关系
### Requirement: 代理注册申请后台可查询
系统 SHALL 提供 `GET /api/admin/agent-distribution-registrations``GET /api/admin/agent-distribution-registrations/{id}`,使超级管理员和平台用户查看全部代理扫码注册申请,使代理账号只查看 `parent_shop_id` 等于其当前所属店铺的直接下级申请;企业账号 MUST 被拒绝。列表 SHALL 支持业务状态、申请与决定时间闭区间、手机号精确值、注册资料关键字、上级店铺和审批提交异常筛选,并按 `created_at DESC, id DESC` 分页。
列表与详情 SHALL 返回注册业务、审批和企微提交三层状态、完整手机号与完整注册地址、直接上级店铺、审批实例、安全失败摘要、可恢复标记及最近恢复时间;系统 MUST NOT 返回密码哈希、验证码、企微原文、内部事件键或租约字段,并 MUST 批量投影关联店铺和审批状态,避免按申请数量线性增加查询。
#### Scenario: 平台与代理查询范围
- **WHEN** 平台账号或直接上级代理查询代理注册申请
- **THEN** 平台账号返回全部符合筛选条件的申请,代理仅返回 `parent_shop_id` 等于当前店铺的申请,企业账号被拒绝
#### Scenario: 联系资料投影排除凭证
- **WHEN** 有权账号查看注册申请列表或详情
- **THEN** 响应包含完整手机号和注册地址,但不包含密码哈希、验证码、企微原文、内部事件键或租约字段
#### Scenario: 提交异常状态可区分
- **WHEN** 两条待审批申请分别处于审批中和提交失败或结果未知
- **THEN** 列表分别返回企微提交状态及服务端计算的可恢复标记
### Requirement: 代理注册原审批可受控恢复
系统 SHALL 提供 `POST /api/admin/agent-distribution-registrations/{id}/recover-approval`,允许有权平台账号及申请直接上级代理恢复仍待审批的注册申请。恢复 MUST 校验原审批实例及业务关联、上级店铺启用状态和调用方范围,复用原实例与稳定提交事实;不得新建注册记录、审批实例、企业微信审批单、店铺、账号或钱包。结果未知时 MUST 优先确认原提交,已有审批单号时 MUST 同步原审批,明确未受理失败时才可恢复提交事件,终态申请或停用上级 MUST 返回稳定冲突;恢复 MUST 写入脱敏审计。
#### Scenario: 明确失败恢复原提交事实
- **WHEN** 待审批申请的原提交明确失败且确认未被企业微信受理,且上级店铺仍启用
- **THEN** 系统恢复同一提交事实,不新建注册记录、审批实例或业务实体
#### Scenario: 结果未知优先确认
- **WHEN** 待审批申请的原提交结果未知
- **THEN** 系统进入原实例确认流程,不直接创建新的企业微信审批
#### Scenario: 终态或停用上级拒绝恢复
- **WHEN** 注册申请已终态或其直接上级店铺已停用时请求恢复
- **THEN** 系统返回稳定冲突且不改变注册、审批或实体事实
### Requirement: 提现资料资格
代理首次提现前 SHALL 提交企业微信资料资格申请;合同和法人身份证正反面必填,企业代理填写统一社会信用代码、个人代理填写法人身份证号。合同资格主体 MUST 填写统一社会信用代码或身份证号;营业执照、门头照可选,发票仅企业可选且其抬头/统一社会信用代码 MUST 与合同主体一致。审批通过且资料未过期才有效;合同和身份证通过后长期有效,直到代理替换资料、超级管理员作废或代理停用。
@@ -254,6 +294,10 @@
`POST /api/c/v1/agent-distribution-registrations`(代理扫码注册,公开接口)。
### 代理注册申请后台管理
`GET /api/admin/agent-distribution-registrations`(查询代理注册申请列表);`GET /api/admin/agent-distribution-registrations/{id}`(查询代理注册申请详情);`POST /api/admin/agent-distribution-registrations/{id}/recover-approval`(恢复原审批提交)。
### 提现资料资格
`POST /api/admin/shops/{shop_id}/withdrawal-qualifications`(提交提现资料资格);`GET /api/admin/shops/{shop_id}/withdrawal-qualifications`(查询提现资料资格版本);`POST /api/admin/withdrawal-qualifications/{id}/void`(作废提现资料资格)。