Files
huang f339fb1987
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m8s
fix: 资产钱包自动创建机制 — 修复C端购买时钱包不存在报错
- client_order: 新增 getOrCreateWallet 兜底,钱包不存在时自动创建
- device_import: 设备导入事务内同步创建设备钱包
- iot_card_import: IoT卡批量导入后批量创建卡钱包
- queue/handler: 传递 AssetWalletStore 给两个导入 handler
- migration 000098: 为存量IoT卡和设备补建资产钱包
2026-03-30 11:37:41 +08:00

2.0 KiB
Raw Permalink Blame History

ADDED Requirements

Requirement: 退款佣金全额回扣

退款审批通过后,系统 SHALL 查找该订单产生的所有已入账佣金记录(tb_commission_record WHERE order_id=? AND status=1,使用 CommissionRecord 模型的 CommissionStatusReleased=1 常量),全额从各代理佣金钱包(wallet_type="commission")中扣减。扣减允许余额为负。

Scenario: 正常佣金全额回扣

  • WHEN 退款审批通过,该订单有 N 条已入账佣金记录
  • THEN 系统 SHALL 对每条佣金记录全额扣减 deductAmount = commission.Amount,从对应代理的佣金钱包扣减(使用 GetCommissionWallet,乐观锁更新),创建 transaction_type="commission_deduct" 的交易流水,全部完成后标记退款单 commission_deducted=true

Scenario: 无佣金记录

  • WHEN 退款审批通过,但该订单无已入账佣金记录
  • THEN 系统 SHALL 直接标记 commission_deducted=true,不执行扣减

Scenario: 回扣执行失败

  • WHEN 佣金回扣过程中发生错误
  • THEN 审批结果 SHALL NOT 受影响(已通过),commission_deducted 保持 false,记录 Error 日志

Requirement: 佣金回扣交易流水

每次佣金扣减 SHALL 创建交易流水记录:transaction_typecommission_deductreference_typerefundreference_id 为退款单 ID金额为负值-commission.Amount)。

Scenario: 交易流水格式

  • WHEN 佣金回扣成功执行
  • THEN tb_agent_wallet_transaction SHALL 新增记录:shop_id=佣金所属代理, transaction_type=commission_deduct, amount=-commission.Amount, reference_type=refund, reference_id=退款单ID, remark=退款佣金回扣

Requirement: 佣金钱包为负对提现的影响

佣金钱包余额为负时,代理 SHALL NOT 能发起新的提现申请。后续新佣金入账会逐步补填负数。退款回扣时不考虑是否有正在审批的提现申请,正常扣减佣金钱包。