feat: 实现订单支付功能模块
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m36s

- 新增订单管理、支付回调、购买验证等核心服务
- 实现订单、订单项目的数据存储层和 API 接口
- 添加订单数据库迁移和 DTO 定义
- 更新 API 文档和路由配置
- 同步 3 个新规范到主规范库(订单管理、订单支付、套餐购买验证)
- 完成 OpenSpec 变更归档

Ultraworked with Sisyphus
This commit is contained in:
2026-01-28 22:12:15 +08:00
parent a945a4f554
commit dfcf16f548
39 changed files with 3795 additions and 126 deletions

View File

@@ -0,0 +1,70 @@
## 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 模型