阶段2a用例文档 — 果农核心功能
功能点覆盖:14/14
用例数:32
一、果农名篇用例
UC-GP-001: 查看名片信息
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农进入"我的名片"页面
- 系统查询 grower_profile 表
- 系统展示名片信息:品种、产量、预期价格、果园地址、视频、照片、审核状态
替代流程:
后置条件: 无数据变更
UC-GP-002: 编辑名片信息
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农点击"编辑名片"
- 系统显示编辑表单(品种多选、产量、价格、地址)
- 果农修改信息
- 果农点击"保存"
- 系统验证数据(品种非空、价格>0、地址非空)
- 系统更新 grower_profile 表
- 系统重置审核状态为"待审"
替代流程:
- 5a. 必填字段为空 → 提示"请填写完整信息"
- 5b. 价格≤0 → 提示"价格必须大于0"
后置条件: 名片信息已更新,审核状态重置为待审
UC-GP-003: 上传果园视频
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农在名片编辑页点击"上传视频"
- 前端调用
wx.chooseVideo() 选择视频
- 前端清除EXIF元数据
- 前端预校验:格式(MP4/MOV)、大小(≤50MB)
- 前端调用
/api/wx/file/upload/video 上传
- 后端校验文件格式和大小
- 后端存储到
./uploads/video/ 目录
- 后端返回文件URL
- 前端更新名片视频URL
- 后端异步压缩视频(720p/2Mbps)
替代流程:
- 4a. 格式不支持 → 提示"仅支持MP4/MOV格式"
- 4b. 文件过大 → 提示"视频大小不能超过50MB"
- 5a. 网络中断 → 提示"上传失败,请重试"
- 10a. 压缩失败 → 自动重试3次,仍失败记录日志
后置条件: 视频已上传,URL已存入 grower_profile.video_url
UC-GP-004: 上传果园照片
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农在名片编辑页点击"上传照片"
- 前端调用
wx.chooseImage() 选择照片(≤9张)
- 前端清除EXIF元数据
- 前端预校验:格式(JPG/JPEG/PNG/GIF)、单张大小(≤5MB)
- 前端逐张调用
/api/wx/file/upload/image 上传
- 后端存储到
./uploads/image/ 目录
- 后端返回文件URL列表
- 前端更新名片照片列表
替代流程:
- 2a. 已有9张照片 → 提示"最多上传9张照片"
- 4a. 单张过大 → 提示"单张照片不能超过5MB"
- 5a. 部分上传失败 → 提示失败数量,支持重新上传
后置条件: 照片URL已存入 grower_profile.photos(JSON数组)
UC-GP-005: 删除已上传照片
主要参与者: 果农用户
前置条件: 已登录,身份为果农,已有照片
基本流程:
- 果农在名片编辑页查看照片列表
- 果农点击某张照片的"删除"按钮
- 系统弹出确认框
- 果农确认删除
- 系统调用
/api/wx/file/delete 删除文件
- 系统更新 grower_profile.photos,移除对应URL
替代流程:
后置条件: 照片已删除,URL已从数据库移除
UC-GP-006: 查看审核状态
主要参与者: 果农用户
前置条件: 已登录,身份为果农,已提交名片
基本流程:
- 果农进入"我的名片"页面
- 系统查询 audit_status 字段
- 系统展示审核状态:
- 待审(0) → 显示"审核中"
- 已通过(1) → 显示"已通过"
- 被驳回(2) → 显示"已驳回" + 驳回原因
替代流程: 无
后置条件: 无数据变更
UC-GP-007: 驳回后重新提交
主要参与者: 果农用户
前置条件: 已登录,身份为果农,名片被驳回
基本流程:
- 果农查看驳回原因
- 果农修改名片信息/更换视频照片
- 果农点击"重新提交"
- 系统重置审核状态为"待审(0)"
- 系统清除驳回原因
替代流程: 无
后置条件: 审核状态重置为待审
二、招工发布用例
UC-RC-001: 发布招工信息
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农点击"发布招工"
- 系统显示招工表单
- 果农填写:工种(多选)、价格、价格单位、人数、天数、工作地点、备注
- 果农点击"发布"
- 系统验证必填字段(工种、价格、价格单位、人数、工作地点)
- 系统检测敏感关键词
- 如无敏感词 → keyword_flag=0
- 如有敏感词 → keyword_flag=1
- 系统创建 recruit_info 记录(status=1,免审核直接发布)
- 系统提示"发布成功"
替代流程:
- 5a. 必填字段为空 → 提示"请填写完整信息"
- 5b. 价格≤0 → 提示"价格必须大于0"
- 5c. 人数≤0 → 提示"人数必须大于0"
后置条件: 招工信息已发布,工人可见
UC-RC-002: 语音输入备注
主要参与者: 果农用户
前置条件: 正在编辑招工表单
基本流程:
- 果农点击备注输入框旁的麦克风图标
- 前端调用语音识别API
- 果农说话
- 前端将语音转为文字
- 文字自动填入备注输入框
- 果农可手动修改识别结果
替代流程:
- 2a. 语音识别失败 → 提示"识别失败,请手动输入"
- 3a. 环境噪音过大 → 提示"请到安静环境重试"
后置条件: 备注已填入
UC-RC-003: 编辑招工信息
主要参与者: 果农用户
前置条件: 已登录,身份为果农,已有发布的招工
基本流程:
- 果农进入"我的招工"列表
- 果农选择某条招工,点击"编辑"
- 系统显示编辑表单(价格、人数、天数、备注可编辑)
- 果农修改信息
- 果农点击"保存"
- 系统验证数据
- 系统检测敏感关键词
- 系统更新 recruit_info 记录
替代流程:
后置条件: 招工信息已更新
UC-RC-004: 下架招工信息
主要参与者: 果农用户
前置条件: 已登录,身份为果农,已有发布的招工
基本流程:
- 果农进入"我的招工"列表
- 果农选择某条招工,点击"下架"
- 系统弹出确认框
- 果农确认下架
- 系统更新 recruit_info.status=0
- 系统提示"已下架"
替代流程:
后置条件: 招工已下架,工人不可见
UC-RC-005: 查看我的招工列表
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农进入"我的招工"页面
- 系统查询该果农发布的所有招工
- 系统按发布时间倒序展示
- 展示:工种、价格、人数、发布时间、状态、报名人数
- 果农可下拉刷新、上拉加载更多
替代流程:
后置条件: 无数据变更
UC-RC-006: 敏感词自动检测
主要参与者: 系统(自动)
前置条件: 果农发布或编辑招工
基本流程:
- 系统获取招工备注内容
- 系统使用正则表达式匹配敏感词库
- 匹配成功 → 设置 keyword_flag=1
- 匹配失败 → 设置 keyword_flag=0
- 记录检测结果
替代流程: 无
后置条件: keyword_flag 已设置
三、找工人用例
UC-WK-001: 查看工人列表
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农点击"找工人"
- 系统查询状态为"空闲"的工人
- 系统按工种筛选(可选)
- 系统按距离升序排序
- 系统展示工人列表:姓名、工种标签、报价、距离、状态
- 果农可下拉刷新、上拉加载更多
替代流程:
- 2a. 无空闲工人 → 显示"暂无空闲工人"
- 3a. 选择特定工种 → 仅显示该工种工人
后置条件: 无数据变更
UC-WK-002: 按工种筛选工人
主要参与者: 果农用户
前置条件: 正在查看工人列表
基本流程:
- 果农点击工种筛选按钮
- 系统显示工种选项(采摘工/分拣工/装卸工/喷药工/修剪工/施肥工)
- 果农选择工种
- 系统重新查询并展示筛选结果
替代流程: 无
后置条件: 无数据变更
UC-WK-003: 拨打工人电话
主要参与者: 果农用户
前置条件: 已登录,正在查看工人列表
基本流程:
- 果农点击某工人的"拨号"按钮
- 前端调用
/api/wx/call/phone 接口
- 后端记录拨号日志(call_log表)
- 后端返回脱敏手机号(138****8888)
- 前端调用
wx.makePhoneCall() 唤起系统拨号
替代流程:
- 3a. 接口调用失败 → 提示"获取号码失败,请重试"
- 5a. 用户取消拨号 → 不做处理
后置条件: 拨号日志已记录
UC-WK-004: 查看工人详情
主要参与者: 果农用户
前置条件: 正在查看工人列表
基本流程:
- 果农点击某工人卡片
- 系统显示工人详情:姓名、技能标签、报价、状态、距离
- 显示"拨号"按钮
替代流程: 无
后置条件: 无数据变更
四、找客商用例
UC-BY-001: 查看客商列表
主要参与者: 果农用户
前置条件: 已登录,身份为果农
基本流程:
- 果农点击"找客商"
- 系统查询所有客商
- 系统展示客商列表:姓名/公司名、收购品种、收购价格、收购数量、地址
- 果农可下拉刷新、上拉加载更多
替代流程:
后置条件: 无数据变更
UC-BY-002: 拨打客商电话
主要参与者: 果农用户
前置条件: 已登录,正在查看客商列表
基本流程:
- 果农点击某客商的"拨号"按钮
- 前端调用
/api/wx/call/phone 接口
- 后端记录拨号日志
- 后端返回脱敏手机号
- 前端唤起系统拨号
替代流程:
- 3a. 接口调用失败 → 提示"获取号码失败,请重试"
后置条件: 拨号日志已记录
UC-BY-003: 查看客商详情
主要参与者: 果农用户
前置条件: 正在查看客商列表
基本流程:
- 果农点击某客商卡片
- 系统显示客商详情:公司名、收购品种、价格区间、收购标准、地址
- 显示"拨号"按钮
替代流程: 无
后置条件: 无数据变更
五、后台审核用例
UC-AU-001: 查看名片审核列表
主要参与者: 审核员
前置条件: 已登录后台管理系统
基本流程:
- 审核员进入"内容审核" → "名片审核"
- 系统查询 audit_status=0 的果农档案
- 系统按提交时间倒序展示
- 展示:果农姓名、品种、提交时间、审核状态
- 系统显示待审核数量角标
替代流程:
后置条件: 无数据变更
UC-AU-002: 审核果农名片
主要参与者: 审核员
前置条件: 已登录后台管理系统,有待审核名片
基本流程:
- 审核员选择某条待审核名片
- 系统显示名片详情(视频、照片、信息)
- 审核员审核内容
- 审核员点击"通过"或"驳回"
- 如驳回 → 填写驳回原因(必填)
- 系统更新 grower_profile.audit_status
- 系统记录审核日志(audit_log表)
- 系统通知果农审核结果
替代流程:
- 5a. 驳回但未填原因 → 提示"请填写驳回原因"
后置条件: 审核状态已更新,审核日志已记录
UC-AU-003: 查看待复核招工列表
主要参与者: 审核员
前置条件: 已登录后台管理系统
基本流程:
- 审核员进入"内容审核" → "待复核列表"
- 系统查询 keyword_flag=1 的招工信息
- 系统按发布时间倒序展示
- 展示:招工内容、标记关键词、发布者、发布时间
- 系统显示待复核数量角标
替代流程:
后置条件: 无数据变更
UC-AU-004: 处理待复核招工
主要参与者: 审核员
前置条件: 已登录后台管理系统,有待复核招工
基本流程:
- 审核员选择某条待复核招工
- 系统显示招工详情和标记的敏感词
- 审核员判断内容是否违规
- 如正常 → 点击"标记为正常",keyword_flag=0
- 如违规 → 点击"强制下架",填写原因,status=0
- 系统记录审核日志
- 系统通知发布者
替代流程:
后置条件: 招工状态已更新,审核日志已记录
UC-AU-005: 审核SLA提醒(24小时)
主要参与者: 系统(定时任务)
前置条件: 有待审核项超过24小时
基本流程:
- 定时任务每小时扫描一次
- 查询创建时间超过24小时且未处理的审核项
- 系统发送提醒通知给对应审核员
- 记录提醒日志
替代流程: 无
后置条件: 提醒已发送
UC-AU-006: 审核SLA升级(48小时)
主要参与者: 系统(定时任务)
前置条件: 有待审核项超过48小时
基本流程:
- 定时任务每小时扫描一次
- 查询创建时间超过48小时且未处理的审核项
- 系统发送升级提醒给超级管理员
- 记录提醒日志
替代流程: 无
后置条件: 升级提醒已发送
UC-AU-007: 后台查看招工巡查列表
主要参与者: 审核员、超级管理员
前置条件: 已登录后台管理系统
基本流程:
- 管理员进入"内容审核" → "招工巡查"
- 系统查询所有招工信息(含已下架)
- 系统按发布时间倒序展示
- 管理员可筛选:状态、关键词标记、时间范围
- 管理员可强制下架违规内容
替代流程: 无
后置条件: 无数据变更
用例统计
| 模块 |
用例数 |
功能点覆盖 |
| 果农名片 |
7 |
4/4 |
| 招工发布 |
6 |
5/5 |
| 找工人 |
4 |
2/2 |
| 找客商 |
3 |
2/2 |
| 后台审核 |
7 |
3/3 |
| 总计 |
32 |
14/14 |