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,58 @@
## Why
Phase 2 完成了代理套餐分配,但卡和设备还没有关联到具体的套餐系列分配。需要在卡/设备上记录其所属的套餐系列分配,以便后续购买套餐时验证权限、计算佣金。同时需要记录一次性佣金状态和累计充值金额,为 Phase 5 的佣金计算做准备。
## What Changes
**IotCard 模型调整:**
- 新增 `series_allocation_id`:关联的套餐系列分配 ID
- 新增 `first_commission_paid`一次性佣金是否已发放bool
- 新增 `accumulated_recharge`:累计充值金额(分)
**Device 模型调整:**
- 新增 `series_allocation_id`:关联的套餐系列分配 ID
- 新增 `first_commission_paid`一次性佣金是否已发放bool
- 新增 `accumulated_recharge`:累计充值金额(分)
**新增 API**
- 批量设置卡的套餐系列分配
- 批量设置设备的套餐系列分配
- 查询卡/设备的套餐系列分配信息
**业务规则:**
- 卡/设备只能关联当前所属店铺被分配的套餐系列
- 设备关联后,其绑定的所有卡共享该套餐系列
- 关联后可购买该系列下的套餐
## Capabilities
### New Capabilities
- `card-series-bindng`: 卡套餐系列关联 - 为 IoT 卡设置套餐系列分配,记录佣金状态
- `device-series-bindng`: 设备套餐系列关联 - 为设备设置套餐系列分配,设备下所有卡共享
### Modified Capabilities
<!-- 无 -->
## Impact
**代码影响:**
- `internal/model/iot_card.go` - 新增 3 个字段
- `internal/model/device.go` - 新增 3 个字段
- `migrations/` - 修改 tb_iot_card 和 tb_device 表
- `internal/handler/admin/` - 扩展卡/设备 Handler
- `internal/service/` - 扩展卡/设备 Service
- `internal/model/dto/` - 新增请求 DTO
**API 影响:**
- 新增 `PATCH /api/admin/iot-cards/series-bindng` 批量设置卡系列
- 新增 `PATCH /api/admin/devices/series-bindng` 批量设置设备系列
**数据库影响:**
- 修改表:`tb_iot_card` 新增 3 个字段
- 修改表:`tb_device` 新增 3 个字段
**依赖关系:**
- 依赖 Phase 2add-shop-package-allocation完成
- Phase 4订单与支付依赖本期