Files
junhong_cmp_fiber/.scratch/ur38-agent-main-wallet-credit/issues/04-manage-shop-credit-limit.md
2026-07-22 17:25:12 +09:00

2.1 KiB
Raw Blame History

04 — 授权平台人员调整店铺实际信用额度

What to build: 超级管理员或同时具备独立授信权限和目标店铺数据范围的平台账号,可以安全调整代理主钱包的实际信用额度。旧版本、越权目标和无法覆盖当前资金占用的降额均被明确拒绝,且不会覆盖并发写入。

Blocked by:

  • .scratch/ur38-agent-main-wallet-credit/issues/01-agent-main-wallet-credit-foundation.md — 01 — 扩展代理主钱包信用模型与领域不变量
  • .scratch/tech-global-audit/issues/01-audit-event-write-loop.md — 01 — 交付不可变 Audit Event 写入闭环

Status: ready-for-agent

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

完整业务边界: 本票收口既有代理主钱包实际信用额度的授权调整、不变量、乐观锁和审计。明确不允许代理调整自己或任何下级,不复用角色模板作为运行时事实,不修改余额或冻结金额,不创建金额为零的钱包流水。

  • 独立调额接口只允许超级管理员,或具备独立信用额度管理权限且满足目标店铺既有查看/数据范围的平台账号调用。
  • 代理本人、直属下级、更深层下级、无独立权限的平台账号和企业账号均被后端独立拒绝,单独通过店铺管理检查不能获得调额权。
  • Wallet Domain 校验开关组合、算术安全和调整后的总可用金额;欠款或冻结占用导致关闭或降额越界时保持原值并返回统一业务错误。
  • 更新条件同时约束主钱包类型和请求版本,成功后版本递增;零受影响行重新读取并稳定区分并发冲突、无权/不存在及额度不足。
  • 钱包更新与包含操作人、请求上下文、余额、冻结金额、开关、额度和版本前后值的 Audit Event 同事务提交,且不产生伪钱包交易流水。
  • 权限矩阵、提高额度、安全降额、欠款关闭、冻结占用、旧版本并发及整数边界均有真实 PostgreSQL/API 集成测试;新 Handler 接入两个 OpenAPI 文档生成入口。