feat: 实现套餐管理模块,包含套餐系列、双状态管理、废弃模型清理
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m24s

- 新增套餐系列管理 (CRUD + 状态切换)
- 新增套餐管理 (CRUD + 启用/禁用 + 上架/下架双状态)
- 清理 8 个废弃分佣模型及对应数据库表
- Package 模型新增建议成本价、建议售价、上架状态字段
- 完整的 Store/Service/Handler 三层实现
- 包含单元测试和集成测试
- 归档 add-package-module change
- 新增多个 OpenSpec changes (订单支付、店铺套餐分配、一次性分佣、卡设备系列绑定)
This commit is contained in:
2026-01-27 19:55:47 +08:00
parent 30a0717316
commit 79c061b6fa
70 changed files with 7554 additions and 244 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 模型