买家前端设计文档讲述版 - H15058218452-rgb/Software-Engineering-Experimental-Group GitHub Wiki
1. 工作概述
1.1 工作目标
本阶段主要负责《在线购物系统 MVP》第一迭代中买家端的需求分析与原型设计。
本阶段暂不进行具体页面编码,重点确定买家端的:
- 角色与权限
- 页面结构
- 页面交互
- 业务流程
- 商品状态
- 购买意向状态
- 排队机制
- 口令码机制
- 异常场景
- 前后端职责
- 验收标准
2. 系统业务定位
| 项目 | 本 MVP 设计 |
|---|---|
| 卖家数量 | 单卖家 |
| 在售商品 | 同一时间仅一件 |
| 买家账号 | 不需要注册 |
| 支付方式 | 线下交易 |
| 购买方式 | 提交购买意向 |
| 购买处理 | 按提交时间排队 |
| 交易确认 | 卖家手动确认 |
| 商品冻结 | 卖家开始交易后冻结 |
| 买家身份识别 | 购买意向口令码 |
核心业务原则
提交购买意向 ≠ 进入交易 ≠ 商品冻结
实际业务关系为:
提交购买意向
↓
进入排队
↓
卖家选择队首买家
↓
进入线下交易
↓
商品冻结
↓
卖家确认交易结果
3. 买家角色与权限设计
买家采用匿名用户模式。
买家无需注册和登录,即可:
- 浏览商品
- 查看商品详情
- 提交购买意向
- 获取购买意向口令码
- 查询购买意向
- 查看排队位次
- 修改排队中的联系信息
- 撤销排队中的购买意向
- 查看交易状态
买家不能:
- 查看其他买家信息
- 修改正在交易中的意向
- 撤销正在交易中的意向
- 访问卖家后台
4. 买家端页面设计
本阶段设计 6 个核心页面:
| 编号 | 页面 | 核心功能 |
|---|---|---|
| BUY-01 | 商品浏览首页 | 查看当前商品 |
| BUY-02 | 商品详情页 | 查看商品详细信息 |
| BUY-03 | 购买意向提交页 | 填写买家信息 |
| BUY-04 | 意向提交成功页 | 展示一次性口令码 |
| BUY-05 | 意向口令码管理页 | 查询购买意向 |
| BUY-06 | 意向详情/状态页 | 管理购买意向 |
页面关系:
商品首页
↓
商品详情
↓
提交购买意向
↓
提交成功
↓
口令码管理
↓
意向详情
5. 核心业务设计
5.1 购买意向机制
买家提交购买意向后,并不会立即冻结商品。
所有有效意向按照提交时间进入队列。
例如:
A 10:01 → 第1位
B 10:03 → 第2位
C 10:05 → 第3位
卖家只能选择队首买家开始交易。
因此:
先提交,先获得交易机会。
5.2 商品状态
在售
↓
卖家选择队首买家
↓
已冻结(交易中)
↓
├── 交易成功 → 已下架
│
└── 交易失败
├── 队列有买家 → 继续冻结
└── 队列为空 → 恢复在售
商品状态:
| 状态 | 查看商品 | 提交意向 |
|---|---|---|
| 在售 | ✓ | ✓ |
| 已冻结 | ✓ | × |
| 已下架 | × | × |
6. 购买意向状态设计
购买意向状态:
排队中
↓
正在交易
├──→ 已成功
├──→ 已作废
└──→ 重新排队
↓
排队中
其中:
排队中
允许:
- 查询
- 修改姓名
- 修改联系电话
- 撤销意向
正在交易
只允许查询,不允许买家修改或撤销。
重新排队
交易失败后进入队尾。
原口令码继续有效。
已成功 / 已作废 / 已撤销
购买意向终结,口令码失效。
7. 口令码设计
由于系统没有买家注册,因此需要解决:
买家如何再次找到自己的购买意向?
本系统采用购买意向口令码作为匿名身份凭证。
流程:
提交购买意向
↓
系统生成唯一口令码
↓
成功页面展示
↓
买家自行保存
↓
后续通过口令码查询
口令码生命周期:
| 状态 | 口令码 |
|---|---|
| 排队中 | 有效 |
| 正在交易 | 有效 |
| 重新排队 | 有效 |
| 买家撤销 | 失效 |
| 卖家作废 | 失效 |
| 交易成功 | 失效 |
| 商品下架导致意向终结 | 失效 |
8. 关键异常场景
本阶段重点考虑以下异常:
8.1 商品状态变化
买家打开页面时商品为在售,但提交时商品已经被冻结。
处理:
前端提交
↓
后端重新检查商品状态
↓
商品已冻结
↓
拒绝提交
提示:
商品状态已发生变化,请刷新页面后重试。
8.2 重复提交
前端:
- 提交按钮进入加载状态
- 禁止重复点击
8.3 交易失败
卖家可以选择:
交易失败
├── 作废
│ └── 意向终结
│
└── 重新排队
└── 进入队尾
如果还有其他买家,则自动递补下一位。
如果没有其他买家,则商品恢复在售。