用户故事与产品订单 - xych5q/online-shop GitHub Wiki

用户故事与产品订单

第 1 组 · 迭代 1 产品订单(Product Backlog) | 负责人:董嘉润 优先级:P0 = 基线 MVP 必须;P1 = 应做。估算单位:故事点(等权)。 2026-10-07 同步(需求问题库 第三节答复):US-03/05/08/09/11 验收标准已按拍板结论修订(队首自动进交易、卖家处置失败买家、交易中可撤销等)。

一、产品订单(按优先级排序)

序 用户故事 优先级 故事点 迭代 状态(Java 实现)
US-02 发布商品 P0 2 1 已完成
US-09 提交购买意向并取得口令码 P0 2 1 已完成
US-03 查看意向购买人(队首自动进入交易) P0 3 1 已完成
US-05 标记交易结果与处置失败买家 P0 3 1 已完成
US-04 手动冻结与解冻商品 P0 2 1 已完成
US-08 浏览在售商品 P0 1 1 已完成
US-10 凭口令码查询位次与状态 P0 2 1 已完成
US-11 凭口令码修改信息或撤销意向 P0 2 1 已完成
US-01 卖家登录后台 P0 1 1 已完成
US-07 修改密码 P0 1 1 已完成
US-06 查看历史商品与意向流水 P1 2 1 已完成
US-12 商品图片上传与无图占位 P1 1 1 已完成

合计 22 故事点,12/12 故事全部在 Java 正式实现中完成(仓库 server/ 目录),逐条验证见各模块成果物页。

二、故事详情与验收标准

US-01 卖家登录后台

作为 卖家,我要 用用户名和密码登录后台,以便 管理我的商品和买家意向。

  1. 用户名或密码错误时提示「用户名或密码错误」,不进入后台
  2. 登录成功后进入后台首页,可看到当前商品、排队买家、历史入口
  3. 不提供注册功能(卖家账号由系统指定)
  4. 不提供退出登录功能(需求方明确不做)

US-02 发布商品

作为 卖家,我要 发布一件商品(名称、描述、价格、图片),以便 让买家看到并排队购买。

  1. 名称必填且 ≤100 字,描述选填且 ≤2000 字,价格必填且 > 0(保留两位小数)
  2. 图片选填,最多 1 张,JPG / PNG,≤5MB;不传时显示占位图
  3. 已有商品在售或交易中时禁止发布,提示「已有商品在售或交易中,需先下架」
  4. 发布成功后商品直接进入「在售」状态(发布与上架是同一动作)
  5. 发布后不可修改商品信息

US-03 查看意向购买人(队首自动进入交易)

作为 卖家,我要 看到排队买家的姓名、电话、提交时间与位次,以便 了解排队情况(与队首交易由系统自动完成)。

  1. 队列按提交时间正序展示并显示位次
  2. 卖家不能挑人,只能与队首交易
  3. 队首自动进入交易并自动冻结(系统自动,卖家后台无"进入交易"操作,2026-10-07 拍板,需求问题库 #8);冻结后不再接收新意向
  4. 后台不显示、不记录任何口令码

US-04 手动冻结与解冻商品

作为 卖家,我要 临时冻结或解冻商品,以便 自己有事时暂停接单。

  1. 仅「在售」商品可手动冻结,冻结后买家端提示「商品交易中」
  2. 仅自己手动冻结的商品可手动解冻
  3. 交易中的商品不能手动解冻,必须先标记交易结果
  4. 手动冻结与交易冻结在买家端不区分文案
  5. 无超时自动解冻机制

US-05 标记交易结果与处置失败买家

作为 卖家,我要 标记交易成功或失败,以便 推进队列并留下记录。

  1. 标记成功:商品下架进入历史,队列剩余意向转为失败,全部口令码失效,不可撤销
  2. 标记失败:队列有下一位时自动递补进入交易;队列空时商品自动恢复在售
  3. 失败的买家由卖家在后台逐单处置为「作废」或「重新排队」(重排到队尾、原口令码继续有效)
  4. 重新排队无次数上限,且由卖家发起、非系统自动入队(2026-10-07 拍板,需求问题库 #6、#9)

US-06 查看历史商品与意向流水

作为 卖家,我要 查看已成交商品及其全部意向流水,以便 追溯过往交易。

  1. 历史 = 已下架商品,按成交时间倒序,每页 10 条
  2. 每条商品可展开意向购买人列表(姓名、电话、提交时间、终态)
  3. 历史只读,不支持修改与删除
  4. 历史中不出现口令码

US-07 修改密码

作为 卖家,我要 修改登录密码,以便 保证账号安全。

  1. 必须验证原密码,原密码错误时拒绝
  2. 新密码长度 ≥ 8 位
  3. 修改成功后旧密码立即失效

US-08 浏览在售商品

作为 买家,我要 看到当前在售商品的名称、描述、图片和价格,以便 决定要不要买。

  1. 展示商品四项信息;无图时显示占位图;描述为空时留空显示、不加"卖家没有填写描述"等默认文案(需求问题库 #7)
  2. 商品处于交易中时明确提示「商品交易中」,不可提交意向
  3. 无商品在售时显示「暂无商品在售」

US-09 提交购买意向并取得口令码

作为 买家,我要 填写姓名和电话提交购买意向,以便 加入排队。

  1. 姓名与电话均必填(完全不校验格式,需求方 2026-10-07 明确坚持,需求问题库 #5)
  2. 提交成功后展示口令码,仅显示这一次,并提供复制按钮与"请截图保存"提示
  3. 商品交易中或无商品时不允许提交
  4. 同一人重复提交不去重,每次都是独立意向、独立口令码

US-10 凭口令码查询位次与状态

作为 买家,我要 凭口令码查询自己的排队位次,以便 知道还要等多久。

  1. 显示位次、提交时间、是否进入交易
  2. 口令码无效或已失效时提示「口令码无效或已失效」
  3. 只显示自己的信息,不显示其他买家的姓名电话

US-11 凭口令码修改信息或撤销意向

作为 买家,我要 修改自己的姓名电话或撤销意向,以便 更正信息或放弃购买。

  1. 修改信息不改变排队位次;修改后卖家后台与历史记录均显示最新姓名电话,不保留旧记录(需求问题库 #4)
  2. 撤销后意向进入「已撤销」终态,口令码失效,但历史记录中留痕
  3. 交易中的买家仍可撤销(口令码在交易结束前始终有效):队首撤销 → 交易终止、商品恢复在售、后续队列递补;撤销按钮无需隐藏(2026-10-07 拍板,需求问题库 #3)

US-12 商品图片上传与无图占位

作为 卖家 / 买家,我要 商品支持一张图片且无图时有占位,以便 页面不至于空缺。

  1. 仅 JPG / PNG,≤5MB,最多 1 张
  2. 不传图片时前端显示内置占位图
  3. 图片存于服务端并以 URL 方式访问

三、估算说明(写入报告 3.2)

  • 基线需求共拆 12 个用户故事(卖家端 7、买家端 4、公共 1)
  • 实现层:12 个故事全部在 Java 正式实现中完成(22/22 故事点),17 个 REST 接口可用
  • 测试层:18 组 JUnit 用例全绿(mvn test 实测)
  • 综合进度由组长依据实际代码与本地实测结果核算、经 10-07 迭代会复核,详见第1次阶段性评审报告 3.2(当前 80%)
  • 剩余风险集中在:Selenium 端到端自动化与 JMeter 性能测试补齐(迭代 2);Docker 镜像已由云端 Actions 构建产出并完成容器内冒烟(44/44)