# 商城服务协议 — 功能需求说明

> 本文档在《商城服务协议功能需求-草稿》基础上整理，并关联《农资商城web》目录下 **会员管理功能需求》v1.0.1**、**订单管理功能需求》v1.0.1**、**商户管理功能需求》v1.4**、**店铺管理功能需求》v1.3.2**、**首页banner设置功能需求》v1.0.1**、**商城入驻协议功能需求》v1.0**、《关联需求分析.md》v1.2 做边界与流程对齐。  
> 范围：平台侧 **买家服务协议**（用户协议/服务条款）的配置与维护，以及 **C 端用户商城** 会员 **注册、登录** 流程中的协议展示与勾选；不涉及数据库结构、接口定义及技术实现细节。  
> **说明：** 本协议规范 **C 端买家** 使用农资商城的法律告知与承诺，与 **商家入驻协议**（申请成为商户）为 **不同文档、不同触点**；与 **店铺经营账号**（商家后台登录）**无关**。  
> **v1.0：** 单条全平台配置；富文本内容；启用开关；C 端注册/登录须勾选「已阅读并同意」后方可完成对应操作。

---

## 1. 模块定位

### 1.1 业务目标

在农资商城 **平台管理端（Web）** 维护 **商城服务协议** 正文与生效状态，使：

- 运营可随时更新面向 **买家会员** 的服务条款（富文本）；
- 通过 **是否启用** 控制 C 端 **新会员注册** 是否开放（见 §2.1）；
- 用户在 **C 端用户商城** 进行 **手机号注册、会员登录** 时，在协议 **已启用** 条件下须 **阅读并勾选** 当前生效协议后方可完成操作。

**不包含：** 协议多版本审计库、电子签章、按店铺/地区差异化协议；**不** 替代会员资料字段采集（归属 **会员管理** 或 C 端注册页，以产品为准）；**不** 覆盖下单页、支付页二次协议（本期无，若合规另议）。

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

```text
平台运营
    └── 内容管理
            ├── 商城服务协议（本模块）──► C 端会员注册/登录勾选
            ├── 商城入驻协议 v1.0 ──────► C 端「商家入驻」勾选
            └── 首页 Banner 设置 v1.0.1 ─► C 端首页展示

【用户链】
    C 端访客/会员 ── 注册/登录（本协议）──► 浏览/下单 ──► 订单管理履约
            ↑
    平台：会员管理（只读档案、启用会员账号）

【供给链】
    店铺经营账号登录商家端 ── 不校验、不展示本协议
    平台代录入商户 ── 不使用本协议
```

| 关联模块 | 关系 | 边界说明 |
|----------|------|----------|
| **会员管理 v1.0.1** | **强关联** | 注册成功后形成会员档案；本模块 **不维护** 会员列表/启用开关；会员 **是否启用**（M4）与服务协议 **是否启用** 为 **两套开关** |
| **订单管理 v1.0.1** | 间接 | 下单须 **已注册且会员启用**；本模块 **不参与** 订单履约 |
| **商户/店铺/商品** | **无** | 供给链与买家协议 **无数据依赖**；经营账号 **不校验** 是否已注册会员（M7 / 关联分析 §2.1） |
| **商城入驻协议 v1.0** | 并列 | 触点不同：本模块=买家注册/登录；入驻协议=申请成为商户 |
| **首页 Banner v1.0.1** | 并列 | 首页公开浏览；Banner **不要求** 勾选服务协议 |

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

| 关联分析要点 | 本模块 |
|--------------|--------|
| 用户链：会员 → 下单 → 订单 | 本模块位于 **用户链入口**（注册/登录合规环节） |
| 供给链：经营账号 ≠ 会员账号 | 商家后台登录 **不使用** 本协议 |
| 两链并行、状态不级联 | 改服务协议 **不自动** 改商户/店铺/商品/订单/会员启用状态 |
| C 端浏览与下单 | 访客可浏览首页等（见 Banner §8.2）；**注册/登录** 才触发本模块 |

### 1.4 使用端与角色

| 端 | 角色 | 能力 |
|----|------|------|
| **平台管理端** | 平台管理员 | 查看、编辑服务协议；设置是否启用 |
| **C 端（用户商城）** | 访客、买家会员 | **只读** 协议正文；注册/登录前 **必须勾选**（协议已启用时） |
| **平台管理端登录** | 平台运营账号 | **不使用** 本模块（非买家注册场景） |
| **店铺经营管理端** | 店铺经营账号 | **不使用** 本模块 |
| **平台会员管理** | 平台运营 | **不提供** 代注册时的协议勾选（本期平台不代注册，见会员 §13） |

### 1.5 关于草稿「注册/登录前端商城与后台」的定稿理解

| 草稿表述 | 本文档定稿 |
|----------|------------|
| 注册/登录 **前端商城** | **纳入**：C 端用户商城的 **会员注册、会员登录** 流程 |
| **与后台** | **不纳入** 平台管理端、店铺经营管理端等 **管理后台** 的账号登录；草稿若指「用户商城 H5/PC 等多端」，均视为 **同一 C 端用户商城**，规则一致 |
| 勾选「已知晓」 | 定稿为须勾选 **「已阅读并同意《{协议标题}》」** 类文案（见 §6） |

---

## 2. 业务概念

| 概念 | 说明 |
|------|------|
| 商城服务协议 | 平台制定的、面向 **C 端买家/会员** 的服务条款、隐私与用户行为规范等法律文本 |
| 协议标题 | 对外展示名称，如「农资商城用户服务协议」；用于 C 端勾选文案 |
| 协议版本号 | **建议** 展示的版本标识（如 `v1.0`、`2026-05-01`）；便于运营告知变更 |
| 协议内容 | **富文本** 正文；C 端只读展示 |
| 是否启用 | 控制 C 端 **新会员注册** 及 **登录时协议勾选环节** 是否生效（见 §2.1） |
| 勾选确认 | 用户在 C 端勾选「已阅读并同意…」；**未勾选不可完成** 当前注册或登录提交 |
| 当前生效配置 | 全平台 **唯一** 一条服务协议配置（非多协议并行生效） |

### 2.1 「是否启用」语义（定稿）

| 是否启用 | 平台配置页 | C 端会员注册 | C 端会员登录 |
|----------|------------|--------------|--------------|
| **是** | 可编辑并保存；须满足 §5.2 内容校验 | 展示协议；须勾选后方可 **提交注册** | 展示协议；须勾选后方可 **提交登录**（见 §6.2） |
| **否** | 可编辑内容但 **不对 C 端注册/login 勾选环节生效** | **不可完成** 新会员注册：入口关闭或提交时提示「会员注册暂未开放」（文案可统一） | **已注册且会员账号为启用** 的用户 **可正常登录**，**不要求** 勾选本协议（避免协议临时关闭导致老用户无法进入） |

> **定稿：** 禁用后 **已注册会员** 的档案、累计消费、历史订单 **不受影响**；**会员管理·是否启用**（M4）仍独立控制能否登录/下单。

### 2.2 与《商城入驻协议》的区分（定稿）

| 维度 | 商城服务协议（本模块） | 商城入驻协议 v1.0 |
|------|------------------------|-------------------|
| 适用对象 | **买家会员**（用户链） | **意向商家/经营主体**（供给链准入） |
| C 端触点 | 会员 **注册、登录** | **商家入驻** 申请 |
| 勾选时机 | 注册/登录提交前 | 入驻申请提交前 |
| 平台配置菜单 | 内容管理 → 商城服务协议 | 内容管理 → 商城入驻协议 |
| 同时使用 | 用户可先注册会员再申请入驻 → **须分别勾选** 两份协议（若两者均启用） |

### 2.3 与「会员是否启用」的区分（定稿）

| 维度 | 本模块·协议是否启用 | 会员管理·会员是否启用 |
|------|---------------------|------------------------|
| 配置入口 | 内容管理 → 商城服务协议 | 会员管理列表/详情 |
| 作用 | 控制 **注册开放** 及 **登录前协议勾选** | 控制该会员能否 **登录 C 端 / 下单** |
| 禁用协议 | 拦 **新注册**；老会员可登录（§2.1） | — |
| 禁用会员 | — | 该会员 **不可登录、不可下单**（M4） |
| 关系 | **同时满足**：协议允许注册 + 会员启用，才能完成注册后正常使用 |

---

## 3. 功能结构

```text
商城服务协议（平台）
└── 协议配置（单页）
    ├── 查看当前配置（标题、版本、启用状态、内容摘要）
    └── 编辑并保存（标题、版本号、是否启用、富文本内容）
```

> **定稿：** 本期 **不做** 协议历史版本列表、批量删除、排序；仅维护 **当前一条** 全平台配置（与入驻协议、技术实现单例模式一致，实现细节另册）。

---

## 4. 平台端 — 查看配置

### 4.1 展示内容

| 字段 | 说明 |
|------|------|
| 协议标题 | 文本 |
| 协议版本号 | 可选展示；未填时 C 端勾选文案可不带版本号 |
| 是否启用 | 是 / 否 |
| 协议内容 | 富文本渲染预览（与 C 端展示一致或近似） |
| 最后更新时间 | 只读；取最近一次保存成功时间 |
| 最后更新人 | 只读（若有审计字段） |

### 4.2 页面行为

- 进入页面默认加载 **当前** 配置；若无记录则展示空表单引导「首次配置」。
- 提供 **编辑** 入口（或默认可编辑态，以原型为准）。

---

## 5. 平台端 — 编辑并保存

### 5.1 可编辑项

| 字段 | 必填 | 说明 |
|------|:----:|------|
| 协议标题 | 是 | 建议 ≤64 字（展示用，与实现上限可一致为 128，以原型为准）；用于 C 端展示与勾选文案 |
| 协议版本号 | 否 | 建议 ≤32 字；仅展示用 |
| 是否启用 | 是 | 是 / 否 |
| 协议内容 | 条件必填 | **启用=是** 时正文 **必填**；禁用时可空或保留草稿内容 |

### 5.2 提交校验

| 校验 | 失败提示（示例） |
|------|------------------|
| 协议标题为空 | 请输入协议标题 |
| 启用=是 且内容为空 | 启用状态下请填写协议内容 |
| 内容仅空白/HTML 空标签 | 协议内容不能为空 |
| 富文本超长 | 超出平台约定上限时提示（具体上限由产品/原型约定） |

### 5.3 保存成功

- 提示保存成功。
- **立即生效**：C 端后续注册/登录流程读取 **最新** 正文与启用状态（无须单独「发布」步骤）。
- 修改正文 **不追溯** 已注册会员的历史合规认定（见 §9 SP6）。

### 5.4 富文本要求（定稿）

| 项 | 说明 |
|----|------|
| 编辑器能力 | 支持标题、段落、加粗、列表、链接等常用排版（与平台其他富文本场景一致） |
| 图片 | 若支持插入图片，须走平台统一上传规范；**非必须** |
| 安全 | 对外展示须防 XSS（实现层要求，本文不展开） |
| C 端展示 | 按保存后的 HTML/富文本 **原样渲染**（样式以 C 端为准） |

---

## 6. C 端 — 会员注册与登录中的协议

> **前提：** C 端提供 **手机号 + 验证码** 注册及会员登录（见会员管理 §2.1）。本模块仅规定 **协议环节**；验证码、密码、资料完善等 **不在本模块**。

### 6.1 会员注册流程

```text
用户进入「注册」
    → 加载当前服务协议配置
    ├── 未启用 → 提示「会员注册暂未开放」或注册入口不可见；不可提交注册
    └── 已启用
            → 展示协议标题 + 版本号（若有）+ 正文（可滚动/弹窗）
            → 展示勾选框：「我已阅读并同意《{协议标题}》」（可含版本号）
            → 用户填写手机号、验证码、密码等（顺序：建议 **先勾选再填表** 或 **提交前二次校验**，以原型为准）
            → 提交注册
```

| 规则 | 说明 |
|------|------|
| 正文来源 | 仅读取 **当前启用且正文有效** 的配置 |
| 勾选必选 | **未勾选** 提交注册 → 阻断，提示「请先阅读并同意商城服务协议」（文案可统一） |
| 勾选记录 | 本期 **仅** 校验当次请求已勾选；**不要求** 落库勾选时间戳（合规存证单独立项） |
| 注册成功 | 形成会员档案，规则见 **会员管理**；本模块 **不参与** 会员等级、启用默认值设置 |

### 6.2 会员登录流程

```text
用户进入「登录」
    → 加载当前服务协议配置
    ├── 协议未启用 → 不要求勾选；按会员管理 M4 等规则校验账号密码/验证码
    └── 协议已启用
            → 展示协议与勾选框（同 §6.1 文案规则）
            → 用户填写登录凭证
            → 须勾选后方可提交登录
```

| 规则 | 说明 |
|------|------|
| 勾选必选 | **未勾选** 提交登录 → 阻断，提示「请先阅读并同意商城服务协议」 |
| 重新进入 | 每次发起 **登录提交** 均须 **重新勾选**（**不记忆** 上次勾选；与入驻协议 §6.1 一致） |
| 会员已禁用 | 即使已勾选协议，仍按 **M4** 拒绝登录或提示账号已禁用 |
| 访客浏览 | 未登录浏览首页、商品等 **不要求** 勾选（除非产品单独要求全站弹窗，**非本期**） |

### 6.3 注册后再申请商家入驻

```text
已是会员 → 进入「商家入驻」
    → 须另行勾选《商城入驻协议》（若入驻协议已启用）
    → 与服务协议勾选 **相互独立**（SP7）
```

### 6.4 异常与空态

| 场景 | C 端表现 |
|------|----------|
| 启用但内容加载失败 | 提示「协议加载失败，请稍后重试」；不可完成注册/登录提交 |
| 启用但内容为空（配置异常） | 视同未开放或加载失败，不可完成注册/登录提交 |
| 协议未启用且用户未注册 | 不可完成 **新注册** |
| 协议未启用且用户已注册 | 可 **登录**（会员账号须为启用） |

---

## 7. 页面与交互要点（平台）

| 场景 | 要求 |
|------|------|
| 配置页 | 启用开关旁说明：「关闭后 C 端将无法完成新会员注册；已注册会员登录不再要求勾选本协议」 |
| 富文本 | 编辑区与预览区分或提供预览按钮 |
| 保存 | 启用且无内容时 **前端+后端** 双重校验 |
| 首次使用 | 空数据时给出默认标题占位或模板说明（可选） |

---

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

### 8.1 会员管理（平台）

| 项 | 定稿 |
|----|------|
| 平台代注册 | 本期 **不做**（会员 §13）；**无** 平台侧协议勾选 |
| 会员列表/详情 | **不展示** 用户是否曾勾选服务协议 |
| 会员启用/禁用 | **独立** 于协议启用；禁用会员 **不可登录/下单**（M4） |
| 累计消费、订单 | 协议变更 **不自动** 重算 |

### 8.2 订单、商品、店铺

| 项 | 定稿 |
|----|------|
| 下单 | 须 **已登录且会员启用**；**不要求** 下单页再次勾选服务协议（本期） |
| 商品/店铺状态 | 协议变更 **不自动** 改商品上下架、店铺开业状态 |

### 8.3 商户、店铺经营账号

| 项 | 定稿 |
|----|------|
| 经营账号登录 | **不展示、不校验** 本协议 |
| 开店手机号 | **无需** 已是 C 端会员；与服务协议 **无校验关系**（M7） |

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

| 平台操作 | 已注册会员 | 会员启用状态 | 订单/商品/商户 |
|----------|------------|--------------|----------------|
| 修改协议正文 | **不变** 档案 | **不变** | **不变** |
| 关闭协议启用 | **不变** 档案；新注册被拦 | **不变** | **不变** |
| 开启协议启用 | — | — | — |

---

## 9. 业务规则汇总

| 编号 | 规则 |
|------|------|
| **SP1** | 全平台 **唯一** 一条服务协议配置，非店铺/地区维度 |
| **SP2** | 仅 **平台管理端** 可编辑；C 端 **只读** |
| **SP3** | 协议 **已启用** 时，C 端 **注册、登录提交前** 均须勾选同意 |
| **SP4** | 协议 **未启用** 时 **不可完成新会员注册**；**已注册且会员启用** 的用户 **可登录且不要求勾选** |
| **SP5** | **启用=是** 时协议正文 **必填** 且非空 |
| **SP6** | 协议变更 **不追溯** 已注册会员的效力认定（合规另议） |
| **SP7** | 与 **商城入驻协议** 独立；入驻勾选 **不替代** 服务协议 |
| **SP8** | 平台/商家 **管理后台登录** 不要求勾选本协议 |
| **SP9** | 保存后 **即时** 对 C 端生效，无单独发布步骤 |
| **SP10** | 协议变更 **不自动** 修改会员启用、商户/店铺/商品/订单状态 |

---

## 10. 非本期范围

| 项 | 说明 |
|----|------|
| 协议多版本并存、历史对比、回滚 | — |
| 用户勾选时间/IP 存证 | 合规增强，单独立项 |
| 强制阅读时长、滑动到底才能勾选 | — |
| PDF 下载、外链协议 | — |
| 下单/支付页二次勾选服务协议 | — |
| 按会员等级展示不同协议正文 | — |
| 多语言 | — |
| 平台管理端、商家端登录协议 | 属各端账号体系，**非本模块** |

---

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

| 草稿条目 | 本文档处理 |
|----------|------------|
| 注册/登录前端商城勾选已知晓 | §6 定稿为「已阅读并同意」；注册与登录均覆盖 |
| 与后台 | §1.5 定稿 **不含** 管理后台登录 |
| 是否启用 | §2.1、§5、§6 |
| 富文本填写协议内容 | §5、§7 |
| 异常返回 code/msg/data | **不纳入**（实现层） |
| 技术栈 RuoYi/MySQL | **不纳入** |
| 未写：单条配置 | §3 定稿单条全平台 |
| 未写：与会员/入驻/经营账号边界 | §1、§2.2、§2.3、§8 |
| 未写：协议关闭后老用户登录 | §2.1、SP4、§6.2 |

---

## 12. 修订记录

| 版本 | 说明 |
|------|------|
| **v1.0** | 首版定稿：单条配置、富文本、启用、C 端注册/登录勾选；与用户链/供给链及入驻协议边界 |

---

*文档版本：v1.0（定稿）· 关联《会员管理功能需求.md》v1.0.1、《订单管理功能需求.md》v1.0.1、《商户管理功能需求.md》v1.4、《店铺管理功能需求.md》v1.3.2、《首页banner设置功能需求.md》v1.0.1、《商城入驻协议功能需求.md》v1.0、《关联需求分析.md》v1.2 · 草稿《商城服务协议功能需求-草稿.md》保持不变。*
