|
|
@@ -0,0 +1,403 @@
|
|
|
+# 阶段一用例文档 — 基础设施与用户体系
|
|
|
+
|
|
|
+> 功能点覆盖:20/20
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、系统管理用例
|
|
|
+
|
|
|
+### UC-SYS-001: 角色管理
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入系统管理 → 角色管理
|
|
|
+2. 系统显示角色列表(角色名称、编码、状态、创建时间)
|
|
|
+3. 管理员点击某个角色查看详情
|
|
|
+4. 系统显示角色详情(权限列表)
|
|
|
+5. 管理员修改权限配置
|
|
|
+6. 系统保存权限变更
|
|
|
+7. 系统记录操作日志
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 管理员搜索角色 → 按名称筛选
|
|
|
+- 5a. 管理员尝试删除系统预置角色 → 系统提示"系统预置角色不可删除"
|
|
|
+
|
|
|
+**后置条件**: 角色权限已更新,操作日志已记录
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-SYS-002: 账号管理
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入系统管理 → 账号管理
|
|
|
+2. 系统显示账号列表(用户名、姓名、手机号、角色、状态)
|
|
|
+3. 管理员点击"新增账号"
|
|
|
+4. 管理员填写:用户名、密码、姓名、手机号、角色
|
|
|
+5. 系统验证:用户名唯一、手机号唯一、密码强度
|
|
|
+6. 系统创建账号(密码 BCrypt 加密)
|
|
|
+7. 系统记录操作日志
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 5a. 用户名已存在 → 提示"用户名已存在"
|
|
|
+- 5b. 手机号已存在 → 提示"手机号已注册"
|
|
|
+- 5c. 密码强度不足 → 提示"密码需≥8位,含大小写字母和数字"
|
|
|
+
|
|
|
+**后置条件**: 账号已创建,可正常登录
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-SYS-003: 字典管理
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员、数据录入员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入系统管理 → 字典管理
|
|
|
+2. 系统显示字典类型列表
|
|
|
+3. 管理员选择某个字典类型(如"苹果品种")
|
|
|
+4. 系统显示该类型下的字典项列表
|
|
|
+5. 管理员点击"新增字典项"
|
|
|
+6. 管理员填写:字典编码、字典名称、排序号
|
|
|
+7. 系统验证:字典编码唯一
|
|
|
+8. 系统创建字典项
|
|
|
+9. 系统记录操作日志
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 7a. 字典编码已存在 → 提示"字典编码已存在"
|
|
|
+- 5a. 管理员尝试删除系统内置字典 → 提示"系统内置字典不可删除"
|
|
|
+
|
|
|
+**后置条件**: 字典项已创建,可在业务中使用
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-SYS-004: 操作日志查看
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入系统管理 → 操作日志
|
|
|
+2. 系统显示操作日志列表(操作人、时间、类型、模块、内容、IP、结果)
|
|
|
+3. 管理员按条件筛选(操作人、时间范围、操作类型)
|
|
|
+4. 系统显示筛选结果
|
|
|
+5. 管理员点击某条日志查看详情
|
|
|
+6. 系统显示日志详情
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 管理员导出日志 → 系统生成 Excel 文件
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 二、用户认证用例
|
|
|
+
|
|
|
+### UC-AUTH-001: 微信登录
|
|
|
+
|
|
|
+**主要参与者**: 小程序用户
|
|
|
+
|
|
|
+**前置条件**: 用户已安装微信
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户打开小程序
|
|
|
+2. 小程序调用 `wx.login()` 获取 code
|
|
|
+3. 小程序将 code 发送到后端
|
|
|
+4. 后端用 code 调用微信接口换取 openid
|
|
|
+5. 后端查询 openid 是否已绑定用户
|
|
|
+6. 已绑定 → 后端签发 JWT token,返回用户信息
|
|
|
+7. 小程序存储 token,进入首页
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 5a. 未绑定 → 返回提示"未找到信息,请联系村委会"
|
|
|
+- 6a. 用户有多个身份 → 返回身份列表,用户选择后进入对应首页
|
|
|
+
|
|
|
+**后置条件**: 用户已登录,token 已存储
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-002: 后台登录
|
|
|
+
|
|
|
+**主要参与者**: 后台管理员
|
|
|
+
|
|
|
+**前置条件**: 已打开后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员输入用户名和密码
|
|
|
+2. 点击"登录"
|
|
|
+3. 系统验证用户名存在
|
|
|
+4. 系统验证密码正确(BCrypt)
|
|
|
+5. 系统验证账号状态(非禁用)
|
|
|
+6. 系统签发 JWT token
|
|
|
+7. 系统记录登录日志
|
|
|
+8. 管理员进入后台首页
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 用户名不存在 → 提示"用户名或密码错误"
|
|
|
+- 4a. 密码错误 → 提示"用户名或密码错误",记录错误次数
|
|
|
+- 4b. 连续5次错误 → 锁定30分钟,提示"账号已锁定,请30分钟后重试"
|
|
|
+- 5a. 账号已禁用 → 提示"账号已禁用,请联系管理员"
|
|
|
+
|
|
|
+**后置条件**: 管理员已登录,token 已存储
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-003: 身份路由
|
|
|
+
|
|
|
+**主要参与者**: 小程序用户
|
|
|
+
|
|
|
+**前置条件**: 用户已登录
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户登录成功
|
|
|
+2. 系统查询用户绑定的身份数量
|
|
|
+3. 根据身份数量决定跳转:
|
|
|
+ - 0个身份 → 显示提示页"未找到信息,请联系村委会"
|
|
|
+ - 1个身份 → 直接进入对应首页
|
|
|
+ - N个身份 → 显示身份选择页
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 用户选择身份 → 进入对应首页
|
|
|
+- 3b. 用户拒绝授权 → 显示引导页,提供联系管理员方式
|
|
|
+
|
|
|
+**后置条件**: 用户已进入对应角色首页
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-004: 用户信息查询
|
|
|
+
|
|
|
+**主要参与者**: 已登录用户
|
|
|
+
|
|
|
+**前置条件**: 用户已登录
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户进入个人中心
|
|
|
+2. 系统查询用户基本信息
|
|
|
+3. 系统返回:用户ID、姓名、手机号(脱敏)、身份列表、当前身份
|
|
|
+
|
|
|
+**替代流程**: 无
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-005: 用户状态管理
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入用户管理 → 用户列表
|
|
|
+2. 管理员选择某个用户
|
|
|
+3. 管理员修改用户状态(启用/禁用/锁定)
|
|
|
+4. 系统验证操作合法性
|
|
|
+5. 系统更新用户状态
|
|
|
+6. 系统记录操作日志
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 4a. 尝试禁用超级管理员 → 提示"不可禁用超级管理员"
|
|
|
+- 3a. 锁定操作 → 需填写锁定原因
|
|
|
+
|
|
|
+**后置条件**: 用户状态已更新,操作日志已记录
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-006: 管理员创建用户
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员、数据录入员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入用户管理 → 创建用户
|
|
|
+2. 管理员填写:姓名、手机号
|
|
|
+3. 管理员选择身份类型
|
|
|
+4. 管理员填写身份详细信息
|
|
|
+5. 系统验证:手机号唯一
|
|
|
+6. 系统创建用户账号
|
|
|
+7. 系统发送短信通知用户
|
|
|
+8. 系统记录操作日志
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 5a. 手机号已存在 → 提示"手机号已注册"
|
|
|
+
|
|
|
+**后置条件**: 用户已创建,等待首次登录激活
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-007: 身份绑定
|
|
|
+
|
|
|
+**主要参与者**: 超级管理员、数据录入员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统,用户已存在
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 管理员进入用户管理 → 选择用户
|
|
|
+2. 管理员点击"绑定身份"
|
|
|
+3. 管理员选择身份类型
|
|
|
+4. 管理员填写身份详细信息
|
|
|
+5. 系统创建身份关联
|
|
|
+6. 系统记录操作日志
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 用户已有该类型身份 → 提示"用户已有该身份"
|
|
|
+
|
|
|
+**后置条件**: 用户已绑定新身份
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUTH-008: 退出登录
|
|
|
+
|
|
|
+**主要参与者**: 已登录用户
|
|
|
+
|
|
|
+**前置条件**: 用户已登录
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户点击"退出登录"
|
|
|
+2. 系统清除本地 token
|
|
|
+3. 系统跳转到登录页
|
|
|
+
|
|
|
+**替代流程**: 无
|
|
|
+
|
|
|
+**后置条件**: 用户已退出,token 已清除
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 三、首页与行情用例
|
|
|
+
|
|
|
+### UC-HOME-001: 果农首页展示
|
|
|
+
|
|
|
+**主要参与者**: 果农用户
|
|
|
+
|
|
|
+**前置条件**: 已登录,身份为果农
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户进入果农首页
|
|
|
+2. 系统显示问候语"早安,[姓名]!"
|
|
|
+3. 系统显示今日行情(苹果品种、价格区间、涨跌、更新时间)
|
|
|
+4. 系统显示金刚区(找工人、找客商、买农资、发布需求)
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 行情数据未更新 → 显示"暂无行情数据"
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-HOME-002: 工人首页展示
|
|
|
+
|
|
|
+**主要参与者**: 工人用户
|
|
|
+
|
|
|
+**前置条件**: 已登录,身份为工人
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户进入工人首页
|
|
|
+2. 系统显示推荐招工(按工种匹配+距离排序)
|
|
|
+3. 系统显示招工卡片列表(工种、价格、天数、人数、果农姓名、距离)
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 2a. 无匹配招工 → 显示"暂无招工信息"
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-HOME-003: 客商首页展示
|
|
|
+
|
|
|
+**主要参与者**: 客商用户
|
|
|
+
|
|
|
+**前置条件**: 已登录,身份为客商
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户进入客商首页
|
|
|
+2. 系统显示今日行情
|
|
|
+3. 系统显示货源推荐(按品种匹配+产量排序)
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 3a. 无匹配货源 → 显示"暂无货源信息"
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-HOME-004: 农资商首页展示
|
|
|
+
|
|
|
+**主要参与者**: 农资商用户
|
|
|
+
|
|
|
+**前置条件**: 已登录,身份为农资商
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 用户进入农资商首页
|
|
|
+2. 系统显示店铺概览
|
|
|
+3. 系统显示快捷入口(商品管理、订单管理、店铺设置)
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 2a. 店铺未完善 → 显示引导完善店铺信息
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 四、审核用例
|
|
|
+
|
|
|
+### UC-AUDIT-001: 审核流程
|
|
|
+
|
|
|
+**主要参与者**: 审核员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统,有待审核项
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 审核员进入内容审核 → 待审核列表
|
|
|
+2. 系统显示待审核列表(审核类型、提交人、提交时间)
|
|
|
+3. 审核员选择某项查看详情
|
|
|
+4. 系统显示审核详情(内容、附件)
|
|
|
+5. 审核员点击"通过"或"驳回"
|
|
|
+6. 如驳回,填写驳回原因
|
|
|
+7. 系统更新审核状态
|
|
|
+8. 系统记录审核日志
|
|
|
+9. 系统通知提交人审核结果
|
|
|
+
|
|
|
+**替代流程**:
|
|
|
+- 5a. 审核员点击"驳回" → 必须填写驳回原因
|
|
|
+
|
|
|
+**后置条件**: 审核状态已更新,通知已发送
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### UC-AUDIT-002: 审核列表查看
|
|
|
+
|
|
|
+**主要参与者**: 审核员、超级管理员
|
|
|
+
|
|
|
+**前置条件**: 已登录后台管理系统
|
|
|
+
|
|
|
+**基本流程**:
|
|
|
+1. 审核员进入内容审核
|
|
|
+2. 系统显示审核列表(待审核/已审核 Tab)
|
|
|
+3. 审核员按条件筛选(审核类型、状态、时间范围)
|
|
|
+4. 系统显示筛选结果
|
|
|
+5. 系统显示待审核数量角标
|
|
|
+
|
|
|
+**替代流程**: 无
|
|
|
+
|
|
|
+**后置条件**: 无数据变更
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 用例统计
|
|
|
+
|
|
|
+| 模块 | 用例数 | 功能点覆盖 |
|
|
|
+|------|--------|-----------|
|
|
|
+| 系统管理 | 4 | 6/6 |
|
|
|
+| 用户认证 | 8 | 8/8 |
|
|
|
+| 首页与行情 | 4 | 4/4 |
|
|
|
+| 审核框架 | 2 | 2/2 |
|
|
|
+| **总计** | **18** | **20/20** |
|