# 员工管理 — 功能需求说明

> 本文档在《员工管理功能需求-草稿》基础上整理，并关联 **《关联需求分析.md》**、**《店铺设置功能需求》**、**《店铺管理功能需求》**、**《账号管理功能需求》**、**《管理员列表功能需求》**（平台）及商家侧 **商品分类 / 商品管理** 做边界对齐。  
> 范围：**店铺经营管理端 · 账号管理** 对 **当前店铺下员工（子管理员）** 的列表、检索、创建、维护、改密与删除。  
> **说明：** 本文档 **仅描述功能需求与业务规则**；不涉及数据库结构、接口定义及技术实现细节。  
> **v1.2：** 对齐草稿 §5～§7：列表按 **当前店铺**（`X-Shop-Id`）展示该店员工；角色仅选 **当前店铺角色**；补店铺上下文协作规则。  
> **v1.1：** 对齐草稿新增 §7（角色仅选本商户角色）；去除实现层表述；补全账号体系四维定位与登录协作链。

---

## 1. 模块定位

### 1.1 业务目标

在农资商城 **店铺经营管理端（Web）· 账号管理** 提供 **员工（子管理员）** 管理能力，使 **商户经营账号** 能够：

- 浏览、检索 **当前店铺下** 全部 **有效员工账号**；
- **创建** 员工账号，配置资料、头像、停用状态，并 **绑定当前店铺角色**；
- **编辑**、**修改账号**、**修改密码**、**删除** 员工账号；
- 员工人数受 **平台全局子管理员上限** 约束。

**不包含（本期或与它模块分工）：**

| 能力 | 说明 |
|------|------|
| **商户经营账号开户** | 由 **平台 · 商户入驻 / 店铺管理** 创建，**非** 本模块职责 |
| **平台端账号统览** | 见 **平台 · 权限管理 · 账号管理** |
| **平台管理员维护** | 见 **平台 · 权限管理 · 管理员列表** |
| **商户端角色定义** | 见 **店铺后台 · 账号管理 · 角色管理**（待建设）；本模块 **选用并绑定** 角色 |
| **经营账号自助资料/改密** | 见 **店铺后台 · 账号管理 · 账号设置**（待建设） |
| **C 端会员** | 员工为 **商家端平台账号**，**不校验** C 端会员注册 |

### 1.2 与草稿的对应关系

| 草稿条目 | 定稿规则 |
|----------|----------|
| §1 创建员工 | 员工名称、手机号、邮箱、头像、是否停用、绑定角色；支持编辑、删除 |
| §2 列表字段 | 员工账号、员工名称、手机号、邮箱、状态、操作 |
| §3 高级检索 | **仅** 按员工名称模糊检索 |
| §4 操作 | （1）修改账号：名称/手机/邮箱；（2）修改密码：新密码 + 确认；（3）删除账号 |
| §5 数据范围 | 当前登录账号 **所属店铺 ID**（请求头 `X-Shop-Id`）下，通过 `sys_user` 与 `biz_merchant_account` 内连接查询 **该店铺员工列表** |
| §6 店铺上下文 | 登录时按 `user_id` 查 `biz_merchant_account` 得所属店铺 ID 写入 header；**商户管理员** 默认为该商户 **最先创建** 的店铺 ID；切换店铺后更新 header 中的店铺 ID |
| §7 角色范围 | **只能** 选择 **当前店铺已有** 的商户端角色 |
| §8 异常返回 | 统一 `code`、`msg`、`data` |
| §9 技术栈 | **不纳入** 本文档 |

### 1.3 在账号体系中的位置

依据 **《关联需求分析.md》§9** 与 **《管理员列表功能需求》§1.3**，四类账号分工如下：

| 账号类型 | 登录端 | 维护入口 | 与本模块关系 |
|----------|--------|----------|--------------|
| **平台管理员** | 平台管理端 | 管理员列表 | **无关** |
| **商户经营账号** | 商家端 | 平台 · 店铺账号管理 | **不在列表**；**不可** 在本模块创建/删除 |
| **员工（子管理员）** | 商家端 | **本模块** | **核心管理对象** |
| **C 端会员** | 用户商城 | 会员管理 | **无关** |

### 1.4 使用端与角色

| 端 | 可操作角色 | 能力 |
|----|------------|------|
| **店铺经营管理端** | **商户经营账号** | 本模块全部能力 |
| **店铺经营管理端** | 员工（子管理员） | **默认不可** 管理其他员工；是否开放由 **角色管理** 定义 |
| **平台管理端** | 平台管理员 | **不** 使用本模块 |
| **C 端** | — | **不可** 访问 |

### 1.5 账号类型与列表范围

| 账号类型 | 创建入口 | 出现在列表 | 本模块删除 | 本模块创建 |
|----------|----------|:----------:|:----------:|:----------:|
| **商户经营账号** | 平台入驻/开店 | ✗ | ✗ | ✗ |
| **员工（子管理员）** | **本模块** | ✓ | ✓ | ✓ |
| 平台管理员、C 端会员等 | 各业务模块 | ✗ | ✗ | ✗ |

> **列表范围（对齐草稿 §5）：** 展示 **当前店铺**（`X-Shop-Id`）下、**已建立有效商户绑定且 shop_id 匹配** 的全部 **员工**；**不含** 商户经营账号、无绑定用户及其他店铺员工。  
> **字段命名：** 列表沿用草稿「员工账号 / 员工名称」列名。

---

## 2. 关联需求分析

### 2.1 与《关联需求分析》— 账号体系 §9

| 关联点 | 定稿 |
|--------|------|
| **§9.1 商户经营账号** | 一商户一套、多店共用；平台维护；登录后须 **切换当前店铺** 再操作分类/商品 |
| **§9.2 子管理员** | 人数上限在 **店铺设置**；人员增删与权限分配由 **商家端账号模块**（本模块）落地 |
| **供给链共性** | 商家登录 **不校验** C 端会员注册 |
| **本模块定位** | **子管理员 CRUD + 角色绑定** 的商户端实现 |

### 2.2 与《店铺设置》— 子管理员上限

| 项 | 定稿 |
|----|------|
| 配置方 | **平台** 在 **店铺设置** 维护 **全平台唯一**「最大子管理员数量」 |
| 默认值 | **5**；取值 **1～99**（规则 **SS5**） |
| 生效范围 | **所有商户共用同一上限**（非逐店、非逐商户差异化） |
| 本模块消费 | **创建 / 启用** 员工前：当前商户 **已占用员工名额** 须 **＜** 当前全局上限 |
| 不计入上限 | **商户经营账号** **不计入** |
| 平台下调上限 | **不自动删除** 已有员工；仅 **阻止新建与启用**，直至人数回到上限以内 |

### 2.3 与《店铺管理》— 商户经营账号

| 项 | 定稿 |
|----|------|
| 创建时机 | **商户入驻 / 首家店** 时由平台绑定 |
| 与本模块 | 经营账号 **可在列表展示**；**不可** 创建第二条或删除 |
| 资料/改密 | 由 **平台 · 店铺账号管理** 或 **商家端 · 账号设置** 维护 |
| 改登录名影响 | 同商户下 **全部店铺** 经营账号展示 **一并更新**（平台规则） |
| 员工改手机号 | **仅影响该员工**，**不同步** 多店经营账号 |

### 2.4 与平台《账号管理》— 边界

| 维度 | 平台 · 账号管理 | 本模块 · 员工管理 |
|------|-----------------|-------------------|
| 使用端 | 平台管理端 | 店铺经营管理端 |
| 数据范围 | **全平台** 有效账号 | **当前商户** 商户侧绑定账号 |
| 创建 | **不含** 员工开户 | **可创建员工** |
| 删除经营账号 | 须满足平台 **店铺数=0** 等规则 | **不可** 删除经营账号 |
| 协作 | 员工作为有效用户 **可被平台检索** | 员工 **增删改** 由商户管理员在本模块完成 |

### 2.5 与平台《管理员列表》— 边界

| 项 | 定稿 |
|----|------|
| 管理对象 | 管理员列表维护 **平台管理端** 登录用户 |
| 与本模块 | **并列、不重叠**；员工 **不出现在** 管理员列表 |
| 角色 | 平台管理员角色 **不可** 绑定给员工 |

### 2.6 与商家侧《商品分类 / 商品管理》

| 项 | 定稿 |
|----|------|
| 操作主体 | 「店铺管理员」含 **经营账号** 与 **已授权子管理员** |
| 本模块作用 | 提供子管理员账号与 **角色绑定** |
| 登录后行为 | 员工与经营账号相同：须 **选择当前店铺**，再操作 **本店** 分类/商品 |
| 权限粒度 | 可访问菜单由 **绑定角色** 决定 |

### 2.7 与《角色管理》（待建设）

| 项 | 定稿 |
|----|------|
| 分工 | **角色管理** 定义 **当前店铺** 角色与菜单权限；**员工管理** 选用角色 |
| 草稿 §7 | 绑定角色时 **仅展示、仅可选当前店铺已有角色** |
| 约束 | **不可** 选平台角色、**不可** 选其他店铺/商户角色 |
| 数量 | 至少 **一个** 有效角色；单选/多选以角色管理定稿为准 |

---

## 3. 业务概念

| 概念 | 说明 |
|------|------|
| **商户** | 入驻主体；当前登录 **商户经营账号** 所属商户 |
| **商户经营账号** | 商户级主账号，**一商户一套**，多店共用登录；**不计入** 子管理员上限 |
| **员工（子管理员）** | 本模块 **创建** 的商户侧登录账号；**计入** 子管理员上限 |
| **员工账号** | 登录标识；**默认与手机号一致**（11 位） |
| **员工名称** | 展示用姓名 |
| **状态** | **正常** / **停用**；停用后 **不可登录** 商家端 |
| **当前店铺** | 登录后请求头 `X-Shop-Id` 标识的店铺；列表、创建、角色选择均以此为准 |
| **本店铺角色** | 当前店铺在 **角色管理** 中已定义的 **商户端角色**；绑定员工时 **仅限此类角色** |
| **子管理员上限** | 平台 **店铺设置** 全局配额；限制每商户 **有效员工** 最大人数 |

---

## 4. 功能结构

```text
员工管理（店铺 · 账号管理）
├── 员工列表（当前店铺、配额提示、检索）
├── 创建员工（资料、头像、停用、当前店铺角色）
├── 编辑员工（资料、头像、停用、当前店铺角色）
├── 修改账号（名称、手机号、邮箱）
├── 修改密码（新密码 + 确认新密码）
└── 删除员工
```

---

## 5. 员工列表

### 5.1 列表范围

- **纳入：** 当前 **所属店铺**（`X-Shop-Id`）下，全部 **有效员工绑定**（`shop_id` 匹配）；
- **排除：** 商户经营账号、其他店铺员工、已删除的绑定与用户；
- **排序：** 按 **创建时间倒序**；
- **上下文：** 展示 **当前店铺名称**、**当前商户名称**（只读）；宜展示 **已用员工数 / 全局上限**（如「员工 3/5」），上限为 **商户级** 统计、不含经营账号。

### 5.2 列表字段

| 字段 | 说明 |
|------|------|
| 员工账号 | 登录账号；默认即手机号 |
| 员工名称 | 显示名称 |
| 手机号 | **脱敏** 展示 |
| 邮箱 | 无则「—」 |
| 状态 | **正常** / **停用** |
| 操作 | 见 §5.3 |

### 5.3 列表操作

| 操作 | 编辑 | 修改账号 | 修改密码 | 删除 |
|------|:----:|:--------:|:--------:|:----:|
| **员工行** | ✓ | ✓ | ✓ | ✓ |

> 草稿 §4 三项操作 **仅针对员工**；列表 **不含** 经营账号行。

---

## 6. 高级检索

| 检索项 | 规则 |
|--------|------|
| 员工名称 | **仅此一项**；模糊匹配 **显示名称** |

- 清空条件后恢复默认列表。

---

## 7. 创建员工

### 7.1 表单字段（对齐草稿 §1）

| 字段 | 必填 | 规则 |
|------|:----:|------|
| 员工名称 | 是 | 非空 |
| 手机号 | 是 | 11 位；作为 **登录账号**；全平台有效用户 **不可重复** |
| 邮箱 | 否 | 格式校验 |
| 头像 | 否 | 未传则 **默认头像** |
| 是否停用 | 是 | 默认 **正常** |
| 绑定角色 | 是 | **至少一个**；**仅限当前店铺已有** 商户端角色（草稿 §7） |

> **所属店铺：** 创建时 **自动归属当前店铺**（`X-Shop-Id`），**无需** 在表单中选择店铺。  
> **密码（对齐草稿 §4(2)）：** 创建表单 **不含** 密码项。保存成功后，商户管理员须通过 **「修改密码」** 为该员工设定登录密码，员工 **方可登录** 商家端。

### 7.2 创建流程

```text
商户经营账号进入「员工管理」
    → 点击「创建员工」
    → 填写资料、选择当前店铺角色
    → 校验（字段、配额、手机号唯一、角色归属当前店铺）
    → 保存成功 → 列表刷新
    → 提示创建成功；引导「请为该员工设置登录密码」
    → （可选）立即打开「修改密码」
```

### 7.3 创建约束

| 约束 | 说明 |
|------|------|
| 配额 | 已占用员工名额 **＜** 全局子管理员上限 |
| 角色 | **仅当前店铺角色**；至少选一个 |
| 经营账号 | **不可** 通过本流程重复创建 |

---

## 8. 编辑员工

### 8.1 可编辑字段

| 字段 | 规则 |
|------|------|
| 员工名称 | 必填 |
| 手机号 | 11 位；同步为登录账号；唯一性同 §7 |
| 邮箱 | 选填 |
| 头像 | 可更换 |
| 是否停用 | 正常 ↔ 停用 |
| 绑定角色 | 至少一个 **当前店铺** 角色 |

### 8.2 编辑约束

- **仅员工** 可进入编辑；
- **停用** 后立即不可登录，**仍占配额**；
- **启用** 前须：配额未满、至少一个有效当前店铺角色。

---

## 9. 修改账号（草稿 §4(1)）

列表操作，修改 **员工** 的：

| 字段 | 规则 |
|------|------|
| 员工名称 | 必填 |
| 手机号 | 11 位；唯一性同 §7 |
| 邮箱 | 选填 |

- 与 **§8 编辑** 字段重叠时，可 **合并为同一「编辑」入口**；若分开展示，本操作 **至少** 覆盖上述三项；
- **不含** 头像、停用、角色（后者走 **编辑**）。

---

## 10. 修改密码（草稿 §4(2)）

| 项 | 规则 |
|----|------|
| 对象 | **员工** |
| 输入 | **新密码** + **确认新密码**；须一致；长度 ≥6 |
| 生效 | 保存后 **下次登录** 须使用新密码 |
| 创建后 | 新员工 **首次登录前** 须完成至少一次改密（由经营账号操作） |

经营账号改密 **不在** 本模块，见 **账号设置 / 平台店铺账号管理**。

---

## 11. 删除员工（草稿 §4(3)）

### 11.1 规则

| 项 | 规则 |
|----|------|
| 可删对象 | **仅员工** |
| 不可删 | **商户经营账号** |
| 方式 | **逻辑删除**；列表不再展示；**释放** 一个员工名额 |
| 确认 | **二次确认**；提示删除后无法登录商家端 |

### 11.2 删除后影响

- 立即不可登录；
- 历史业务操作记录 **保留**；
- **不** 涉及 C 端会员注销。

---

## 12. 停用与启用

| 状态 | 登录 | 占配额 | 列表 |
|------|------|:------:|------|
| **正常** | 可（已设密码且角色有效） | 是 | 展示 |
| **停用** | **不可** | 是 | 展示 |

停用 ≠ 删除；可 **重新启用** 或 **删除**。

---

## 13. 登录与店铺上下文（协作规则）

依据 **草稿 §6** 与 **《关联需求分析.md》§9.1**：

```text
员工 / 经营账号 ── 手机号 + 密码登录商家端
            ↓
      解析所属店铺 ID → 写入请求头 X-Shop-Id
      （商户管理员默认最早店铺；可切换店铺更新 header）
            ↓
      员工管理等模块按 X-Shop-Id 操作当前店铺数据
            ↓
      按绑定角色访问菜单（如商品分类、商品管理）
```

| 规则 | 说明 |
|------|------|
| 登录端 | **商家端**，非平台端、非 C 端 |
| 店铺上下文 | 请求头 **`X-Shop-Id`** 标识当前操作店铺；未设置时 **拒绝** 员工管理接口 |
| 店铺切换 | 多店商户切换店铺后 **更新 header**；列表与 CRUD **随当前店铺变化** |
| 权限 | 无角色或角色被清空 → **不可** 登录或 **无菜单**（以角色管理为准） |
| 停用/删除 | 立即 **拒绝登录** |

---

## 14. 业务流程总览

### 14.1 端到端协作

```text
【平台】店铺设置 ── 子管理员上限（全局，默认 5）
【平台】商户入驻 ── 创建商户经营账号
            ↓
【商户端】角色管理（待建设）── 定义当前店铺角色
            ↓
【商户端】员工管理 ── 创建员工 → 绑定当前店铺角色 → 修改密码
            ↓
【员工】登录商家端 → 选当前店铺 → 按角色操作业务
            ↓
【平台】账号管理 ── 可检索该员工，但不承担员工 CRUD
```

### 14.2 单模块内主流程

```text
列表浏览 ──┬── 检索（员工名称）
           ├── 创建 → 改密 → 正常/停用
           ├── 编辑 / 修改账号
           ├── 修改密码
           └── 删除
```

---

## 15. 校验与提示

| 场景 | 提示要点 |
|------|----------|
| 超配额 | 子管理员人数已达上限（{上限}），请联系平台调整店铺设置 |
| 手机号重复 | 该手机号已被使用 |
| 未选角色 | 请至少选择一个角色 |
| 未选店铺 | 请先选择当前店铺 |
| 角色非当前店铺 | 只能选择当前店铺的角色 |
| 删除 | 二次确认，说明不可恢复登录 |
| 响应格式 | 统一 **code、msg、data**（草稿 §8） |

---

## 16. 业务规则汇总

| 编号 | 规则 |
|------|------|
| EM1 | 列表 = **当前店铺**（`X-Shop-Id`）下 **全部有效员工绑定** |
| EM2 | **仅员工** 可创建、编辑、改密、删除；**不含** 经营账号 |
| EM3 | 检索 **仅员工名称** |
| EM4 | 绑定角色 **至少一个**，且 **仅限当前店铺已有角色**（草稿 §7） |
| EM5 | 员工数（不含经营账号）≤ 平台 **店铺设置** 全局上限（**商户级** 计数） |
| EM6 | 停用占配额；删除释放配额 |
| EM7 | 商户端与平台端 **角色隔离** |
| EM8 | **不校验** C 端会员 |
| EM9 | 手机号 = 登录账号；全平台唯一 |
| EM10 | 创建 **不含密码**；须 **修改密码** 后方可登录 |
| EM11 | 须携带 **`X-Shop-Id`** 再操作员工管理；切换店铺后列表范围随之变化 |
| EM12 | 响应格式：**code、msg、data** |

---

## 17. 修订记录

| 版本 | 说明 |
|------|------|
| v1.0 | 首版定稿 |
| **v1.2** | 对齐草稿 §5～§7：列表按当前店铺、角色按当前店铺、`X-Shop-Id` 店铺上下文 |
| **v1.1** | 对齐草稿 §7；去除表名/接口表述；补账号体系四维、管理员列表边界、登录选店链、创建不含密码 |

---

*文档版本：v1.2 · 关联《员工管理功能需求-草稿》· 平台侧见《关联需求分析.md》《店铺设置功能需求.md》《账号管理功能需求.md》《管理员列表功能需求.md》*
