All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m19s
- 订单管理:增加 payment_method 字段支持,合并代购订单逻辑 - 套餐系列分配:增加强充配置字段(enable_force_recharge、force_recharge_amount、force_recharge_trigger_type) - 数据库迁移:添加 force_recharge_trigger_type 字段 - 测试:更新订单服务测试用例 - OpenSpec:归档 fix-force-recharge-missing-interfaces 变更
4.7 KiB
4.7 KiB
Why
在 add-force-recharge-system 功能归档后发现遗漏了关键的管理接口:(1) 套餐系列分配表虽然增加了强充配置字段(enable_force_recharge、force_recharge_amount、force_recharge_trigger_type),但创建/更新/查询接口完全没有暴露这些字段,管理员无法通过 API 配置强充要求;(2) 后台订单接口设计不合理,存在两套独立的创建订单逻辑(普通订单和代购订单),但实际业务中后台订单只有钱包支付和线下支付两种方式,代购本质就是线下支付,不应该独立处理。这导致管理员只能通过直接修改数据库来配置强充,且代码存在重复逻辑和冗余 DTO。
What Changes
- 修复套餐系列分配接口:在
CreateShopSeriesAllocationRequest、UpdateShopSeriesAllocationRequest、ShopSeriesAllocationResponse中增加强充配置字段 - 修复 ShopSeriesAllocationService:在
Create、Update、buildResponse方法中处理强充配置的创建、更新和返回 - 统一后台订单接口:在
CreateOrderRequest增加payment_method字段(wallet/offline),删除CreatePurchaseOnBehalfRequest冗余 DTO - 合并订单创建逻辑:将
Service.Create和Service.CreatePurchaseOnBehalf合并为统一方法,根据payment_method自动设置is_purchase_on_behalf标识 - 修改订单权限验证:
OrderHandler.Create增加支付方式权限检查(offline 仅平台可用,wallet 代理和平台都可用)
Capabilities
New Capabilities
无新增 capabilities
Modified Capabilities
shop-series-allocation: 增加强充配置字段的 CRUD 接口支持(enable_force_recharge、force_recharge_amount、force_recharge_trigger_type)order-management: 统一后台订单创建接口,使用 payment_method 字段替代独立的代购接口,合并重复逻辑
Impact
API 变更
- 修改接口:
POST /api/admin/shop-series-allocations- Request 增加强充配置字段(enable_force_recharge、force_recharge_amount、force_recharge_trigger_type)PUT /api/admin/shop-series-allocations/:id- Request 增加强充配置字段GET /api/admin/shop-series-allocations/:id- Response 增加强充配置字段GET /api/admin/shop-series-allocations- Response 列表项增加强充配置字段POST /api/admin/orders- Request 增加 payment_method 字段(wallet/offline),支持统一创建普通订单和代购订单
- 删除接口:
- 无需删除接口(原
POST /api/admin/orders/purchase-check保留,仍然有效)
- 无需删除接口(原
DTO 变更
- 修改 DTO:
CreateShopSeriesAllocationRequest- 增加 3 个字段UpdateShopSeriesAllocationRequest- 增加 3 个字段ShopSeriesAllocationResponse- 增加 3 个字段CreateOrderRequest- 增加payment_method字段
- 删除 DTO:
CreatePurchaseOnBehalfRequest- 冗余,已被统一到CreateOrderRequest
Service 层变更
- ShopSeriesAllocationService:
Create方法:处理强充配置字段的保存Update方法:处理强充配置字段的更新buildResponse方法:返回强充配置字段
- OrderService:
Create方法:增加payment_method参数处理,合并代购逻辑(根据 payment_method 自动设置 is_purchase_on_behalf)- 删除
CreatePurchaseOnBehalf方法(逻辑合并到 Create)
Handler 层变更
- OrderHandler.Create:
- 增加支付方式权限验证(offline 仅平台,wallet 代理和平台)
- 调用统一的
service.Create方法
数据库变更
无(字段已在 add-force-recharge-system 中添加)
业务逻辑影响
- 强充配置管理:管理员可以通过 API 配置强充要求,无需直接修改数据库
- 订单创建逻辑:统一处理,减少代码重复,
is_purchase_on_behalf自动根据payment_method设置(offline = true, wallet = false) - 权限控制:明确 offline 支付仅平台可用,wallet 支付代理和平台都可用
测试影响
- 单元测试:需要修改
ShopSeriesAllocationService和OrderService的测试用例 - 集成测试:需要修改套餐系列分配和订单创建的集成测试
- 测试覆盖率:保持 90%+ 覆盖率
向后兼容性
- ✅ 向后兼容:
- 套餐系列分配的强充字段为可选(默认 false/0),现有数据不受影响
- 订单接口增加 payment_method 字段为必填,但这是管理后台接口,无外部集成
- ⚠️ 需要注意:
CreatePurchaseOnBehalfRequestDTO 删除,如有使用需迁移到CreateOrderRequestOrderService.CreatePurchaseOnBehalf方法删除,调用方需改为Create方法