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

26 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 佣金计算链路修复:支付后自动入队 + 订单佣金字段快照
## 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.go``internal/task/*` 或集成测试