Files
junhong_cmp_fiber/openspec/changes/archive/2026-01-28-add-card-device-series-bindng/proposal.md
huang a945a4f554
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m37s
feat: 实现卡和设备的套餐系列绑定功能
- 添加 Device 和 IotCard 模型的 SeriesID 字段
- 实现 DeviceService 和 IotCardService 的套餐系列绑定逻辑
- 添加 DeviceStore 和 IotCardStore 的数据库操作方法
- 更新 API 接口和路由支持套餐系列绑定
- 创建数据库迁移脚本(000027_add_series_binding_fields)
- 添加完整的单元测试和集成测试
- 更新 OpenAPI 文档
- 归档 OpenSpec 变更文档

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-28 19:49:45 +08:00

2.1 KiB
Raw Blame History

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订单与支付依赖本期