Files
junhong_cmp_fiber/openspec/changes/add-order-payment/proposal.md
huang 79c061b6fa
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m24s
feat: 实现套餐管理模块,包含套餐系列、双状态管理、废弃模型清理
- 新增套餐系列管理 (CRUD + 状态切换)
- 新增套餐管理 (CRUD + 启用/禁用 + 上架/下架双状态)
- 清理 8 个废弃分佣模型及对应数据库表
- Package 模型新增建议成本价、建议售价、上架状态字段
- 完整的 Store/Service/Handler 三层实现
- 包含单元测试和集成测试
- 归档 add-package-module change
- 新增多个 OpenSpec changes (订单支付、店铺套餐分配、一次性分佣、卡设备系列绑定)
2026-01-27 19:55:47 +08:00

71 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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 模型