Files
cmbuyer/docs/07-user-stories.md
T

140 lines
8.2 KiB
Markdown

# 用户故事清单
> 本文从用户目标描述 MVP。功能编号以[需求](02-requirements.md)为准,具体界面行为以
> [交互清单](08-interaction-checklist.md)为准。
## 一、职责边界
- 采购管理员决定买什么、最高允许多少钱,并通过“开始采购”明确授权创建待付款订单。
- 采购工具只执行已授权任务,不修改规格、数量或金额上限。
- 系统不付款;待付款订单由人核对、付款并手工收口。
- 截图是内部审计证据,不是提交前审批环节。
## 二、用户故事总表
| ID | 故事 | 优先级 | 角色 | 用户价值 | 功能 | 交互 | 状态 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| US-001 | 把“要买什么”变成待开始任务 | P0 | 采购管理员 | 一次填写链接、规格、数量和最高总价 | F-001 | IX-002 | 已定 |
| US-002 | 知道任务当前卡在哪里 | P0 | 采购管理员 | 快速找到待授权、执行中、待付款或待人工任务 | F-004、F-007、F-011 | IX-003、IX-004 | 已定 |
| US-003 | 让手机逐条执行已授权任务 | P0 | 采购执行员 | 开启轮询后无需盯每一步,异常时再介入 | F-005、F-006 | IX-007、IX-008 | 已定 |
| US-004 | 查看机器实际执行证据 | P0 | 采购管理员 | 追溯规格、价格、数量、围栏和截图 | F-007 | IX-004 | 已定 |
| US-005 | 明确授权且不会重复下单 | P0 | 采购管理员 | 点击开始采购后,只创建一笔待付款订单且绝不自动付款 | F-008、F-010、F-017 | IX-005、IX-010、IX-011 | 已定 |
| US-006 | 付款前核对订单 | P0 | 采购管理员 | 对照系统证据后由人决定是否付款 | F-006 收口 | IX-006 | 已定 |
| US-007 | 管理身份与设备身份不越权 | P0 | 采购管理员 | 设备凭据泄露也不能建单或授权 | F-013 | IX-001 | 已定 |
| US-008 | 出问题时知道下一步 | P0 | 采购执行员 | 看到具体阶段、原因和安全恢复方式 | F-011、F-017 | IX-008、IX-011 | 已定 |
| US-010 | 批量授权待开始任务 | P0 | 采购管理员 | 一次把选中任务交给采购工具逐条创建待付款订单 | F-008、F-018 | IX-012 | 已定 |
## 三、故事详情
### US-001 把“要买什么”变成待开始任务
作为采购管理员,我希望在任务列表点击创建,填写标题、拼多多链接、颜色、尺码、数量和最高总价,
保存后立即在首行看到 `DRAFT`,以便稍后统一授权。
验收场景:
- 合法输入保存成功并规范化商品链接;创建动作不触发设备和授权。
- 链接、规格、数量或金额不合法时,在字段附近说明原因并保留其他输入。
- 重复提交同一 `create_key` 只返回原任务,不创建重复记录。
### US-002 知道任务当前卡在哪里
作为采购管理员,我希望在传统表格中按标题和状态筛选,看到标题链接、颜色、尺码、价格、数量、
采购结果、状态和创建时间,并双击行查看详情。
验收场景:
- 默认按创建时间倒序;标题是指向拼多多商品页的链接。
- 没有操作列;详情通过双击行打开路由化抽屉,完整 URL 可复制,浏览器返回恢复列表现场。
- 状态明确区分待开始、已授权待领取、执行中、待人工、围栏后待调和、待付款和终态。
- 空筛选结果提供“清除筛选”,错误页保留安全重试;不把已围栏提交显示为可重试。
### US-003 让手机逐条执行已授权任务
作为采购执行员,我希望配置服务、设备 serial 和轮询间隔后,点击一次开始轮询,让采购工具逐条领取
已授权任务并在同一趟中完成选规格、价格校验、数量、合并式最终提交面板和提交围栏。
验收场景:
- 启动前同时校验采购服务、ADB 设备和已取证拼多多版本;任一不满足则不启动。
- 顶部始终显示会话状态;当前任务、图片、滚动日志和倒序采购记录实时更新。
- 精确规格、闸门一单价、数量读回、闸门二顶部总额、闸门三最终控件金额或提交控件任一不合格时停止该任务。
- 围栏明确成功后只点一次“提交订单”;系统绝不点击付款。
- 连续轮询失败达到阈值自动停止;停止轮询不取消正在执行或已围栏的任务。
### US-004 查看机器实际执行证据
作为采购管理员,我希望打开任务详情后看到本次授权、设备领取、实际规格、三道价格闸门、截图、
提交围栏与结果,以便审计发生了什么,而不是在中途批准机器选择。
验收场景:
- 证据按 attempt 和时间排序,区分规格面板 Gate1/Gate2、最终提交面板 Gate3;不保存付款页结果图。
- 原始截图仅登录管理员可看,响应不缓存;完整 XML 不出现在页面或接口中。
- 地址/手机号不提取为字段或日志,外部支付页和支付凭据不存储。
- 执行中没有“确认机器选对了吗”或“确认后继续第二趟”按钮。
### US-005 明确授权且不会重复下单
作为采购管理员,我希望点击“开始采购(只创建待付款订单)”时明确知道影响范围,并确信系统不会
超出金额上限、不会付款,也不会因为断网重复提交。
验收场景:
- 只有 `DRAFT` 可选;操作条显示选中数量和最高总额。
- 点击即创建一次性授权并整批转 `PENDING`;不再要求试选后确认。
- 任一任务版本冲突时整批不变;同一开始键重放同一结果。
- 设备在同一趟通过三道闸门;服务端围栏明确建立后才准许点击一次。
- 围栏前失败可由人重置并重新授权;围栏后只能调和同一提交,永不出现“再次下单”。
### US-006 付款前核对订单
作为采购管理员,我希望任务转为待付款后看到商品、规格、数量、授权上限、Gate3 最终控件金额与订单截图,
在拼多多核对后由人决定是否付款。
验收场景:
- `WAITING_PAYMENT` 明确写“订单已创建,系统尚未付款”。
- 标记完成前再次提示该操作只记录人工付款事实,不执行支付。
- 人确认已付款后才转 `SUCCEEDED`;发现不一致时不付款并进入人工处理。
### US-007 管理身份与设备身份不越权
作为采购管理员,我希望网页会话与设备 token 完全隔离,以便设备只能做被授权的执行工作。
验收场景:
- 未登录不能查看任务或截图;登录会话具备 CSRF 防护。
- 设备 token 不能创建任务、开始采购、重置任务或人工调和。
- 管理会话不能伪装设备领取或建立围栏;设备凭据可撤销。
### US-008 出问题时知道下一步
作为采购执行员,我希望错误包含阶段、固定原因和安全下一步,以便处理而不冒险重试。
验收场景:
- 至少区分设备、App 版本、商品、面板、规格、价格、数量、Gate3、围栏、安全校验和网络错误。
- 围栏前错误提示停止、留证并等待人工处理;不会自动重新开始。
- 围栏后错误明确写“可能已创建订单,只能调和,禁止再次点击”。
- 桌面端详情切换不改变服务端状态;Esc 只回到当前任务视图,不取消业务流程。
### US-010 批量授权待开始任务
作为采购管理员,我希望勾选多条 `DRAFT` 后统一点击开始采购,以便减少重复操作,同时知道每条都
会允许采购工具创建一笔待付款订单。
验收场景:
- 表头复选框只选择当前筛选结果中的 `DRAFT`;切换筛选时选择范围可见且可清空。
- 未选择时按钮禁用;选中后显示数量、最高总额与“不付款”说明。
- 点击后批量全有或全无;成功反馈授权数量,冲突反馈刷新重选。
- 非 `DRAFT` 行不能勾选;表格不提供每行“开始采购”按钮,避免逐行语义不一致。
## 四、交付前检查
- 每个 P0 故事至少有一个自动化测试或明确的人机验收证据。
- 页面、API、状态机只使用单趟采购术语,不再出现试选后确认、授权旧试选价或第二趟下单。
- 任一可见“开始采购”都同时说明“只创建待付款订单,系统不付款”。
- 任一围栏后状态都不提供重试、释放授权或重新开始入口。