Files
junhong_cmp_fiber/openspec/changes/agent-fund-visibility/specs/agent-wallet/spec.md
huang 0627ffec42
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m10s
feat: 代理商资金可见性重构(agent-fund-visibility)
- 将 GET /shops/commission-summary 重命名为 GET /shops/fund-summary,
  响应新增 main_balance、main_frozen_balance 两个预充值钱包字段
- 新增 GET /shops/:id/main-wallet/transactions 预充值钱包流水接口
- 将佣金统计、每日统计、发起提现从 /my/ 路径迁移至 /shops/:id/ 路径:
  GET /shops/:id/commission-stats
  GET /shops/:id/commission-daily-stats
  POST /shops/:id/withdrawal-requests
- 删除 MyCommissionService、MyCommissionHandler 及全部 /my/ 路由
- 补齐 ListShopWithdrawalRequests、ListShopCommissionRecords 的
  CanManageShop 越权校验(安全修复)
- 提现接口增加严格权限:仅代理账号本人可为自己店铺发起提现

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 14:40:39 +08:00

880 B
Raw Blame History

ADDED Requirements

Requirement: 批量查询店铺主钱包余额

系统 SHALL 在 AgentWalletStore 中提供 GetShopMainWalletBatch(ctx, shopIDs []uint) map[uint]*AgentWallet 方法,一次查询多个店铺的主钱包(wallet_type=main)记录,返回以 shop_id 为 key 的 map。

实现要求

  • 使用 WHERE shop_id IN (?) AND wallet_type = 'main' 单次查询,不得逐条查询
  • 不在 map 中的 shop_id 表示该店铺暂无主钱包,调用方按零值处理
  • 与现有 GetShopCommissionSummaryBatch 对称设计

Scenario: 批量查询多个店铺的主钱包

  • WHEN 传入 shopIDs [1, 2, 3],其中 shop 3 无主钱包记录
  • THEN 返回 map {1: &wallet1, 2: &wallet2}shop 3 不在 map 中

Scenario: 传入空列表

  • WHEN 传入空 shopIDs
  • THEN 直接返回空 map不执行 DB 查询