Files
junhong_cmp_fiber/openspec/changes/fix-commission-calculation-trigger-and-snapshot/proposal.md
huang b02175271a
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m39s
feat: 实现企业设备授权功能并归档 OpenSpec 变更
- 新增企业设备授权模块(Model、DTO、Service、Handler、Store)
- 实现设备授权的创建、查询、更新、删除等完整业务逻辑
- 添加企业卡授权与设备授权的关联关系
- 新增 2 个数据库迁移脚本
- 同步 OpenSpec delta specs 到 main specs
- 归档 add-enterprise-device-authorization 变更
- 更新 API 文档和路由配置
- 新增完整的集成测试和单元测试覆盖
2026-01-29 13:18:49 +08:00

1.5 KiB
Raw Blame History

佣金计算链路修复:支付后自动入队 + 订单佣金字段快照

Why

你确认的目标:订单支付成功后自动触发佣金计算(异步任务),且佣金计算所需的关键字段应当来源于“购买校验结果”。

当前实现存在以下风险:

  • 佣金计算依赖订单字段(如 series_id/seller_shop_id/seller_cost_price),但订单创建时未填充,可能导致计算错误或空指针风险。
  • 佣金计算任务已定义,但缺少稳定触发入口,导致支付后佣金不计算或需要人工补偿。

What Changes

  • 订单创建时写入佣金快照字段基于购买校验结果allocation/series填充订单的 SeriesID/SellerShopID/SellerCostPrice 等字段,确保后续计算稳定。
  • 支付成功后自动入队佣金计算任务在订单从待支付变为已支付的“首次成功支付”场景enqueue commission:calculate 异步任务,执行佣金计算。
  • 计算事务一致性(可选但推荐):调整佣金计算服务的事务使用方式,确保“佣金记录 + 钱包入账 + 订单佣金状态更新”具备一致性。
  • 补充测试:新增/完善测试,避免回归。

Impact

涉及模块(预期):

  • 订单创建:internal/service/order/service.go
  • 异步任务:internal/task/commission_calculation.go(触发入口)与队列注入
  • 佣金计算:internal/service/commission_calculation/service.go
  • 测试:internal/service/order/service_test.gointernal/task/* 或集成测试