Files
junhong_cmp_fiber/.scratch/ur38-agent-main-wallet-credit/issues/07-unified-agent-wallet-credit-posting.md
2026-07-22 17:25:12 +09:00

2.1 KiB
Raw Blame History

07 — 统一代理主钱包充值入账与人工调整

What to build: 当前代理充值到账和人工余额调整通过统一 Wallet Application 写入主钱包,使正向入账能够正确清偿负余额并一致维护版本、真实金额流水、业务状态、审计和可靠事件。

Blocked by:

  • .scratch/ur38-agent-main-wallet-credit/issues/01-agent-main-wallet-credit-foundation.md — 01 — 扩展代理主钱包信用模型与领域不变量
  • .scratch/tech-public-foundation/issues/02-transactional-public-outbox-write.md — 02 — 在业务事务中可靠写入公共 Outbox
  • .scratch/tech-global-audit/issues/01-audit-event-write-loop.md — 01 — 交付不可变 Audit Event 写入闭环

Status: ready-for-agent

架构通道: 复杂写Application UseCase → Wallet Domain → Repository/Infrastructure。

完整业务边界: 本票收口现有代理主钱包充值入账和人工余额调整的资金写入边界。明确不建设 UR#34 的支付、企业微信审批或站内通知流程,不迁移佣金入账和资产钱包充值,只为这些外部流程提供稳定的主钱包入账能力。

  • 正向入账通过 Wallet Domain 安全增加账面余额并递增版本,负余额钱包优先自然表现为欠款减少,不修改信用额度或冻结金额。
  • 充值业务单状态或人工调整幂等键、钱包更新、唯一真实金额流水、Audit Event 和 Outbox 在同一事务提交。
  • 重复回调、重复 Worker 或人工重试不重复入账;钱包或流水写入失败不会留下已完成业务单,已确认外部收款事实按其所属用例的处理状态保留并可重试。
  • 充值和人工调整调用点不再直接更新代理主钱包余额,旧 Service 如保留只能调用统一 Application 能力。
  • 金额为零、负数、加法溢出、错误钱包类型和不存在目标均以统一错误拒绝,客户端不接收底层数据库错误。
  • 集成测试覆盖普通入账、负余额清偿、仍有欠款、重复入账、并发入账、流水唯一性、审计失败和 Outbox 失败回滚。