260 lines
13 KiB
Markdown
260 lines
13 KiB
Markdown
# 用户故事清单
|
||
|
||
> 本文记录「谁在什么场景下,为了获得什么价值,要完成什么目标」。不写接口、数据字段、
|
||
> 组件实现或逐个按钮的行为。
|
||
> 页面如何响应操作见[交互清单](08-interaction-checklist.md);页面入口见[路由与页面结构](routes.md);
|
||
> 接口形状以 [API 合约](api.md) 为准。
|
||
|
||
## 一、职责边界
|
||
|
||
| 信息 | 权威文档 |
|
||
| --- | --- |
|
||
| MVP 范围、优先级、非目标 | [需求](02-requirements.md) |
|
||
| 用户目标、场景与验收场景 | 本文 |
|
||
| 页面操作、状态与反馈 | [交互清单](08-interaction-checklist.md) |
|
||
| 页面入口、导航与组件归属 | [路由与页面结构](routes.md) |
|
||
| 接口、事件与错误格式 | [API 合约](api.md) |
|
||
|
||
US 编号一经引用不再重用。需求变化时先改[需求](02-requirements.md),再同步本文。
|
||
|
||
## 二、用户故事总表
|
||
|
||
| ID | 标题 | 优先级 | 角色 | 要达成的目标 | 关联功能 | 关联交互 | 状态 |
|
||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||
| US-001 | 把「要买什么」变成一条任务 | P0 | 采购管理员 | 填一次链接和规格,后面不用再管 | F-001 | IX-002 | 已定 |
|
||
| US-002 | 知道每条任务现在卡在谁那里 | P0 | 采购管理员 | 一眼分出「等我」和「机器在跑」,快速找到要处理的那条 | F-004、F-011 | IX-003、IX-004 | 已定 |
|
||
| US-003 | 让手机自己跑,不用我盯着 | P0 | 采购执行员 | 开一次轮询,手机排着队跑,只在停下来时介入 | F-005、F-006 | IX-007、IX-008 | 已定 |
|
||
| US-004 | 确认机器有没有选对 | P0 | 采购管理员 | 看一眼机器实际勾选到的规格和价格,判断能不能买 | F-007、F-008 | IX-005 | 已定 |
|
||
| US-005 | 放心地授权一笔下单 | P0 | 采购管理员 | 授权后确信系统只下单不付款,且不会因断网重复下单 | F-008、F-009、F-010、F-017 | IX-005、IX-010、IX-011 | 已定 |
|
||
| US-006 | 付款前核对订单再花钱 | P0 | 采购管理员 | 对着系统给的几项组织人工核对,不一致就不付 | F-009 收口 | IX-006 | 已定 |
|
||
| US-007 | 管理身份和设备身份互不越权 | P0 | 采购管理员 | 设备被盗用也不能建单或改授权 | F-013 | IX-001 | 已定 |
|
||
| US-008 | 任务出问题时知道该怎么办 | P0 | 采购执行员 | 看到具体原因和下一步,而不是一个「失败」 | F-011 | IX-008 | 已定 |
|
||
| US-010 | 把选中的任务交给机器试选 | P0 | 采购管理员 | 一次选中多条待开始任务,让桌面端逐条领取第一趟试选 | F-018 | IX-012 | 已定 |
|
||
|
||
> US-009(从 ERP 货运明细建单)随 F-003 移出 MVP,编号保留不重用。
|
||
|
||
## 三、故事详情
|
||
|
||
### US-001 把「要买什么」变成一条任务
|
||
|
||
- 优先级:P0 | 关联功能:F-001 | 关联交互:IX-002
|
||
- 角色:采购管理员
|
||
- 前置条件:已登录,手上有拼多多商品链接和要买的颜色分类、尺码。
|
||
|
||
**用户故事**
|
||
|
||
作为采购管理员,我想要填一次链接和规格就把任务交出去,从而不必自己再去手机上操作。
|
||
|
||
**范围**
|
||
|
||
- 包含:任务名称、手工填链接、颜色分类、尺码、数量、价格上限。
|
||
- 不包含:Excel 批量导入、从 ERP 生成、任务模板(均为 V2)。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如我有商品链接和规格,当我在任务列表的创建弹窗填完并保存,那么得到任务编号,
|
||
弹窗关闭,任务按创建时间倒序出现在表格第一行且状态为待开始。
|
||
2. 假如链接无法解析出商品标识,当我提交,那么系统明确报错并保留我已填的内容。
|
||
3. 假如我没填价格上限,当我提交,那么系统拒绝——**价格上限是资金边界,不能留空**。
|
||
|
||
### US-002 知道每条任务现在卡在谁那里
|
||
|
||
- 优先级:P0 | 关联功能:F-004、F-011 | 关联交互:IX-003、IX-004
|
||
- 角色:采购管理员
|
||
- 前置条件:已登录,系统中有若干条不同状态的任务。
|
||
|
||
**用户故事**
|
||
|
||
作为采购管理员,我想要打开就看清哪几条在等我,从而不必逐条点进去确认还需不需要我
|
||
处理。
|
||
|
||
**范围**
|
||
|
||
- 包含:传统任务表格、关键词与时间范围查询、任务详情抽屉和完整详情页中的结果与证据。
|
||
- 不包含:自定义视图、导出报表、跨任务统计。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如有任务停在等待人工确认,当我打开工作台,那么表格状态与采购结果能让我一眼识别,
|
||
双击该行即可在不丢失列表现场的情况下查看详情。
|
||
2. 假如我按关键词筛选后没有匹配,当结果为空,那么显示空状态并提供清除筛选,而不是
|
||
一片空白或报错。
|
||
3. 假如任务失败了,当我打开详情,那么我看到可区分的失败原因和当时的截图,而不只是
|
||
「失败」两个字。
|
||
|
||
### US-003 让手机自己跑,不用我盯着
|
||
|
||
- 优先级:P0 | 关联功能:F-005、F-006 | 关联交互:IX-007、IX-008
|
||
- 角色:采购执行员
|
||
- 前置条件:电脑已连上 web 端;手机已连接、已解锁、已登录拼多多。
|
||
|
||
**用户故事**
|
||
|
||
作为采购执行员,我想要开一次轮询就让手机排着队把任务跑掉,从而把注意力留给真正需要
|
||
判断的时刻。
|
||
|
||
**范围**
|
||
|
||
- 包含:定时轮询领取、第一趟试选、第二趟下单、连续失败自动停。
|
||
- 不包含:多台手机并行、无人值守整夜运行、已开始任务的排序、暂停 / 继续和运行中接管(V2)。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如有待处理任务且设备就绪,当我点击开始轮询,那么系统按间隔领取任务并显示**这一趟
|
||
是试选还是下单**;两个实例并发不会领到同一条。
|
||
2. 假如第一趟试选完成,当机器读完价截完图,那么**它退出商品页释放手机**,立刻可以开始
|
||
下一条,而不是停在规格面板上等我。
|
||
3. 假如某条任务需要人工,当它停下来,那么界面显著提示缺什么,该任务不再被本端领取,
|
||
但轮询继续跑其他任务。
|
||
4. 假如连续失败达到阈值,当失败累积,那么轮询自动停止并说明原因,**不无限重试**。
|
||
5. 假如我关闭窗口,那么轮询立即停止,不留后台进程。
|
||
|
||
### US-004 确认机器有没有选对
|
||
|
||
- 优先级:P0 | 关联功能:F-007、F-008 | 关联交互:IX-005
|
||
- 角色:采购管理员
|
||
- 前置条件:任务已完成第一趟试选并回传结果。
|
||
|
||
**用户故事**
|
||
|
||
作为采购管理员,我想要看一眼机器**实际勾选到**的规格和读到的价格,从而在它去下单之前
|
||
确认没选错。
|
||
|
||
**范围**
|
||
|
||
- 包含:需求与机器所选的逐项对照、单价与合计、规格面板截图、确认或退回。
|
||
- 不包含:在多个候选之间挑选(MVP 只有一个商品,多候选对照台是 V2)。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如机器选到的颜色分类和尺码与我要的一致、合计没超上限,当我打开详情,那么各项
|
||
显示 ✓ 且确认按钮可用。
|
||
2. 假如机器选到的规格与我要的不符,当我打开详情,那么显示 ✗ 并说明哪一项不符,
|
||
**确认按钮禁用**,我只能退回或转人工。
|
||
3. 假如合计超出我设的上限,当我打开详情,那么显示超出多少且确认按钮禁用,
|
||
**不提供「仍然确认」入口**。
|
||
4. 假如价格读不到,那么任务根本不会进到这一步,而是直接转人工并说明原因。
|
||
|
||
### US-005 放心地授权一笔下单
|
||
|
||
- 优先级:P0 | 关联功能:F-008、F-009、F-010、F-017 | 关联交互:IX-005、IX-010、IX-011
|
||
- 角色:采购管理员
|
||
- 前置条件:任务处于等待确认,已看过试选结果。
|
||
|
||
**用户故事**
|
||
|
||
作为采购管理员,我想要确认后签发一次授权,从而让系统去下单,同时确信它不会替我付钱,
|
||
也不会因为卡住而让任务永久停摆。
|
||
|
||
**范围**
|
||
|
||
- 包含:确认签发、锁定单价、退回不买、围栏前放弃、dry-run、提交围栏与结果调和。
|
||
- 不包含:审批链、多人会签、金额分级授权。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如我提交授权,当系统接受,那么明确告知只创建待付款订单、付款需我在拼多多完成。
|
||
2. 假如授权时的单价是 32.50,当机器第二趟发现价格变了,那么它**停下来转人工**,
|
||
不会按新价照下——我确认的是那个价格,不是那个商品。
|
||
3. 假如一笔授权在提交围栏前卡住,当我需要重来,那么我可以放弃它,任务进入待重新试选。
|
||
假如围栏已经建立,则不能放弃或重试,只能核查这一次提交。
|
||
4. 假如授权自动过期,那么系统要求**重新试选取新价**后再确认,不复用旧价。
|
||
5. 假如我重复提交同一笔授权,那么只产生一笔订单。
|
||
6. 假如真实点击前网络超时、无法确认服务端是否已建立围栏,那么系统不点击并提示核查;
|
||
假如点击后结果不明,那么系统保留围栏并进入调和,绝不再点一次。
|
||
|
||
### US-006 付款前核对订单再花钱
|
||
|
||
- 优先级:P0 | 关联功能:F-009 收口 | 关联交互:IX-006
|
||
- 角色:采购管理员(采购执行员在拼多多完成人工付款并反馈结果)
|
||
- 前置条件:系统已创建待付款订单,任务状态为等待付款。
|
||
|
||
**用户故事**
|
||
|
||
作为采购执行员,我想要拿着系统给的几项去拼多多逐一核对,从而不会付错单。
|
||
|
||
**范围**
|
||
|
||
- 包含:展示订单截图、商品、规格、数量与授权金额;人付款后手工标记完成。
|
||
- 不包含:系统代付、免密支付、在拼多多改单、**自动回读核对(F-016,V2)**。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如订单已创建,当我打开详情,那么我看到需要核对的项和设备回传的订单截图。
|
||
2. 假如各项都对得上,当我在拼多多付完款回来点「已付款」,那么任务转为已完成并记录
|
||
标记人与时间。
|
||
3. 假如金额或规格对不上,当我发现不一致,那么我能「标记异常」转人工,
|
||
**不能直接标记已付款**。
|
||
4. 假如订单截图缺失,那么系统不允许标记完成,直接转人工——**无证据不得收口**。
|
||
|
||
### US-007 管理身份和设备身份互不越权
|
||
|
||
- 优先级:P0 | 关联功能:F-013 | 关联交互:IX-001
|
||
- 角色:采购管理员
|
||
- 前置条件:系统有管理员账号与已授权设备各一。
|
||
|
||
**用户故事**
|
||
|
||
作为采购管理员,我想要设备只能做执行、不能做决策,从而即使设备凭据泄露也不会有人
|
||
凭它建单或改授权。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如持有设备凭据,当尝试创建任务或签发授权,那么被拒绝并记录。
|
||
2. 假如持有管理会话,当尝试调用设备接口,那么被拒绝。
|
||
3. 假如设备凭据被撤销,当设备下次请求,那么立即失效且当前任务安全停止。
|
||
|
||
### US-008 任务出问题时知道该怎么办
|
||
|
||
- 优先级:P0 | 关联功能:F-011 | 关联交互:IX-008
|
||
- 角色:采购执行员
|
||
- 前置条件:任务执行中遇到异常。
|
||
|
||
**用户故事**
|
||
|
||
作为采购执行员,我想要看到具体卡在哪一步、为什么,从而知道是自己能处理还是要找管理员。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如规格找不到精确匹配,那么系统说明缺的是颜色分类还是尺码、页面上有哪些可选值,
|
||
并转人工——**不选相近的**。
|
||
2. 假如规格面板上读不到单价,那么系统转人工并说明原因,
|
||
**不用商品详情页正文的数字凑合**。
|
||
3. 假如第二趟发现价格与授权价不一致,那么系统说明「授权 ¥X、现价 ¥Y」并转人工,
|
||
既不按新价下单,也不自动放弃。
|
||
4. 假如遇到验证码或风控,那么系统立即停止、保留截图、转人工,**不尝试绕过**。
|
||
5. 假如点击提交订单后无法判断是否已创建,那么系统转人工并提示「订单可能已创建、
|
||
支付未完成」,进入同一提交记录的调和,**不自动重试、不释放围栏**。
|
||
|
||
### US-010 把选中的任务交给机器试选
|
||
|
||
- 优先级:P0 | 关联功能:F-018 | 关联交互:IX-012
|
||
- 角色:采购管理员
|
||
- 前置条件:已登录;任务表格中至少有一条待开始任务。
|
||
|
||
**用户故事**
|
||
|
||
作为采购管理员,我想要勾选一条或多条待开始任务统一开始试选,从而在集中建单后一次交给
|
||
桌面端逐条领取,而不必逐行点击操作按钮。
|
||
|
||
**范围**
|
||
|
||
- 包含:当前筛选结果中的可开始任务全选、清除选择、批量进入第一趟试选队列。
|
||
- 不包含:指定执行顺序、暂停 / 继续、运行中接管、多设备调度(F-012,V2)。
|
||
|
||
**验收场景**
|
||
|
||
1. 假如我勾选了多条待开始任务,当我点击「开始试选」,那么这些任务一起转为待领取,
|
||
页面明确说明不会创建订单或付款。
|
||
2. 假如任务不是待开始,那么该行不能被本动作勾选,并能看见不可开始的原因。
|
||
3. 假如其中一条任务在提交前已被别人启动,当版本冲突发生,那么整批不产生部分成功,
|
||
页面刷新状态并让我重新选择。
|
||
|
||
## 四、交付前检查
|
||
|
||
- [ ] 每个 P0 功能至少关联一个 US 编号。
|
||
- [ ] 每个故事说明角色、目标、价值和可验证的验收场景。
|
||
- [ ] UI 故事已关联对应 IX 编号。
|
||
- [ ] 故事没有复制接口、字段或组件实现细节。
|
||
- [ ] 范围、优先级与[需求](02-requirements.md)一致。
|