Files
junhong_cmp_fiber/openspec/specs/order-management/spec.md
huang dfcf16f548
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m36s
feat: 实现订单支付功能模块
- 新增订单管理、支付回调、购买验证等核心服务
- 实现订单、订单项目的数据存储层和 API 接口
- 添加订单数据库迁移和 DTO 定义
- 更新 API 文档和路由配置
- 同步 3 个新规范到主规范库(订单管理、订单支付、套餐购买验证)
- 完成 OpenSpec 变更归档

Ultraworked with Sisyphus
2026-01-28 22:12:15 +08:00

2.6 KiB
Raw Blame History

ADDED Requirements

Requirement: 创建套餐购买订单

系统 SHALL 允许买家创建套餐购买订单。订单类型分为单卡购买和设备购买。创建前 MUST 验证购买权限。

Scenario: 个人客户创建单卡订单

  • WHEN 个人客户为自己的卡创建订单,选择一个套餐
  • THEN 系统创建订单,状态为待支付,返回订单信息

Scenario: 个人客户创建设备订单

  • WHEN 个人客户为自己的设备创建订单
  • THEN 系统创建订单,订单类型为设备购买

Scenario: 代理创建订单

  • WHEN 代理为店铺关联的卡/设备创建订单
  • THEN 系统创建订单买家类型为代理商买家ID为店铺ID

Scenario: 套餐不在可购买范围

  • WHEN 买家尝试购买不在关联系列下的套餐
  • THEN 系统返回错误 "该套餐不在可购买范围内"

Scenario: 套餐已下架

  • WHEN 买家尝试购买已下架的套餐
  • THEN 系统返回错误 "该套餐已下架"

Requirement: 查询订单列表

系统 SHALL 提供订单列表查询,支持按支付状态、订单类型、时间范围筛选。

Scenario: 个人客户查询自己的订单

  • WHEN 个人客户查询订单列表
  • THEN 系统只返回该客户的订单

Scenario: 代理查询店铺订单

  • WHEN 代理查询订单列表
  • THEN 系统返回该店铺及下级店铺的订单

Scenario: 按支付状态筛选

  • WHEN 指定支付状态筛选
  • THEN 系统只返回匹配状态的订单

Requirement: 查询订单详情

系统 SHALL 允许买家查询订单详情,包含订单明细。

Scenario: 查询订单详情

  • WHEN 买家查询指定订单详情
  • THEN 系统返回订单信息和订单明细列表

Scenario: 查询他人订单

  • WHEN 买家尝试查询不属于自己的订单
  • THEN 系统返回 "订单不存在" 错误

Requirement: 取消订单

系统 SHALL 允许买家取消未支付的订单。

Scenario: 取消待支付订单

  • WHEN 买家取消一个待支付的订单
  • THEN 系统更新订单状态为已取消

Scenario: 取消已支付订单

  • WHEN 买家尝试取消已支付的订单
  • THEN 系统返回错误 "已支付订单无法取消"

Requirement: 订单号生成

系统生成的订单号 MUST 全局唯一,格式为 ORD{YYYYMMDDHHMMSS}{6位随机数}。

Scenario: 订单号格式

  • WHEN 创建新订单
  • THEN 订单号格式为 ORD + 14位时间戳 + 6位随机数

Scenario: 订单号唯一

  • WHEN 并发创建多个订单
  • THEN 每个订单的订单号都唯一