# 商户入驻审核 — 功能需求说明

> **依据：** 《商户入驻审核功能需求.md》v1.1  
> **关联：** **商户管理功能需求》v1.5**、**店铺管理功能需求》v1.3.5**、**商城入驻协议功能需求》v1.0** …  
> 范围：**平台管理端** 对 **C 端用户主动发起** 的**商户入驻** **申请** 进行列表监管、检索、查看详情、**审核通过/驳回** 及结果通知；**不涉及** 数据库结构、接口定义及技术实现细节。  
> **说明：** 本模块处理的是 **入驻申请单** 及其审核状态；**商户认证状态**（正常/冻结/注销）在审核通过后由 **商户管理** 维护，二者 **不混用同一套状态枚举**。  
> **v1.0：** 申请列表/检索/详情；详情内审核通过/驳回；驳回原因必填；通过后落库商户与首家店铺；站内消息通知；平台代录入 **不经** 本模块。  
> **v1.1：** C 端移动端完整字段校验；**审核通过 → 公示 → 完成入驻** 三阶段；平台代录入仍不经本模块。  
> **v1.0.2：** 产品模块定名统一为 **商户入驻审核**（菜单与文档一致）。

---

## 1. 模块定位

### 1.1 业务目标

在农资商城 **平台管理端（Web）** 为运营/审核人员提供 **商户入驻审核工作台**，使：

- 集中处理 C 端提交的 **待审核** 入驻申请；
- 按申请状态、会员名称等 **检索** 历史申请；
- **查看详情** 核对主体资质、商户经营信息、拟开设店铺信息；
- **审核通过** 后，在 **商户管理**、**店铺管理** 中 **自动建档** 首家店铺，并通知申请人；
- **审核驳回** 时填写原因并通知申请人，便于修改后 **重新申请**。

**不包含（本模块菜单内）：** 平台端「添加商户」表单、商户认证状态日常维护、店铺后续增删改、商品审核、会员注册页、入驻协议正文编辑（属 **内容管理 · 商城入驻协议**）。

### 1.2 与《商户管理》《店铺管理》的关系（定稿）

| 维度 | 商户入驻审核（本模块） | 商户管理 v1.5 | 店铺管理 v1.3.5 |
|------|-------------------|---------------|-----------------|
| 对象 | **入驻申请单** | **商户主体**（已准入） | **店铺**（已开店） |
| 入口 | C 端自助申请 | 平台 **添加商户** | 平台 **添加店铺** |
| 审核 | **本模块** 审核申请 | 平台新增 **无** 待审 | 开店选已准入商户 |
| 通过后 | 公示完成触发建档 | 新增商户记录 | 新增 **首家** 店铺 |

> **定稿：** **平台方主动添加的商户**（商户管理 · 添加商户）**不生成** 入驻申请、**不进入** 本模块列表；**仅** C 端用户主动发起的入驻须平台审核（对齐草稿第 5 条）。

### 1.3 在业务链中的位置

```text
【用户链】C 端会员（可选）注册/登录
    → 勾选《商城入驻协议》（内容管理）
    → C 端填写入驻申请（主体 + 商户经营 + 首家店铺）
            ↓
    【本模块 · 平台】商户入驻审核
            ├── 待审核 → 审核通过 → 商户管理（认证正常）+ 店铺管理（首家店）
            └── 待审核 → 审核驳回 → 申请结束（可重新发起新申请）
            ↓
【供给链】商家经营账号登录 → 商品分类/发品 → 商品审核 → C 端可购 → 订单
```

| 关联模块 | 关系 | 边界说明 |
|----------|------|----------|
| **商城入驻协议 v1.0** | **前置（C 端）** | 提交申请前须勾选协议；本模块 **不** 编辑协议 |
| **商户管理 v1.4** | **下游落库** | 通过后数据语义对齐「主体资质 + 经营信息」；平台代录入 **不经** 本模块 |
| **店铺管理 v1.3.2** | **下游落库** | 通过后创建 **申请中填写的首家店铺**；经营账号规则见 §9 |
| **会员管理 v1.0.1** | **申请人身份** | 列表展示 **申请会员名称**；通常绑定已登录会员 |
| **商城服务协议 v1.0** | **无** | 买家注册/登录协议；**不替代** 入驻协议 |
| **商品管理/商品审核** | **无直接** | 须先有店后方可发品；入驻审核 **不** 审商品 |
| **订单管理** | **无** | 审核 **不** 创建订单 |

### 1.4 与《关联需求分析》的对应

| 关联分析要点 | 本模块 |
|--------------|--------|
| 供给链起点 | 将标准流程「平台添加商户」扩展为 **C 端自助 + 平台审核** 并行路径 |
| 双路径开店 | 路径 A：平台商户管理 → 编辑补全 → 开店；路径 B：C 端申请 → **本模块审核** → 自动商户+首店 |
| 账号不混用 | 申请人多为 **会员**；通过后创建 **经营账号**（非会员登录商家端） |
| 状态不级联 | 改入驻协议、冻结其他商户 **不自动** 改待审申请状态 |

### 1.5 使用端与角色

| 端 | 角色 | 能力 |
|----|------|------|
| **平台管理端** | 平台管理员（及被授予入驻审核权限的角色） | 列表、检索、详情、审核通过、审核驳回 |
| **C 端（用户商城）** | 意向商家/会员 | 提交入驻申请、查看本人申请结果（若产品提供）；**不使用** 本模块菜单 |
| **平台 · 商户管理** | 平台运营 | 代录入商户 **不经** 审核；维护已通过商户 |
| **店铺经营管理端** | 商家 | 审核通过后方可用 **经营账号** 登录 |

---

## 2. 业务概念

| 概念 | 说明 |
|------|------|
| 入驻申请 | C 端用户一次提交的 **商户入驻申请单**；含主体类型、资质、商户经营信息、首家店铺信息 |
| 申请状态 | **待审核** / **公示中** / **审核通过（已完成入驻）** / **审核未通过**（本模块专用，见 §3） |
| 申请信息 | 列表摘要：个人展示 **姓名**；企业展示 **企业名称** |
| 申请会员名称 | 提交申请时绑定的 **C 端会员名称**（`member_code`）；用于列表展示与检索 |
| 联系人姓名/电话 | 申请中填写的商户侧联系人（来自 **商户经营信息**） |
| 申请时间 | 用户 **首次成功提交** 申请的时间 |
| 审核通过 | 申请状态变为 **审核通过**；触发商户、首家店铺建档 |
| 审核未通过（驳回） | 须填 **拒绝原因**；通知申请人；**不** 创建商户/店铺 |
| 站内消息 | 审核结果通知渠道；申请人可在 C 端或消息中心查看（文案见 §8、§9） |
| 平台代录入 | 平台在 **商户管理** 直接新增商户；**无** 申请单、**无** 本模块审核 |

### 2.1 申请状态与商户认证状态区分（定稿）

| 状态体系 | 取值 | 维护模块 |
|----------|------|----------|
| **申请状态**（本模块） | 待审核、审核通过、审核未通过 | 入驻审核 |
| **商户认证状态** | 正常、已冻结、已注销 | 商户管理（**仅** 审核通过后存在） |

> **定稿：** 待审核/被驳回的申请 **不** 在「商户管理」列表中作为正式商户展示；**审核通过** 后新建商户，认证状态 **直接为正常**（与平台代录入一致，见商户管理 R3）。

### 2.2 C 端提交前置（定稿）

| 前置 | 说明 |
|------|------|
| 《商城入驻协议》 | 须 **已启用** 且用户 **已勾选同意** 后方可提交（AP3、AP4）；协议关闭仅拦 **新申请**，已提交待审 **不受影响** |
| 《商城服务协议》 | 若用户为会员，注册/登录时已勾选；**不替代** 入驻协议 |
| 登录身份 | **建议定稿：** 须 **已登录会员** 方可提交（与「申请会员名称」一致）；若产品允许游客申请，须单独约定会员名称展示为「—」及通过后账号绑定规则 |

---

## 3. 申请状态与流转

```text
【C 端】填写完整资料 → 勾选入驻协议 → 提交
    │
    └──►【待审核】
              │
              ├── 审核通过 ──►【公示中】（默认 7 天，可配置）
              │         └── 公示期满 / 手动完成 ──►【审核通过】
              │                   └── 商户 + 首家店铺建档 + 绑定会员经营账号
              │
              └── 审核驳回 ──►【审核未通过】
```

| 本模块操作 | 前置申请状态 | 结果申请状态 | 副作用 |
|------------|--------------|--------------|--------|
| 审核通过 | 待审核 | **公示中** | 写入公示起止时间；站内消息「公示中」；**不** 立即建档 |
| 完成公示 | 公示中 | **已完成入驻** | 新增商户 + 首家店铺 + 绑会员经营账号 + 消息 |
| 审核驳回 | 待审核 | 审核未通过 | 通知；**不** 新增商户/店铺 |

**不可执行：**

| 误操作 | 处理 |
|--------|------|
| 对非待审核执行通过/驳回 | **阻断**并提示 |
| 对已通过的申请再次驳回 | **阻断**（只读） |
| 平台在商户管理代录入 | **不经过** 本模块 |

### 3.1 重新申请（定稿）

| 规则 | 说明 |
|------|------|
| 驳回后 | 用户可 **重新发起** 新的入驻申请（新申请单、新申请时间） |
| 待审核重复提交 | 同一会员 **存在待审核或公示中** 申请时，**不可** 再提交 |
| 已通过 | 该会员/主体已入驻的，**不可** 重复提交相同主体入驻（证件号/统一社会信用代码唯一性，见 §12） |

---

## 4. 功能结构

```text
商户入驻审核（平台）
├── 入驻申请列表（含状态 Tab/筛选）
├── 高级检索
├── 查看详情（全部申请状态）
│   ├── 审核通过（仅待审核 → 公示中）
│   ├── 完成公示（仅公示中且期满，或运营手动）
│   └── 审核驳回（仅待审核，须填原因）
└── （系统）审核结果站内消息
```

> 建议默认进入或提供快捷筛选：**待审核**，便于审核工作台。

---

## 5. 入驻申请列表

### 5.1 列表字段（定稿 · 对齐草稿）

| 字段 | 说明 |
|------|------|
| 申请信息 | **个人：** 展示「个人」+ **姓名**；**企业：** 展示「企业」+ **企业名称** |
| 申请会员名称 | 提交时绑定的会员名称（`member_code`）；未绑定会员时展示 **—** |
| 联系人姓名 | 申请中商户经营信息的联系人姓名 |
| 联系人电话 | 申请中联系人手机 |
| 申请状态 | 待审核 / **公示中** / 已完成入驻 / 审核未通过 |
| 公示时间 | 公示中/已完成时展示起止时间（`publicity_start_time`～`publicity_end_time`） |
| 申请时间 | 首次提交成功时间 |
| 操作 | 见 §5.3 |

**建议扩展列（非草稿必列）：** 主体类型图标、审核人、审核时间（已通过/已驳回）。

### 5.2 列表行为

| 规则 | 说明 |
|------|------|
| 分页 | 支持 |
| 默认排序 | **待审核** 建议按申请时间 **升序**（先报先审）；其他状态按申请时间或审核时间 **降序** |
| 状态筛选 | **全部**、**待审核**、**公示中**、**已完成入驻**、**审核未通过** |
| 数据范围 | 仅 **C 端用户发起** 的申请；**不含** 平台代录入商户 |

### 5.3 行操作（按申请状态）

| 申请状态 | 可用操作 |
|----------|----------|
| 待审核 | **查看详情**（详情内可审核通过/驳回） |
| 公示中 | **查看详情**；公示期满后可 **完成公示** |
| 已完成入驻 | **查看详情**（只读） |
| 审核未通过 | **查看详情**（只读；展示拒绝原因） |

> **定稿：** 审核通过/驳回 **在详情页** 操作（对齐草稿）；列表行 **可不** 提供快捷审核按钮。

---

## 6. 高级检索

| 检索项 | 规则 |
|--------|------|
| 关键词 | 模糊匹配 **申请会员名称**（`member_code`）；可选扩展匹配联系人姓名、手机号（与产品统一） |
| 申请状态 | 待审核 / 审核通过 / 审核未通过；不选表示 **全部** |

| 行为 | 说明 |
|------|------|
| 查询 | 条件 **与** 组合；结果分页 |
| 重置 | 清空条件并恢复默认列表 |

---

## 7. 查看详情

> 对齐草稿：全部申请均可查看详情。

### 7.1 展示分区

| 分区 | 内容 |
|------|------|
| **基础信息** | 申请单标识、申请状态、申请时间、主体类型（个人/企业）、申请会员名称、审核时间/审核人（若已审）、**拒绝原因**（仅审核未通过） |
| **主体资质 — 个人** | 与《商户管理》个人入驻字段 **一致**（证件、姓名、证件照等） |
| **主体资质 — 企业** | **企业信息** + **法定代表人信息**；字段与商户管理企业入驻 **一致** |
| **商户信息** | 商户经营信息：商户名称、客服电话、经营地址、联系人、结算银行等；与商户管理「编辑商户 · 经营信息」字段 **一致** |
| **店铺信息** | 首家店铺：**店铺名称**、**店铺头像**、**商家电话** 等；与店铺管理「添加店铺」中对应字段 **一致** |
| **操作区** | 与列表能力 **一致**：待审核展示「审核通过」「审核驳回」；已审只读 |

### 7.2 边界

- 详情 **不提供** 修改申请资料（变更须 C 端重新申请或走运营线下流程）。
- 详情 **不** 维护商户认证状态（冻结/注销在 **商户管理**）。
- 审核通过前，**不** 展示「已绑定店铺数量」等仅存在于正式商户上的统计（或展示为 0/—）。

---

## 8. 审核通过（进入公示）

### 8.1 前置与校验

| 校验 | 失败提示（示例） |
|------|------------------|
| 申请状态须为 **待审核** | 当前申请已处理，无法重复审核 |
| C 端表单完整 | 由 `EntryApplyFormValidator` 在提交时已校验；审核前可人工复核 |
| 主体唯一性 | 个人：证件号；企业：统一社会信用代码 |
| 商户/店铺名称唯一 | 与商户管理、店铺管理一致 |

### 8.2 通过后业务结果（v1.1 · 非立即建档）

| 项 | 说明 |
|----|------|
| 申请状态 | 更新为 **公示中**（`apply_status=3`） |
| 公示期 | 默认 **7 天**（配置项 `agri.merchant.entry.publicityDays`） |
| 落库 | 写入 `publicity_start_time`、`publicity_end_time`；**不** 创建商户/店铺 |
| 通知 | 站内消息「审核通过，公示中」 |

### 8.3 完成公示（建档）

| 项 | 说明 |
|----|------|
| 触发 | 公示期满 **定时任务** 自动完成，或运营 **手动完成公示** |
| 申请状态 | **已完成入驻**（`apply_status=1`） |
| 商户/店铺 | 写入 `biz_merchant`、`biz_shop`（字段来自 `form_json`） |
| 经营账号 | 绑定申请会员（`biz_merchant_account` + 同步 `sys_user`） |
| 回填 | `merchant_id`、`shop_id` 写入申请单 |
| 通知 | 站内消息「入驻完成」 |

### 8.4 审核通过流程

```text
运营打开待审详情 → 核对信息 → 「审核通过」
    → 申请=公示中 → 消息
    → （公示期）→ 自动/手动完成公示
    → 创建商户 + 首店 + 经营账号 → 申请=已完成入驻
```

---

## 9. 审核驳回

### 9.1 规则

| 规则 | 说明 |
|------|------|
| 前置状态 | 仅 **待审核** |
| 拒绝原因 | **必填**；申请人可见（详情、消息、C 端我的申请等） |
| 结果状态 | **审核未通过** |
| 落库 | **不** 创建商户、**不** 创建店铺 |
| 通知 | **站内消息** 含拒绝原因摘要 |

### 9.2 驳回流程

```text
待审详情 → 「审核驳回」→ 填写拒绝原因 → 确认
    → 校验原因非空
    → 申请=审核未通过 → 站内消息
```

---

## 10. 两种入驻路径对比（定稿）

| 路径 | 触发方 | 入驻协议 | 本模块 | 通过后商户/店铺 |
|------|--------|----------|--------|-----------------|
| **A · C 端自助** | 用户/会员 | **须勾选** | **须审核+公示** | 公示完成后 **自动** 建档 |
| **B · 平台代录入** | 平台运营 | **不要求**（AP8） | **不经过** | 商户管理直接新增；店铺管理 **另行** 开店 |

```text
路径 A：C 端 → 入驻协议 → 申请 →【待审】→【公示】→ 商户 + 首店 + 绑会员账号
路径 B：平台 → 商户管理（仅主体）→ 编辑经营信息 → 店铺管理开店
```

---

## 11. 与关联模块的协作

### 11.1 商城入驻协议

| 项 | 定稿 |
|----|------|
| C 端提交 | 须勾选当前启用协议 |
| 本模块 | **不参与** 协议编辑；审核 **不校验** 协议是否事后变更 |
| 协议关闭 | 仅阻止 **新** C 端提交；**待审核** 申请仍须处理 |

### 11.2 商户管理

| 项 | 定稿 |
|----|------|
| 字段对齐 | 申请中主体资质、经营信息字段 **与** 商户管理定义一致，避免通过后数据缺口 |
| 认证状态 | 通过后为 **正常**；冻结/注销在商户管理操作 |
| 代录入 | **不出现** 在本模块列表 |
| 证件号/信用代码 | 通过后 **不可改**（商户管理 R11） |

### 11.3 店铺管理

| 项 | 定稿 |
|----|------|
| 首家店 | 审核通过 **自动创建**；不必再手工「添加店铺」完成首店（若业务允许多店，第二家起仍走店铺管理） |
| 经营账号 | 与开店规则一致：登录名、管理员姓名、密码；**会员路径** 与商户管理 6.7.2 对齐 |
| 店铺设置 | 新店默认 **商品默认审核通过 = 关闭**（与店铺管理 S11 一致），除非申请或策略另有约定 |

### 11.4 会员管理

| 项 | 定稿 |
|----|------|
| 申请人 | 列表展示 **申请会员名称**；检索按会员名称 |
| 绑定 | 完成公示后绑定申请会员；规则见商户管理 **§6.7.2** |
| 买家订单 | 会员下单 **不受** 入驻审核进度影响（除非产品单独限制） |

### 11.5 商品 / 订单

| 项 | 定稿 |
|----|------|
| 发品 | 须审核通过且商家 **经营账号登录**、店铺 **开业** 后方可发品 |
| 订单 | 审核 **不** 创建或关闭订单 |

### 11.6 状态联动（不级联）

| 事件 | 待审/历史申请 | 已通过商户/店铺 |
|------|---------------|-----------------|
| 修改入驻协议 | **不变** | **不变** |
| 冻结其他商户 | **不变** | **不变** |
| 平台驳回后用户重提 | **新申请单** | — |

---

## 12. 业务规则汇总

| 编号 | 规则 |
|------|------|
| **EA1** | 仅 **C 端用户主动发起** 的申请进入本模块；平台代录入 **不经** 审核 |
| **EA2** | 申请状态：**待审核**、**公示中**、**已完成入驻**、**审核未通过**；与商户认证状态 **分离** |
| **EA3** | **仅待审核** 可执行通过/驳回 |
| **EA4** | 驳回 **须填写** 拒绝原因 |
| **EA5** | 审核通过 → **进入公示**（默认 7 天）；公示期满 → 自动新增 **商户** + **首家店铺** + **经营账号** + 通知 |
| **EA5a** | 公示完成前 **不** 创建商户/店铺 |
| **EA6** | 审核驳回 → **不** 新增商户/店铺 + 通知含原因 |
| **EA7** | 公示完成后商户、店铺字段语义 **对齐** 商户管理、店铺管理 |
| **EA8** | C 端提交前须满足 **商城入驻协议** 勾选与启用规则；**完整字段** 校验 |
| **EA9** | 列表支持状态 **全部/待审/公示中/已完成/未通过**；默认建议 **待审核** |
| **EA10** | 关键词检索 **申请会员名称**（可扩展联系人） |
| **EA11** | **待审核或公示中** 期间 **同一会员** 不可重复提交新申请 |
| **EA12** | 主体关键标识在待审+公示中+已入驻范围 **唯一** |
| **EA13** | 驳回后可 **重新申请**（新单）；已通过不可重复入驻同一主体 |
| **EA14** | 审核结果通过 **站内消息** 通知申请人 |
| **EA15** | 本模块 **不** 审核商品、**不** 替代商户日常认证管理 |

---

## 13. 页面与交互要点

| 场景 | 要求 |
|------|------|
| 待审核 Tab/角标 | 建议展示待审条数 |
| 详情审核 | 通过建议 **二次确认**；驳回弹窗原因 **必填**、字数上限（如 200 字，以原型为准） |
| 权限 | 无审核权限的角色 **不可** 通过/驳回 |
| 空态 | 待审核为空时提示「暂无待审核入驻申请」 |
| 已通过/公示中/已驳回 | 详情只读（公示中展示起止时间）；驳回须 **醒目展示** 拒绝原因 |

---

## 14. C 端移动端填报字段（v1.1）

> 提交时 **全部必填**（标注选填除外）。字段与库列对照见 [`sql/biz_merchant_entry_form_json说明.sql`](../../../../sql/biz_merchant_entry_form_json说明.sql)。

### 14.1 个人主体

| 分区 | 必填字段 |
|------|----------|
| 个人信息（subject） | 姓名、居住地址、性别、出生日期、证件类型/号码/有效期、证件照正反面、联系人姓名/手机/邮箱、开户银行/支行/银行账号 |
| 经营信息（biz） | 商户名称、客服电话、经营地址省市区、详细地址 |
| 店铺（shop） | 店铺名称、联系电话、Logo；简介选填 |

### 14.2 企业主体

| 分区 | 必填字段 |
|------|----------|
| 企业信息（subject） | 企业名称、注册地址省市区、详细地址、经营范围、社会信用代码、营业期限 |
| 法人信息（subject） | 同个人个人信息字段 + **对公银行账号**、**开户许可证** |
| 经营信息（biz） | 经营地址省市区、详细地址、营业执照（不含商户名称/客服电话） |
| 店铺（shop） | 同 §14.1 |

---

## 15. 数据库字段说明

| 表 | 权威 SQL |
|----|----------|
| `biz_merchant_entry_apply` | [`sql/biz_merchant_entry_apply.sql`](../../../../sql/biz_merchant_entry_apply.sql) |
| `biz_merchant` | [`sql/biz_merchant.sql`](../../../../sql/biz_merchant.sql) |
| `biz_shop` / `biz_merchant_account` | [`sql/biz_shop.sql`](../../../../sql/biz_shop.sql) |

**`apply_status`：** `0`待审核 `1`已完成入驻 `2`审核未通过 `3`公示中

---

## 16. 非本期范围

| 项 | 说明 |
|----|------|
| 入驻申请批量审核 | — |
| 多级审批、派单、审核 SLA | — |
| 申请资料在线修改（待审中） | 建议驳回后重提；或单独立项 |
| 短信/邮件通知 | 本期仅 **站内消息** |
| 申请单导出 | — |
| 平台在详情中代改申请字段 | — |
| 游客免会员入驻 | 若需要，单独立项并修订 EA8/会员名称规则 |

---

## 17. 草稿对照与修订说明

| 草稿条目 | 本文档处理 |
|----------|------------|
| 申请状态四种（全部+三态） | §3、§5 |
| 列表七列 | §5.1 |
| 关键词检索会员名称 | §6 |
| 详情四分区 + 审核操作 | §7、§8、§9 |
| 通过后进入公示、公示完成建档 | §8 |
| 站内消息 | §8.2、§9、EA14 |
| 用户发起须审、平台添加不须审 | §1.2、§10、EA1 |
| 异常返回 code/msg/data | **不纳入** |
| 技术栈 RuoYi/MySQL | **不纳入** |
| 未写：与入驻协议/商户管理边界 | §1、§10、§11 |
| 未写：驳回后重提、重复申请 | §3.1、EA11～EA13 |

---

## 18. 修订记录

| 版本 | 说明 |
|------|------|
| **v1.0** | 首版定稿：C 端入驻申请审核；列表/检索/详情；通过与自动建档；驳回与站内消息；双路径与关联模块边界 |
| **v1.0.1** | 曾用名「店铺入驻审核」；已恢复为 **商户入驻审核** |
| **v1.0.2** | 定稿同步：模块名、规则 **EA1～EA15**、接口 `merchantEntryApply` |
| **v1.1** | C 端完整字段校验；审核→公示→完成入驻；§14/§15 与 SQL 对齐 |

---

*文档版本：v1.1（定稿）· 关联《商户管理功能需求.md》v1.5、《店铺管理功能需求.md》v1.3.5、《商户入驻审核技术方案.md》v1.1*
