# 商品服务管理 — 功能需求说明

> 本文档在《商品服务管理功能需求-草稿》基础上整理，并关联《农资商城web》目录下 **商户管理 v1.3.1**、**店铺管理 v1.3.2**、**商品分类 v1.3.1**、**商品管理 v1.3.3** 及《关联需求分析.md》v1.1 做边界与流程对齐。  
> 范围：平台侧 **商品服务主数据** 的维护能力；不涉及数据库结构、接口定义及技术实现细节。  
> **说明：** 「商品服务」指平台统一配置的 **服务承诺/保障标签**（如正品保证、退换说明等），供商家发品时勾选、C 端商品详情展示；**非** 商品 SKU、**非** 店铺维度数据。  
> **v1.0：** 全平台一份服务目录；**默认显示** 控制商家发品时的默认勾选；删除须校验商品引用；批量删除 **整批失败**。  
> **v1.0.1：** 与《商品管理功能需求》v1.3.3 对齐 — **展示快照**、已删服务 C 端不展示、商家再次保存自动剔除（P18～P21）。

---

## 1. 模块定位

### 1.1 业务目标

在农资商城 **平台管理端（Web）** 维护全平台统一的 **商品服务项** 目录，使：

- 运营可配置服务名称、简介、图标及是否在商家发品时 **默认勾选**；
- 商家发布/编辑商品时，从平台目录中 **多选** 服务项（具体表单位置见商品管理/原型）；
- C 端在商品详情等位置展示 **该商品已选** 的服务项（名称、图标、简介）。

**不包含：** 商家端维护服务目录；订单、会员相关能力（全项目 **不考虑会员体系**）。

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

```text
平台运营
    └── 商品服务管理（本模块）── 全平台服务目录
            └── 商品管理（商家发品勾选 + 平台监管只读展示）
                    └── C 端 ── 展示商品已选服务
```

| 关联模块 | 关系 | 边界说明 |
|----------|------|----------|
| 商户管理 v1.3.1 | 无直接操作 | 不维护商品服务 |
| 店铺管理 v1.3.2 | 无直接操作 | 服务 **非** 店铺维度；多店共用同一套平台目录 |
| 商品分类 v1.3.1 | 无直接操作 | 分类归属店铺；与服务目录独立 |
| 商品管理 v1.3.3 | **下游消费** | 发品多选；保存商品时写 **展示快照**；详情/C 端读快照（P18～P21） |
| 订单（未单独成稿） | 无 | 服务项不参与下单校验 |

### 1.3 使用端与角色

| 项目 | 说明 |
|------|------|
| **使用端** | **平台管理端（Web）** — 与草稿一致 |
| 平台管理员 | 服务列表、新增、编辑、删除（单独 / 批量） |
| 商家 / C 端 | **不在本模块维护**；仅 **使用** 平台已配置且未删除的服务项 |

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

| 关联分析要点 | 本模块 |
|--------------|--------|
| 平台端：商户、店铺、商品监管 | 本模块为平台端 **主数据**，位于商品管理 **上游** |
| 商家端：分类、发品 | 商家 **只选** 服务，不建服务 |
| 不考虑会员 | 与全项目 v1.3 一致 |
| 状态不级联 | 增删改服务项 **不自动** 改变商品上下架状态 |

---

## 2. 业务概念

| 概念 | 说明 |
|------|------|
| 商品服务项 | 平台配置的一条服务承诺/标签，含名称、简介、图标等 |
| 服务名称 | 对外展示标题；全平台 **未删除** 记录中 **不可重复** |
| 简介 | 对该服务项的简短说明，用于列表与 C 端展示 |
| 图标 | 服务项配图，用于列表缩略与 C 端展示 |
| 默认显示 | 见第 2.1 节；控制商家发品时的 **默认勾选**，非 C 端强制展示 |
| 排序 | 列表与商家勾选列表中的先后顺序，**数值越小越靠前** |
| 逻辑删除 | 删除后从平台列表消失，商家不可再新选；已关联商品的处理见第 9.5 节 |
| 已关联商品 | 商品档案中 **勾选了该服务项** 且商品 **未删除** 的记录 |

### 2.1 「默认显示」语义（定稿）

| 默认显示 | 商家发品/编辑商品时 | C 端 |
|----------|---------------------|------|
| **是** | 进入商品服务勾选区域时，该项 **默认勾选**；商家可 **取消勾选** | 仅当该商品 **已勾选** 该项时展示 |
| **否** | **不默认勾选**；商家可从可选列表中 **手动勾选** | 同上 |

> **定稿：** 「默认显示」**不表示** C 端全站强制展示；C 端只展示 **商品已选** 的服务项。

### 2.2 展示快照（定稿 · 与商品管理 P18～P21）

| 项 | 定稿 |
|----|------|
| 何时生成 | 商家 **保存商品** 时，对当前勾选的服务项写入 **名称、简介、图标** 快照 |
| 对外展示 | C 端、平台/商家商品详情展示 **快照**，**不随** 本模块事后编辑服务目录自动变更 |
| 平台删除服务项 | C 端 **不展示** 该快照；商家再次保存商品时 **自动剔除** 已删项 |
| 本模块职责 | 仅维护 **当前有效** 目录；快照的读写归属 **商品管理** |

---

## 3. 功能结构

```text
商品服务管理（平台）
├── 服务列表
├── 添加服务
├── 编辑服务
└── 删除服务（单独 / 批量）
```

---

## 4. 服务列表

### 4.1 列表字段

| 字段 | 说明 |
|------|------|
| 服务名称 | 文本 |
| 简介 | 文本；过长可省略展示，详情/编辑页看全文 |
| 图标 | 缩略图 |
| 默认显示 | 是 / 否 |
| 操作 | 编辑、删除 |

> 排序字段用于后台排序，列表 **可不单独展示** 列，编辑页须可维护。

### 4.2 列表行为

- 默认展示全部 **未逻辑删除** 的服务项。
- 默认按 **排序值升序**，相同则按 **创建时间升序**。
- 支持 **勾选多条** 后批量删除（见第 9 节）。
- 支持 **单独删除**（行内操作）。

### 4.3 检索（可选）

草稿未要求；若实现，支持按 **服务名称** 模糊匹配。

---

## 5. 添加服务

### 5.1 填写项

| 字段 | 必填 | 说明 |
|------|:----:|------|
| 服务名称 | 是 | 全平台未删除记录中唯一；建议长度限制由产品/原型约定 |
| 简介 | 是 | 非空 |
| 图标 | 是 | 须上传或选择有效图片；格式、大小与平台其他图片上传规范一致 |
| 默认显示 | 是 | 是 / 否；新建默认建议为 **是**（产品可改默认值） |
| 排序 | 是 | 非负整数；默认 **0** |

### 5.2 提交校验

| 校验 | 失败提示（示例） |
|------|------------------|
| 服务名称空 | 请输入服务名称 |
| 服务名称与未删除记录重复 | 服务名称已存在 |
| 简介空 | 请输入简介 |
| 未上传图标 | 请上传图标 |
| 排序非合法非负整数 | 排序须为非负整数 |

### 5.3 提交成功

- 列表刷新，新增记录按排序规则出现在相应位置。
- **立即生效**：商家端发品可选列表、默认勾选规则 **即时** 包含该项（无须重启等业务动作，具体以实现为准）。

---

## 6. 编辑服务

### 6.1 可编辑项

与「添加服务」相同：**服务名称、简介、图标、默认显示、排序**。

### 6.2 规则

| 规则 | 说明 |
|------|------|
| 名称唯一 | 修改后仍须满足全平台未删除记录中唯一（排除自身） |
| 已关联商品 | **允许编辑** 名称、简介、图标、默认显示、排序；**不自动** 解除商品档案中的勾选记录 |
| 改「默认显示」 | **仅影响此后** 商家 **新打开** 发品/编辑页时的默认勾选；**不追溯** 已保存商品 |
| 改名称/简介/图标 | **不自动** 更新已售商品的 C 端/详情展示（商品侧 **快照** 不变，P19） |

### 6.3 不可编辑 / 只读

| 项 | 说明 |
|----|------|
| 服务 ID / 内部标识 | 系统生成，只读展示（若有） |
| 创建时间等 | 只读 |

---

## 7. 查看与入口

草稿仅列「编辑」「删除」；若产品需要 **查看详情** 弹窗/页，字段与编辑一致、只读即可，**非强制** 单独菜单。

---

## 8. 删除服务

### 8.1 单独删除

```text
点击删除
    → 校验是否存在「已关联商品」（见 8.3）
    ├── 存在 → 阻断，提示须先解除商品上的该服务勾选或处理商品
    └── 不存在 → 二次确认「确认删除该服务？」
            ├── 取消 → 结束
            └── 确认 → 逻辑删除成功，列表不再展示
```

### 8.2 批量删除

```text
勾选一条或多条 → 批量删除
    → 对每条分别做 8.3 校验
    ├── 任一条不通过 → **整批不删**，汇总提示失败原因（如「服务「正品保证」已被商品使用，整批操作已取消」）
    └── 全部通过 → 二次确认 → 逻辑删除所选全部记录
```

**定稿：** 与商品分类批量删除（G9）、商品批量审核（P7）策略一致 — **任一条失败则整批失败**，不部分删除。

### 8.3 何谓「已关联商品」（定稿）

| 场景 | 规则 |
|------|------|
| 阻塞删除 | 存在 **未删除** 商品，且该商品 **已勾选** 本服务项 |
| 不阻塞 | 仅历史已删商品曾勾选；或从未被任何商品勾选 |
| 出售中 / 未上架等状态 | **均算** 关联（只要商品未删且仍勾选该服务） |

### 8.4 删除后影响

| 对象 | 影响 |
|------|------|
| 平台列表 | 不再展示 |
| 商家新发品 | 可选列表中 **不再出现** 该项 |
| 已保存商品 | 商品档案可保留历史勾选记录；**对外展示** 以商品 **快照** 为准 |
| C 端 | **不展示** 已逻辑删除服务项的快照（P20）；其余展示快照内容（P19） |
| 商家再次保存 | 由商品管理规则 **自动剔除** 已删服务项并刷新快照（P21） |

---

## 9. 与商品管理、商家端、C 端的协作

### 9.1 配置顺序（推荐）

```text
【平台】商品服务管理 → 维护服务目录（可先配置常用项）
    ↓
【平台】商户 / 店铺 → 开店（前置，与商品发品相关）
    ↓
【商家】商品分类 → 建二级分类
    ↓
【商家】商品管理 → 发布商品时勾选服务项（多选）
    ↓
【平台】商品管理 → 审核 / 下架等（可查看商品已选服务）
    ↓
【C 端】商品详情 → 展示该商品已选服务
```

### 9.2 商品发布（商家端 · 与商品管理衔接）

```text
商家在当前店铺发布/编辑商品
    → 商品服务区域展示平台全部「未删除」服务项（按排序）
    → 「默认显示 = 是」的项 **默认勾选**，商家可取消
    → 「默认显示 = 否」的项不默认勾选，可手动勾选
    → 保存商品 → 写入勾选结果并生成 **展示快照**（P18）
```

> 商品表单其余字段以《商品管理功能需求》v1.3.3 §10.2、§10.6 及原型为准。

### 9.3 商品管理（平台）

| 场景 | 行为 |
|------|------|
| 商品详情 | **只读** 展示该商品 **展示快照** 中的服务项 |
| 审核 / 下架 | **不因** 服务目录变更而自动通过或驳回 |
| 列表检索 | 草稿未要求按服务项筛选；若后续需要，单独立项 |

### 9.4 C 端展示

| 规则 | 说明 |
|------|------|
| 展示范围 | 商品 **展示快照** 中、且对应服务项 **未逻辑删除** 的项（P19、P20） |
| 展示内容 | 快照中的 **名称、图标**（及简介，以前台 UI 为准） |
| 可售条件 | 服务项 **不参与** 《商品管理》P15 可购校验（库存、开业、分类显示等仍按原规则） |
| 店铺停业 | 与店铺管理一致：可浏览，**禁止下单**；服务展示与否不单独拦截 |

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

| 平台操作 | 商品状态 | 店铺/商户状态 |
|----------|----------|---------------|
| 新增/编辑/删除服务项 | **不变** | **不变** |
| 商户冻结/注销 | — | 不自动删服务项 |
| 店铺停业/开业 | — | 不自动改服务目录 |

---

## 10. 业务规则汇总

| 编号 | 规则 |
|------|------|
| **GS1** | 商品服务目录为 **全平台一份**，**非** 店铺维度 |
| **GS2** | 仅 **平台管理员** 在本模块维护；商家 **不可** 增删改服务目录 |
| **GS3** | 未逻辑删除的服务名称 **全平台唯一** |
| **GS4** | 列表按 **排序升序**，同序按 **创建时间升序** |
| **GS5** | 「默认显示 = 是」表示商家发品时 **默认勾选**，可取消；**不表示** C 端无条件展示 |
| **GS6** | 修改「默认显示」 **不追溯** 已保存商品 |
| **GS7** | 存在 **已关联商品** 的服务项 **不可删除** |
| **GS8** | 批量删除：**任一条校验失败则整批失败**，并汇总原因 |
| **GS9** | 删除服务项 **不自动** 改变商品上下架状态 |
| **GS10** | 删除服务项 **不自动** 取消商品上已有勾选（须商品侧编辑） |
| **GS11** | **不考虑会员体系**；与全项目 v1.3 一致 |
| **GS12** | 商户/店铺/分类状态变更 **不自动** 增删服务目录 |
| **GS13** | 对外展示以商品 **展示快照** 为准；本模块改文案 **不自动** 改已售商品展示（P19） |
| **GS14** | 本模块 **逻辑删除** 的服务项：C 端 **不展示**（P20） |
| **GS15** | 商家再次保存商品时，已删服务项由商品模块 **自动剔除**（P21） |

---

## 11. 页面与交互要点

| 场景 | 要求 |
|------|------|
| 列表 | 图标缩略清晰；简介过长省略 |
| 添加/编辑 | 图标支持预览；默认显示用明确文案（如「商家发品时默认勾选」） |
| 删除 | 二次确认；有关联商品时提示明确、可操作指引 |
| 批量删除 | 失败时 **汇总** 原因，避免只提示第一条 |
| 空列表 | 引导运营「添加服务」 |

---

## 12. 与关联模块的协作流程

### 12.1 开业后完整链路（含本模块）

```text
平台：商户管理 → 入驻、补全经营信息
    ↓
平台：店铺管理 → 开店、配置经营账号
    ↓
平台：商品服务管理 → 配置服务目录（可与分类并行）
    ↓
商家：登录 → 选当前店铺 → 商品分类 → 商品管理 → 勾选服务发品
    ↓
平台：商品管理 → 审核 / 下架
    ↓
C 端：出售中且满足可购条件 → 详情展示服务 **快照**
```

### 12.2 与商品分类、店铺的边界

| 问题 | 定稿 |
|------|------|
| 服务是否按店不同？ | **否**，全平台统一 |
| 分类删除与服务的关联？ | **无**；删分类按分类模块规则，与服务无关 |
| 删店后服务项？ | 平台目录 **不变**；该店商品按删店规则处理 |

---

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

| 草稿条目 | 本文档处理 |
|----------|------------|
| 列表：服务名称、简介、图标、默认显示、操作 | §4 结构化 |
| 添加：名称、简介、图标、默认显示、排序 | §5；补充校验与唯一性 |
| 编辑、单独/批量删除 | §6、§8；补充关联商品校验、整批失败 |
| 异常返回 code/msg/data | **不纳入**（属实现层） |
| 技术栈 RuoYi/MySQL | **不纳入** |
| 未写：全平台维度、与商品/C 端关系 | §1、§9 定稿补充 |
| 未写：删除后已选商品、默认显示语义 | §2.1、§8.4、§6.2 定稿 |
| v1.0.1 | 展示快照、已删不展示、再次保存剔除；GS13～GS15；对齐商品 P18～P21 |

---

## 14. 与商品管理规则对照

| 商品管理 | 本模块 |
|----------|--------|
| P18 保存时写快照 | 提供目录项来源 |
| P19 展示读快照 | 编辑目录不追溯改快照 |
| P20 已删服务 C 端不展示 | 逻辑删除后生效 |
| P21 再次保存自动剔除 | 删服务后商家保存商品时清理 |

---

## 15. 非本期范围

| 项 | 说明 |
|----|------|
| 商家端维护服务目录 | 仅平台维护 |
| 服务分组、多语言 | — |
| 恢复已逻辑删除的服务 | — |
| 按服务项检索全平台商品 | 列表增强，后续版本 |
| 订单、物流类服务履约 | 属订单/履约模块 |
| 会员专属服务标签 | 全项目不考虑会员 |

---

*文档版本：v1.0.1（定稿）· 关联《商户管理功能需求.md》v1.3.1、《店铺管理功能需求.md》v1.3.2、《商品分类功能需求.md》v1.3.1、《商品管理功能需求.md》v1.3.3、《商品服务管理技术方案.md》v1.0.1、《商品服务管理测试用例.md》v1.0、《关联需求分析.md》v1.1 · 草稿《商品服务管理功能需求-草稿.md》保持不变。*
