在线购物系统首轮验收基础需求 - casf73/Software-Engineering-Practice GitHub Wiki
在线购物系统首轮验收基础需求
首轮范围 · 买家与卖家核心业务闭环
查看原始 Word 文档
| 文档信息 |
内容 |
| 版本 / 日期 |
V1.1 · 2026 年 9 月 29 日 |
| 文档用途 |
明确第一轮验收的基础功能范围,并标出后续验收项 |
| 技术方向 |
Vue 前端 + Spring Boot 后端 |
1 首轮范围与功能分层
1.1 首轮必须完成
| 功能模块 |
首轮验收要求 |
| 卖家入口 |
唯一后台账号 admin,初始密码 123456;卖家登录后可访问后台。 |
| 商品 |
卖家一次发布和管理一件当前商品;商品可展示名称、价格、可选描述和一张可选主图。 |
| 买家申请 |
买家无需注册,填写姓名和联系电话提交意向;成功页显示唯一口令码。 |
| 队列与查询 |
有效意向按提交顺序 FIFO 排队;买家用口令码查询状态和位置;卖家查看当前队列。 |
| 交易闭环 |
卖家决定何时开始,系统自动选队首并冻结商品;卖家登记成功或失败及失败处置。 |
| 撤销与下架 |
尚未进入交易的买家可撤销,交易中的买家不能撤销;卖家可主动下架商品。 |
1.2 后续验收与增强项
| 后续功能 |
安排到后续的原因 |
| 卖家修改密码 |
首轮使用固定初始账号登录即可完成核心流程;修改密码、校验旧密码和长度规则属于账号管理增强。 |
| 买家修改姓名或电话 |
首轮可通过等待时撤销后重新提交解决信息填错;在线修改属于便利性增强。 |
| 手动冻结与解冻商品 |
首轮保留交易开始时的系统冻结;卖家主动暂停和恢复商品另行验收。 |
| 商品分类与标签 |
不影响单件商品发布、浏览和交易闭环,属于商品管理扩展。 |
| 商品展示视频 |
涉及视频上传、大小和时长校验、存储及下架自动删除;首轮只支持图片展示。 |
| 历史商品、历史流水与长期个人信息留存 |
首轮只验收当前商品和当前队列;历史归档、只读查询、详细事件记录及长期保留策略后续验收。 |
2 角色与商品基础功能
2.1 使用角色
| 角色 |
首轮功能 |
| 买家(访客) |
无需账号或口令码即可浏览当前商品;提交购买意向后用口令码查询自己的意向状态和队列位置。 |
| 卖家(唯一账号) |
使用 admin / 123456 登录;发布和管理当前商品;查看意向队列;开始交易、登记结果或主动下架。 |
2.2 商品字段和校验
| 字段 |
首轮规则 |
| 商品名称 |
必填;目前不另设业务长度上限。 |
| 商品描述 |
选填;目前不另设业务长度上限。 |
| 商品图片 |
选填;最多 1 张 JPG 或 PNG,文件不超过 5 MB;未上传显示占位图,超限时提示。 |
| 价格 |
必填;人民币金额且大于 0,最多保留 2 位小数;目前不设价格上限。 |
- 同一时刻最多有一件当前商品。商品发布成功后直接进入“在售”;商品交易成功或卖家主动下架后,卖家可以发布下一件商品。
- 买家无需口令码即可查看当前商品。商品在交易中仍可查看,但不接受新的购买意向,并显示“商品交易中”。
3 买家意向与先到先得队列
- 提交购买意向时,姓名和联系电话为必填项;首轮校验空值即可,未另行规定号码格式或字段长度。买家不创建账号,也不登录。
- 提交成功后,系统生成与该意向绑定的唯一口令码,并在成功页面展示一次。口令码只用于查询和管理对应意向,不用于浏览商品或登录系统。
- 买家凭口令码查看意向状态、当前排队位置和商品状态。卖家后台显示当前有效意向的姓名、电话、提交时间、队列位置及状态。
- 系统以服务端成功提交时间为准按 FIFO 排队;卖家开始交易时只能由系统选择队首有效意向,不能跳过队首指定其他买家。
3.1 买家撤销规则
| 场景 |
首轮处理规则 |
| 仍在等待队列 |
买家可撤销。撤销后退出有效队列、原口令码立即失效,后续买家位置依次前移。 |
| 商品交易中,但买家尚未进入交易 |
买家仍可撤销自己的等待意向;撤销后原口令码立即失效,队列位置重新计算。 |
| 该买家已经进入交易 |
可用口令码查询状态,但不能撤销。买家不能自行标记交易成功或失败。 |
4 卖家交易和商品状态
| 卖家操作 |
商品处理 |
本次意向及口令码 |
| 开始交易 |
系统自动取队首有效意向;商品进入交易中并停止接收新意向。 |
队首改为“交易中”;其余买家保留排队状态。 |
| 交易成功 |
商品改为“商品下架”,当前商品流程结束。 |
本次意向为“交易成功”;未轮到的等待意向记为“交易失败”;相关口令码立即失效。 |
| 交易失败并作废 |
商品恢复“在售”,可继续处理队列。 |
本次意向作废并退出队列;口令码立即失效。 |
| 交易失败并重新排队 |
商品恢复“在售”,可继续处理队列。 |
沿用原意向和原口令码,移到队尾并刷新排队时间;买家仍显示“排队中”。 |
| 卖家主动下架 |
无进行中的交易时可下架;停止该商品的意向流程。 |
相关口令码立即失效;首轮不要求进入历史页面供卖家查询。 |
交易结果由卖家在后台登记,不需要买家确认。交易失败时,卖家必须在同一次操作中选择“作废”或“重新排队”;系统不会自动开始下一笔交易。
4.1 首轮状态
| 对象 |
状态 |
含义 |
| 商品 |
在售 |
可浏览、可提交新意向;卖家可开始队首交易或主动下架。 |
| 商品 |
交易中 |
已有买家进入线下交易;不接收新意向,等待卖家登记结果。 |
| 商品 |
商品下架 |
交易成功或卖家主动下架后进入;不再接受意向。 |
| 买家意向 |
排队中 |
等待卖家开始交易;口令码有效,可查询或撤销。重排后回到此状态。 |
| 买家意向 |
交易中 |
已进入交易;可查询,不可撤销。 |
| 买家意向 |
交易成功 / 交易失败 / 已作废 / 已撤销 |
按交易结果或撤销操作显示;对应口令码按前述规则立即失效,重排除外。 |
5 首轮验收检查
- 卖家可用 admin / 123456 登录,并能发布一个当前商品;缺少商品名称或价格时不能发布。
- 未登录买家可以浏览商品;图片可不上传,上传超过 5 MB 或格式不为 JPG / PNG 时得到提示。
- 买家姓名或电话未填写时不能提交;提交成功后看到唯一口令码,并能查询意向状态和排队位置。
- 多个买家提交后按提交顺序排队;卖家开始交易时系统只把队首带入交易。
- 交易开始后商品停止接受新意向;等待买家仍可查询和撤销,交易中的买家不能撤销。
- 等待买家撤销后口令码立即失效,且后续队列位置前移。
- 交易失败并作废后意向退出队列且口令码失效;交易失败并重新排队后原码有效且位置变为队尾。
- 交易成功后商品下架;队列剩余意向记为交易失败且口令码失效;卖家可以发布下一件商品。
- 卖家可在没有进行中交易时主动下架;下架后该商品不再接受新意向,相关口令码失效。
6 首轮技术边界
- 前端使用 Vue,后端使用 Spring Boot;买家端和卖家后台通过后端接口读取和更新商品、队列及交易状态。
- 当前商品、有效意向、队列顺序和口令码状态应持久化;服务重启后仍能继续当前商品流程。
- 口令码失效后,买家不能再用该码查询或修改对应意向。首轮不验收历史商品浏览、完整操作流水、分页历史、统计报表或永久个人信息留存。
- 商品视频及其“成功下架或主动下架后自动删除”规则随视频功能一起放入后续验收,不属于首轮图片上传范围。