业务流程图 - xych5q/online-shop GitHub Wiki
第 1 组 · 在线购物系统(迭代 1) | 与 需求规格说明书 4 节状态机(v1.1)、用例表 对应 图为 Mermaid 源码,GitHub Wiki 页面可直接渲染。 2026-10-07 同步:依据 需求问题库 第三节 8 条答复——队首自动进入交易并自动冻结、交易中买家仍可撤销、手动下架不因有排队意向禁止、失败意向由卖家后台逐单处置。
flowchart TD
A[卖家发布商品] --> B[商品: 在售]
B --> C[买家浏览商品<br/>描述空则留空 无图占位图]
B -- "卖家手动下架(系统自动执行)<br/>不因有排队意向而禁止" --> Z["商品: 已下架进历史<br/>队列剩余意向: 失败<br/>口令码全部失效(查不到改不了撤不了)<br/>系统无通知 买家凭码自查"]
C --> D["买家提交意向<br/>姓名+电话 必填·完全不校验"]
D --> E[获得口令码<br/>仅显示一次]
E --> F[排队中]
F --> G{轮到队首}
G -- "系统自动<br/>(卖家无'进入交易'操作)" --> H[商品自动冻结<br/>队首意向: 交易中]
H --> I{卖家线下交易后<br/>标记结果}
I -- 成功 --> J["意向: 成功<br/>队列剩余: 失败<br/>商品: 已下架进历史<br/>口令码全部失效"]
I -- 失败 --> K[意向: 失败<br/>待卖家处置]
K --> L{队列还有人?}
L -- 有 --> M[下一位自动递补<br/>商品保持冻结]
M --> I
L -- 没有 --> N[商品恢复在售]
N --> C
K --> O{卖家后台逐单处置}
O -- 作废 --> P[意向彻底结束]
O -- "重新排队(无次数上限)" --> Q[排到队尾<br/>口令码不变]
Q --> F
F -- 买家凭码撤销 --> R[意向: 已撤销<br/>口令码失效]
H -- "队首凭码撤销(交易中口令码仍有效)" --> T[意向: 已撤销<br/>交易终止 商品恢复在售]
T --> T2{队列还有人?}
T2 -- 有 --> G
T2 -- 没有 --> C
关键点(2026-10-07 拍板):① 队首进入交易与冻结均由系统自动完成,卖家后台手动操作仅剩"标记交易结果"与"冻结/解冻"两项;② 交易中买家仍可凭码撤销,撤销后交易终止、商品恢复在售、后续队列按序递补。
stateDiagram-v2
[*] --> 在售: 卖家发布
在售 --> 已冻结_manual: 手动冻结
在售 --> 已冻结_auto: 队首自动进入交易(系统自动·同时冻结)
已冻结_manual --> 在售: 手动解冻
已冻结_auto --> 已下架: 标记交易成功
已冻结_auto --> 在售: 标记失败且队列空
已冻结_auto --> 已冻结_auto: 标记失败且队列有人<br/>(下一位自动递补)
在售 --> 已下架: 手动下架(不因有排队意向禁止)
已冻结_manual --> 已下架: 手动下架
已下架 --> [*]: 进入历史(只读)
说明:手动冻结与交易冻结共用"已冻结"状态,用 frozenBy 区分(manual/auto);买家端不区分提示文案。无超时自动解冻机制。下架后排队意向口令码全部失效,系统无通知功能。
stateDiagram-v2
[*] --> 排队中: 提交意向<br/>获得口令码
排队中 --> 交易中: 成为队首<br/>系统自动进入交易
交易中 --> 成功: 卖家标记交易成功
交易中 --> 失败: 卖家标记交易失败
排队中 --> 已撤销: 买家凭码撤销
交易中 --> 已撤销: 队首凭码撤销<br/>(交易终止·商品恢复在售·后续递补)
失败 --> 排队中: 卖家后台置为重新排队<br/>(口令码不变·排到队尾·无次数上限)
成功 --> [*]
已撤销 --> [*]
失败 --> [*]: 卖家作废 / 商品下架
终态三档:成功 / 撤销 / 失败。口令码在进入终态后失效(重新排队期间除外)。交易中口令码始终有效,可查、可改、可撤。
| 规则 | 内容 | 依据 |
|---|---|---|
| 先到先得 | 队列按提交时间正序,卖家不能挑人 | 全站澄清 |
| 进入交易 | 系统自动:队首自动进入交易并自动冻结,卖家后台无"进入交易"操作 | 10-07 答复 #8 |
| 冻结期间 | 不接收新意向;可浏览;不区分手动/交易文案 | 全站澄清 |
| 交易中撤销 | 买家在交易中仍可凭码撤销;队首撤销 → 交易终止、商品恢复在售、后续递补;撤销按钮无需隐藏 | 10-07 答复 #3 |
| 成功后果 | 商品下架进历史 + 队列剩余转失败 + 口令码全失效 + 不可撤销 | 全站澄清 |
| 失败后果 | 下一位自动递补;队列空则恢复在售 | 全站澄清 |
| 失败意向处置 | 由卖家在后台逐单确认作废或重新排队(非系统自动入队);重排无次数上限、排到队尾、口令码不变 | 10-07 答复 #6、#9 |
| 手动下架 | 不因有排队意向而禁止;队列剩余意向转失败、口令码全部失效;系统无通知功能 | 10-07 答复 #2 |
| 修改信息 | 买家改姓名/电话后,卖家后台与历史记录均显示最新信息,不保留改动前记录 | 10-07 答复 #4 |
| 字段校验 | 姓名/电话必填但完全不校验(不做 11 位数字等格式检查,填错责任在买家);商品描述为空留空、不加默认文案,无图显示占位图 | 10-07 答复 #5、#7 |
| 口令码 | 全局唯一、只显示一次、不可找回 | 全站澄清 |