Repository navigation
Requirements‐Analysis
| 项目 | 内容 |
|---|---|
| 文档名称 | 在线购物系统(最小可行产品)需求分析文档 |
| 版本 | V2.2 |
| 日期 | 2026-10-05 |
| 编写依据 | ① 基线需求原文(全文见附录 A);② 需求方对全部澄清问题的最终答复(全文见附录 B) |
| 文档说明 | 本文档取代此前所有版本的需求规格/分析文档。凡本文档与旧版本冲突之处,以本文档为准。本文档自包含:正文引用的全部需求来源原文均收录于附录,无需外部文件即可核对。 |
修订记录(V2.0 → V2.1)
- 商品状态机由三态改为五态:在售、冻结、交易失败、恢复在售、下架(依据附录 B-10 口径)。
- 新密码规则确定为已定需求:不少于 8 位,且同时包含字母和数字(原待确认项 9.1.1,需求方确认按默认规则执行)。
- 删除"卖家初始账号交付方式"待确认项(需求方认为无需提出)。
- 原 9.2"实现解读"独立为第 9 节单独板块。
修订记录(V2.1 → V2.2)
- 文档改为自包含:新增附录 A(基线需求原文)与附录 B(需求方最终答复原文 B-1 ~ B-19)。
- 正文中"依据"列的引用由外部文件名改为附录内编号(如原"整理#3"→"B-3"),脱离原始 txt 文件亦可核对来源。
- 第 6 节表头注明引用含义。
依据基线需求与需求方的全部澄清答复,对"在线购物系统(MVP)"形成完整、无歧义的需求描述,明确角色、功能、业务规则、数据定义与状态流转,作为设计、实现与验收的依据。
本系统是一个只销售单一商品的极简在线购物系统,服务于一名卖家与不特定访客。买家免注册;交易线下完成(一手交钱一手交货),系统不涉及在线支付、物流与库存数量管理。售出一件后,卖家再发布下一件。
本版本明确不做的功能(需求方已确认,详见第 8 节):用户注册、退出登录、修改已发布商品、撤销交易成功、超时自动处理、意向去重合并、意向操作流水。
| 术语 | 定义 |
|---|---|
| 在售 | 商品对外展示、可接受购买意向的状态。 |
| 意向购买人 / 意向队列 | 提交购买意向后即进入该商品的意向名单,按提交时间先后排队。 |
| 交易中 | 卖家与队首买家开始走线下交易流程时,该意向所处的状态;同一商品同一时刻至多一条。 |
| 冻结 | 商品暂停接受新意向的状态。两种进入方式:开始交易时自动冻结、卖家在后台手动冻结;二者是同一个"已冻结"状态。 |
| 交易失败(状态) | 卖家标记"交易失败"后商品进入的过渡状态,此时先处置当前买家的意向,再按队列情况分流。 |
| 恢复在售 | 交易失败处置完毕且队列已空后,商品重新可售的状态;行为与"在售"完全等价。 |
| 下架 | 交易成功后商品进入的终态,永久撤下、进入历史,不可撤销。 |
| 递补 | 交易失败后,若队列中还有人排队,下一位自动进入交易,商品随之重新冻结。 |
| 口令码 | 买家提交意向成功后系统当场生成的唯一凭证,是买家认领自己意向的唯一凭据,可凭它查询、修改、撤销意向。 |
| 作废 | 交易失败后,卖家选择将该买家的意向直接终结。 |
| 重新排队 | 交易失败后,卖家选择让该买家排到队尾:旧意向结案、旧口令码即时失效,生成新记录与新口令码。 |
| 未成交 | 商品被更早排队的买家买走后,队列中其余意向的结局。 |
| 历史商品 | 交易成功后永久下架、进入历史的商品,连同其完整意向名单一并保留。 |
| 角色 | 说明 |
|---|---|
| 访客(买家) | 无需注册、无需登录。可浏览在售商品、提交购买意向,并凭口令码查询 / 修改 / 撤销自己的意向。 |
| 卖家 | 系统唯一的管理用户。凭"用户名 + 密码"登录后台,发布商品、管理商品状态、按先来后到与买家交易、查看意向名单与历史商品、修改密码。 |
商品在其生命周期内于以下五个状态间切换:在售、冻结、交易失败、恢复在售、下架。
| 状态 | 含义 | 进入方式 | 是否接受新意向 |
|---|---|---|---|
| 在售 | 商品展示中,可接受购买意向 | 卖家发布 | 是 |
| 冻结 | 暂停接受新意向。含两种触发:开始交易时自动冻结、后台手动冻结(同一个"已冻结"状态) | 在售/恢复在售中开始交易或手动冻结 | 否 |
| 交易失败 | 过渡状态:卖家已标记交易失败,系统正在处置当前买家的意向(作废 / 重新排队) | 冻结中标记"交易失败" | 否 |
| 恢复在售 | 交易失败处置完毕且队列已空,商品重新可售;行为与"在售"完全等价 | 交易失败且队列已空 | 是 |
| 下架 | 终态:交易成功,商品永久撤下进入历史,不可撤销 | 冻结中标记"交易成功" | 否 |
状态转移表:
| 当前状态 | 触发事件 | 下一状态 | 说明 |
|---|---|---|---|
| 在售 | 买家提交意向 | 在售(不变) | 提交只登记排队,不冻结商品;商品继续展示、继续接受意向。 |
| 在售 / 恢复在售 | 卖家"开始交易"(对象为队首) | 冻结 | 自动冻结,该队首意向变为"交易中"。 |
| 在售 / 恢复在售 | 卖家手动冻结 | 冻结 | 手动与自动是同一个"已冻结"状态。 |
| 冻结 | 卖家手动解冻 | 在售 | 只动商品状态,不触碰任何意向。主要用于卖家自己冻结(无人在交易)后想解开。 |
| 冻结 | 卖家标记"交易失败" | 交易失败 | 进入过渡状态,先处置当前买家意向:作废 / 重新排队(二选一)。 |
| 交易失败 | 意向处置完毕,队列非空 | 冻结 | 下一位自动递补进入交易,商品随之重新冻结。 |
| 交易失败 | 意向处置完毕,队列已空 | 恢复在售 | 商品重新可售,可继续接受意向。 |
| 冻结 | 卖家标记"交易成功" | 下架 | 商品永久下架入历史,不可撤销;其余意向记"未成交",全部口令码失效。 |
约束:
- "交易失败"是过渡状态,不停留:意向处置完毕后立即按队列情况分流(非空 → 冻结,已空 → 恢复在售)。
- "恢复在售"与"在售"行为完全等价(可接受意向、可开始交易、可手动冻结);区分为两个名称只为明确表达"该商品是经历交易失败后重新上架的"这一来历。
- 任意时刻系统中至多一件未售出商品;上一商品未售出前不得发布新商品。
- 冻结期间停止接受新的购买意向;已在队列中的意向保留。
- 商品发布之后(无论在售、冻结还是已售出)信息不可修改。
- 买家登记意向后进入队列,商品仍在售,他人可继续登记。
- 交易对象不是卖家随便挑的:严格按提交时间先来后到,队首先交易;前面没谈成,按顺序递补下一位。卖家不能跳过前面的人。
- 买家撤销(凭口令码)只是自己退出排队,后面的人位次依次前移;商品不会因买家撤销而自动恢复在售——恢复在售永远是卖家在后台的操作结果。
- 每次提交都是一条独立的意向记录:不因联系方式相同而合并或覆盖。要改信息走口令码通道,不靠重复提交覆盖。
每条意向从提交到终结经历:
提交 → 排队中 → 交易中 →(成功 / 作废 / 重新排队)
└──────→ 撤销(买家凭口令码主动退出)
└──────→ 未成交(商品被更早排队者买走)
- 结局共五种,各自记清:成功、作废、重新排队、撤销、未成交。历史里要能看出"这个人排队又退出了""那单失败后又重新排了"。
- "重新排队"的结案方式:旧记录以结局"重新排队"结案、旧口令码即时失效;系统生成一条新记录(新口令码、排到队尾)。卖家须把新口令码线下告知买家。
- 排队位次按提交时间排序;凭口令码修改姓名/电话不改变位次、不重新排队。
口令码贯穿买家侧全程,是免注册前提下买家认领意向的唯一凭证:
| 环节 | 规则 |
|---|---|
| 生成 | 提交意向成功时系统生成唯一口令码,当场展示在提交成功页面,提示买家自行保存。 |
| 查询 | 凭口令码可查看:当前排到第几位、是否已进入交易。 |
| 修改 | 凭口令码可修改姓名、联系电话两项;不改位次。 |
| 撤销 | 凭口令码可撤销意向,从队列移除,后面位次前移。 |
| 失效 | 对应意向终结(成功/作废/撤销/未成交)或商品下架后,口令码作废,不能再查、改、撤;重新排队时旧码即时失效、另发新码。 |
注意:商品一旦售出下架,所有口令码(包括没轮上的买家的)立即作废,买家连"没成交"这个结果也查不到;但他们的姓名、电话、提交时间与结局仍保留在卖家后台的历史记录里。
FR-B-01 浏览在售商品
- 展示当前商品的名称、描述、图片、价格。
- 商品处于冻结状态时仍展示,但须标识"已被预定 / 暂停接受意向",且不开放提交入口。
- 无在售商品时提示"暂无在售商品"。
FR-B-02 提交购买意向
- 前置条件:商品处于"在售"或"恢复在售"状态。
- 填写字段:姓名、联系电话,两项均必填(仅此两项)。
- 提交成功:生成一条独立意向记录进入队尾,系统当场生成并展示唯一口令码,提示买家保存。
- 每次提交都是独立记录,不做联系方式去重或合并。
FR-B-03 查询意向(凭口令码)
- 输入口令码,显示该意向的排队位次、是否已进入交易。
- 口令码无效或已失效时,提示无法查询。
FR-B-04 修改意向信息(凭口令码)
- 可修改姓名、联系电话;其余内容不可改。
- 修改不改变排队位次、不触发重新排队。
- 仅口令码有效(意向未终结)时可用。
FR-B-05 撤销意向(凭口令码)
- 撤销后意向从队列移除,结局记为"撤销",后面的人位次前移。
- 商品状态不因撤销而改变:即使撤销的是正在交易中的买家,商品仍保持冻结,须由卖家在后台处理。
FR-S-01 登录
- 凭"用户名 + 密码"登录;未登录不得访问后台任何功能。
- 本版本不要求退出登录功能。
FR-S-02 发布商品
- 填写:商品名称、商品描述、商品图片(最多一张主图,仅 JPG/PNG,单张不超过 5MB)、商品价格(大于 0,保留两位小数,单位:人民币元)。
- 前置条件:系统内无未售出商品(上一商品已进入历史)。
- 发布后商品进入"在售"状态,记录发布时间。
- 商品一经发布,任何状态下均不可修改。
FR-S-03 查看意向队列
- 按提交时间顺序显示意向名单:位次、姓名、联系电话、提交时间、当前状态(排队中/交易中)。
FR-S-04 开始交易
- 卖家从队列发起交易时,系统强制取队首(最早提交者),不允许跳过前面的人。
- 开始后:商品自动冻结,该意向变为"交易中"。
FR-S-05 手动冻结 / 解冻
- 手动冻结:在售/恢复在售 → 冻结,停止接受新意向。
- 手动解冻:冻结 → 在售,只改变商品状态,不影响任何意向(不会把任何人的意向判为失败)。
- 典型用途:卖家自己冻结(无人在交易)之后想解开。真要结束与某位买家的交易,走"标记交易失败"。
FR-S-06 标记交易成功
- 仅对"交易中"的意向可操作。
- 结果:商品下架进入历史(终态,不可撤销,标记前须确认清楚);该买家意向结局记"成功";队列中其余未结束意向结局记"未成交";全部口令码即时失效。
- 记录交易时间。
FR-S-07 标记交易失败
- 仅对"交易中"的意向可操作。
- 商品进入"交易失败"过渡状态,卖家须同时确认对该买家意向的处置,二选一:
- 作废:意向终结,结局记"作废",口令码失效;
- 重新排队:旧记录结局记"重新排队"、旧口令码即时失效;生成新记录(新口令码)排至队尾,卖家将新口令码线下告知买家。
- 处置后:队列非空 → 下一位自动递补进入交易,商品重新冻结;队列已空 → 商品进入"恢复在售"。
- 记录结果标记时间。
FR-S-08 查看历史商品
- 每个历史商品显示:名称、描述、图片、价格、发布时间、交易结果、交易时间。
- 每个历史商品附带完整意向购买人名单:姓名、电话、提交时间、对应结局(成功/作废/重新排队/撤销/未成交),成交后也不删除。
FR-S-09 修改密码
- 须先验证原密码。
- 新密码规则(已定需求):不少于 8 位,且同时包含字母和数字。
- 密码加密存储,不明文保存;记录改密时间。
| 字段 | 规则 |
|---|---|
| 商品名称 | 必填;发布后不可改 |
| 商品描述 | 必填;发布后不可改 |
| 商品图片 | 必填,最多 1 张主图,仅 JPG/PNG,单张 ≤ 5MB;发布后不可改 |
| 商品价格 | 必填,> 0,两位小数,人民币;发布后不可改 |
| 状态 | 在售 / 冻结 / 交易失败(过渡) / 恢复在售 / 下架 |
| 发布时间 | 系统记录 |
| 冻结时间 | 系统记录(关键操作时间戳) |
| 交易结果、交易时间 | 系统记录(售出后) |
| 字段 | 规则 |
|---|---|
| 关联商品 | 对应的商品 |
| 姓名 | 必填 |
| 联系电话 | 必填 |
| 提交时间 | 系统记录,决定排队位次 |
| 口令码 | 系统生成的唯一凭证 |
| 状态 / 结局 | 排队中、交易中;终结后记录结局:成功 / 作废 / 重新排队 / 撤销 / 未成交 |
留痕边界:历史只存每条意向最终定下来的内容(最终的姓名、电话、提交时间、结局)。买家中途改过几次、何时改的、何时撤的,操作流水不保留;"意向修改/撤销"不在关键操作时间戳清单内。
| 字段 | 规则 |
|---|---|
| 用户名 | 系统预置,唯一 |
| 密码 | 可修改,加密存储;改密须验原密码;新密码 ≥ 8 位且同时包含字母和数字 |
必须记录时间戳的操作:发布商品、冻结、标记交易结果(成功/失败)、修改密码。 明确不记录时间戳的操作:意向的修改与撤销。
全部数据(商品、意向、口令码、账号)须持久保存,关机、重启不丢失。
| 编号 | 规则 | 依据 |
|---|---|---|
| BR-01 | 提交意向只登记排队,不冻结商品;商品继续在售、继续接受意向 | B-3 |
| BR-02 | 卖家与队首开始交易时商品自动冻结;也可后台手动冻结;同一"已冻结"状态 | B-3、B-9 |
| BR-03 | 冻结期间停止接受新意向 | B-3 |
| BR-04 | 交易对象严格先来后到,卖家不可跳选;失败后按顺序递补 | B-3 |
| BR-05 | 交易失败且队列非空 → 下一位自动递补进入交易并重新冻结;队列已空 → 恢复在售 | B-11 |
| BR-06 | 手动解冻只动商品状态,不触碰任何意向 | B-12 |
| BR-07 | 交易失败时卖家二选一:作废 / 重新排队(队尾 + 旧口令码失效、另发新码) | B-15 |
| BR-08 | 交易成功 → 商品下架(终态,不可撤销);其余意向记未成交,全部口令码失效 | B-13、B-14 |
| BR-09 | 买家凭口令码可撤销;撤销只退出排队、位次前移,商品不自动恢复在售 | B-1、B-18 |
| BR-10 | 每次提交独立记录,不按联系方式合并/覆盖 | B-17 |
| BR-11 | 意向信息字段仅姓名 + 联系电话,均必填 | B-2 |
| BR-12 | 凭口令码修改只限姓名、电话,不改位次 | B-18 |
| BR-13 | 口令码失效时机:意向终结或商品下架;重新排队时旧码即时失效 | B-7、B-15、B-18 |
| BR-14 | 商品发布后不可修改(任何状态) | B-8、B-9 |
| BR-15 | 历史保留完整意向名单(姓名/电话/提交时间/结局),成交后不删 | B-4、B-16 |
| BR-16 | 历史只留意向最终内容,不留修改/撤销流水 | B-19 |
| BR-17 | 图片最多 1 张,JPG/PNG,≤ 5MB;价格 > 0、两位小数、人民币 | B-10 |
| BR-18 | 密码加密存储;改密验原密码;新密码 ≥ 8 位且含字母和数字 | B-9、B-10 + V2.1 确认 |
| BR-19 | 关键操作(发布/冻结/标记结果/改密)记时间戳;数据持久不丢 | B-10、B-19 |
"依据"列说明:
B-n表示本文档附录 B 的第 n 条(需求方答复原文),可直接在附录中核对该条规则的原话出处。
- NFR-01 一致性(防一货两卖):任意时刻至多一件未售出商品;同一商品同一时刻至多一条"交易中"意向;开始交易、递补、标记结果等状态切换须原子完成,不得出现两人同时买下同一商品。
- NFR-02 数据持久性:关机、重启后数据不丢失(见 5.5)。
- NFR-03 安全性:密码加密存储;后台全部功能须登录后访问;意向购买人联系方式仅卖家可见;口令码唯一且不可被枚举猜测(实现要求)。
- NFR-04 可用性:买家免注册完成"浏览 → 提交 → 查/改/撤"全流程,界面极简。
| 不做的功能 | 依据 |
|---|---|
| 用户注册(买家侧) | 基线 |
| 退出登录 | B-9 |
| 修改已发布商品(任何状态下) | B-8、B-9 |
| 撤销"交易成功"标记 | B-14 |
| 冻结/交易超时自动处理 | B-6 |
| 按联系方式对意向去重、合并、覆盖 | B-17 |
| 意向修改/撤销的操作流水与时间戳 | B-19 |
| 在线支付、物流、库存数量 | 基线 |
| 落选买家通知(售出后口令码直接失效,无通知渠道) | B-13 |
| 手动下架(不经交易直接撤下商品) | B-9 后台功能清单未包含 |
以下条目需求方未逐字明确,本文档按如下默认口径实现;需求方有异议时以需求方答复为准。
- "重新排队"的落库方式:解读为"旧记录以结局'重新排队'结案 + 生成新记录(新口令码、新提交时间、排队尾)"。理由:同时满足"四种结局各自记清"与"每条记录只存最终内容"两条要求。
- "未成交"结局:答复列举的四种结局(成功/作废/重新排队/撤销)未覆盖"商品被他人买走时队列中剩余意向"的结局,本文档补充第五种"未成交"。
- 交易中执行手动解冻:允许,但只解冻商品;该买家意向保持"交易中"标记,卖家事后仍须通过"标记交易结果"正式结束。建议界面上提示"结束交易请使用标记交易失败"。
- 冻结中商品的前台展示:默认正常展示商品信息,附加"已被预定/暂停接受意向"标识。
- 口令码格式:实现自由,建议 8 位以上随机字母数字,保证唯一、不可顺序枚举。
以下为课程题目给出的原始需求(基线),本文档全部内容均在其范围内展开,未自行扩大。
基线需求——最简单而又可用的在线购物系统(MVP),具备功能如下:
- 只卖一个商品,卖掉一个,再制作一个,再卖。
- 只有一个卖家。
- 没有用户注册,当查看后想要购买时,再填入用户信息。
- 线下交易,一手交钱一手交货。
- 在实施线下交易前,商品暂且冻结,直到交易成功,把商品撤下,或者交易失败,商品恢复上线。
- 卖家有一个后台,用于发布一个商品、查看历史商品、查看意向购买人信息、冻结商品等功能。
- 卖家可修改密码。
- 其中商品信息包括:商品名称、商品描述、商品图片、商品价格。
题目附加说明:本系统为软件需求工程实践作业,要求"根据基线需求完善成正常正确的需求,不自行多加需求"。
本附录为需求方(卖家)对全部澄清问题的最终答复原文,按答复先后顺序编号 B-1 ~ B-19。正文第 6 节"关键业务规则速查"的"依据"列即指向此处,可逐条核对原话。
B-1 · 买家撤销的后果
买家撤销只是他退出排队,后面的人位次往前挪一下。商品本身不会因为买家点个「撤销」就自动变回可卖——商品什么时候恢复在售,还是得我在后台操作(标记交易失败,或者手动解冻),不是买家那边一点就能直接放出来的。
B-2 · 意向信息字段
就两个:姓名和联系电话,都得填。买家看中了想买的时候,填这俩就行,我好线下联系他完成交易。
B-3 · 冻结触发时机与先来后到
买家登记意向之后,不会立刻冻结商品。他登记完只是进了我的「意向购买人」名单,算是在排队——这时候商品还在正常在售,别人也还能继续登记意向。 冻结是等真正进入交易时才发生的:我跟某个买家开始走交易流程(商品变成「交易中」)时,商品会自动冻结;我也可以在后台手动冻结。冻结之后才停止收新的意向。 而且交易对象也不是我随便挑的,是按先来后到——最早提交意向的先跟我交易;前面这单要是没谈成,再按提交顺序递补下一个。
B-4 · 历史保留意向名单
会保留的,成交了也不删。我后台看历史商品的时候,每个商品下面都带着它的意向购买人名单——姓名、电话、什么时候提交的意向、最后是成了还是没成,都留着,方便我以后翻记录。
B-5 · 线下交易的确认方
线下交易谁说了算——由我(卖家)在后台标记。买卖双方当场「一手交钱一手交货」谈妥之后,我自己在后台把这一单标成「交易成功」或「交易失败」,系统就按我标的这个结果去改商品状态。
B-6 · 无超时机制
这个版本没有超时机制。商品冻结之后会一直保持冻结状态,直到交易有个结果为止——不存在「冻结多久自动算超时、系统自动处理」这一说。结果是我在线下交易完成后自己在后台标记的:标记成功就下架,标记失败就恢复在售、重新上线。系统本身不会去算冻结了多久,也不会自动超时。
B-7 · 口令码机制
买家虽然不登录,但每次提交购买意向后,系统会当场生成一个唯一的口令码,直接显示在提交成功的页面上,让他自己保存好。 之后他就凭这个口令码来查自己的意向——现在排到第几位、有没有进入交易,都能查到;还能凭它改自己留的姓名、电话,或者撤销意向。 不过这个口令码只在交易结束(成功或失败)或商品下架后失效,之后就不能再用来查了。
B-8 · 不提供修改已发布商品
不能。这个版本没有「修改已发布商品信息」的功能——商品发布后,名称、描述、图片、价格这些信息就固定下来了。卖家后台对商品能做的只有发布、冻结/解冻、标记交易成功或失败,没有编辑入口。
B-9 · 卖家后台功能清单
登录:必做。后台得用「用户名 + 密码」登录,不登录进不去。 退出:这个我没提过,这版本不要求做退出登录。 修改密码:必做。改的时候得先验原密码,新密码有长度和强度要求。 发布商品:必做。填名称、描述、图片、价格。 修改商品:没有这个功能。商品发布之后——不管在售、冻结还是已售出——都不能改。 手动冻结:必做(冻结和解冻都在后台手动操作,跟自动冻结是同一个「已冻结」状态)。 查看购买意向:必做。后台能看到意向购买人名单和联系方式。 确认交易结果:必做。线下交易完了,我在后台标记「交易成功」或「交易失败」。 查看历史商品:必做。后台能翻历史记录。 商品冻结或售出后还能改吗:不能。这版本压根没做「修改商品」,发布了就定死了,冻结、售出之后更动不了。
B-10 · 商品状态、图片与价格规则、历史内容、数据持久与密码
商品得有状态来回切:在售、冻结、下架、交易失败恢复在售,这一套得定清楚,别让一件商品被两个人同时买走。 图片:一件商品最多传一张主图,就认 JPG/PNG,单张别超过 5MB。 价格:得是大于 0 的数,保留两位小数,人民币。 历史记录要存啥:商品名、描述、图片、价格、发布时间、交易结果、交易时间;意向购买人名单里得有姓名、电话、提交时间、结果。 数据不能一关机就没;发布、冻结、标记结果、改密码这些关键操作得记时间戳。 密码得加密存,不能明文;改密要验原密码。
B-11 · 交易失败后自动递补
我标记「交易失败」→ 商品先恢复「在售」→ 只要后面还有人排队,下一位就自动递补进入交易,商品随之重新冻上;要是队已经排空了,商品就真正回到「在售」挂着。
B-12 · 手动解冻与标记交易失败的区别
手动解冻不会自动把那位买家的意向判成失败。手动解冻只是把商品从「冻结」放回「在售」,就动了商品这一个状态,不碰买家的意向。 标记交易失败:这才是正式结束跟某位买家的交易——那时候我会确认这位买家的意向是作废还是重新排队,商品同时恢复在售。 所以真在跟人谈着的时候想结束,走「标记交易失败」;手动解冻主要是我自己冻了商品(没人在谈)之后想解开用的。
B-13 · 交易成功后其余意向的处置
商品交易成功、一下架,其余排队的人就算没轮上、没成交了,他们的意向到此结束——商品已经卖给先到的那个人了。口令码:失效了。商品一下架,所有口令码就作废,他们不能再凭码查到任何结果(包括"没成交"这个结果)。 不过:他们填的姓名、电话这些,还留在我的后台历史记录里——每个商品的意向购买人名单都存着,含提交时间和对应结果,只是买家自己查不到了,我后台能翻到。
B-14 · 不可撤销交易成功
没有,这个版本没有「撤销交易成功」的功能。我在后台标记了「交易成功」之后,商品就直接永久下架、进历史记录了,点错了也撤不回来。所以标记前得先确认清楚。
B-15 · 交易失败时对买家的两种处置
交易失败之后,我可以选把这个买家的意向直接「作废」,也可以让他「重新排队」,这两个由我在后台确认。不过「重新排队」是排到队尾,口令码立刻失效重新生成。
B-16 · 意向四种结局均须记录
历史要能还原整个商品的完整过程,所以每个意向从提交到最后结局,都得留个状态。我倾向这样记——成功、作废、重新排队、撤销,这四种结局都各自记清楚,而不是只留「成功/作废」两档。因为重新排队和撤销都是真实发生过的事,卖家回头查历史,应该能看出「这个人排队又退出了」「那单失败后又重新排了」。
B-17 · 每次提交独立记录
我现在的想法就是:每次提交都是一条独立的意向记录,一条就是一条,不会因为联系方式相同就自动合并覆盖。真要改自己的信息,有专门的通道(凭提交时拿到的凭证),不是靠「重复提交同名联系方式」去覆盖。
B-18 · 口令码全流程与边界
买家要改意向,核心靠的是提交成功时系统给的那个「口令码」——买家没注册,口令码就是他认领自己这条意向的唯一凭证,所以第一步是:提交时把口令码保存好。 完整流程大概这样:提交意向时,系统生成一个唯一口令码,在提交成功页面直接展示,提示买家保存;买家想查自己的意向,就凭口令码查询——能看到自己的排队位次、有没有进入交易;想改信息,凭口令码修改——姓名、联系电话这两个都可以改;不想要了,凭口令码撤销——撤销后这条意向从队列里移除,排在后面的人位次依次往前移。 限制和边界:改内容只限姓名、联系电话,别的不动;修改不改变排队位次、不重新排队,原来排第几还是第几;口令码会失效:交易结束(成功或失败)或商品下架后,口令码就作废了,不能再用来查、改、撤。 所以概括起来就是:一口令码贯穿全程,能查、能改名和电话、能撤销;改信息不插队,交易完了码就失效。
B-19 · 历史只留最终内容
只保存最新内容,不留完整过程。历史记录里的「意向购买人」列表,存的是每个买家最终的那份:姓名、联系电话、意向提交时间、对应的交易结果。买家中途改过几次、撤销没撤销,这些操作流水不会保留,系统里留的就是最后定下来的那一条。 而且我这边对关键操作记时间戳的清单里(发布、冻结、标记交易结果、改密码),也没有「意向修改/撤销」这一项——所以改动的过程本身是不留痕的。
| 附录 B 条目 | 主题 | 被引用处 |
|---|---|---|
| B-1 | 买家撤销的后果 | BR-09 |
| B-2 | 意向信息字段 | BR-11 |
| B-3 | 冻结触发时机、先来后到 | BR-01 ~ BR-04 |
| B-4 | 历史保留意向名单 | BR-15 |
| B-5 | 线下交易确认方 | 3.3 状态机(交易结果的确定) |
| B-6 | 无超时机制 | 第 8 节(不做超时) |
| B-7 | 口令码机制 | BR-13 |
| B-8 | 不可修改商品 | BR-14 |
| B-9 | 后台功能清单、密码要求 | BR-02、BR-14、BR-18 |
| B-10 | 状态/图片/价格/历史/持久化/密码 | BR-17 ~ BR-19 |
| B-11 | 交易失败自动递补 | BR-05 |
| B-12 | 手动解冻与标记失败的区别 | BR-06 |
| B-13 | 交易成功后其余意向处置 | BR-08、BR-13 |
| B-14 | 不可撤销交易成功 | BR-08 |
| B-15 | 失败时作废/重新排队 | BR-07、BR-13 |
| B-16 | 四种结局均须记录 | BR-15 |
| B-17 | 每次提交独立记录 | BR-10 |
| B-18 | 口令码全流程与边界 | BR-09、BR-12、BR-13 |
| B-19 | 历史只留最终内容 | BR-16、BR-19 |