Files
junhong_cmp_fiber/openspec/changes/archive/2026-01-28-add-order-payment/proposal.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.3 KiB
Raw Blame History

Why

Phase 3 完成了卡/设备的套餐系列关联,现在需要实现订单和支付流程。核心是"强充"机制:用户不能直接给钱包充值,必须通过购买套餐来充值。这样每笔充值都有对应的套餐购买记录,便于佣金计算和业务追踪。

What Changes

新增模型:

  • Order:订单模型,记录套餐购买信息
  • OrderItem:订单明细(支持一个订单购买多个套餐)

Order 核心字段:

  • 订单号、订单类型(单卡购买/设备购买)
  • 买家信息(个人客户/代理店铺)
  • 关联的卡/设备 ID
  • 支付金额、支付状态、支付方式
  • 佣金计算状态

强充业务流程:

  1. 用户选择套餐,创建订单
  2. 用户支付(微信/支付宝/钱包余额)
  3. 支付成功后,套餐生效,流量额度增加
  4. 触发佣金计算Phase 5

新增 API

  • 创建套餐购买订单
  • 查询订单列表/详情
  • 订单支付(钱包支付)
  • 支付回调处理
  • 取消订单

业务规则:

  • 只能购买卡/设备关联的套餐系列下的套餐
  • 只能购买已上架且启用的套餐
  • 设备购买时,套餐分配给设备下所有卡(流量共享)
  • 订单金额 = 套餐零售价(代理设置的售价)

Capabilities

New Capabilities

  • order-management: 订单管理 - 创建/查询/取消套餐购买订单
  • order-payment: 订单支付 - 钱包支付、第三方支付回调处理
  • package-purchase-validation: 套餐购买验证 - 验证卡/设备是否有权购买指定套餐

Modified Capabilities

Impact

代码影响:

  • internal/model/ - 新增 order.goOrder, OrderItem
  • migrations/ - 创建 tb_order, tb_order_item 表
  • internal/handler/ - 新增订单 Handleradmin + app/h5
  • internal/service/ - 新增订单 Service
  • internal/store/postgres/ - 新增订单 Store
  • internal/model/dto/ - 新增订单相关 DTO

API 影响:

  • 新增 /api/admin/orders/* 后台订单管理
  • 新增 /api/h5/orders/* H5 端订单操作
  • 新增 /api/app/orders/* 个人客户订单操作

数据库影响:

  • 新增表:tb_order, tb_order_item

依赖关系:

  • 依赖 Phase 3add-card-device-series-bindng完成
  • Phase 5一次性佣金依赖本期
  • 依赖现有 Wallet 模型