# Change: 代理商佣金查询模块 ## Why 平台需要查看和管理代理商(店铺)的佣金信息,包括: 1. 代理商列表及其佣金汇总(总佣金、已提现、未提现、冻结中、可提现) 2. 查看某代理商的佣金提现记录 3. 查看某代理商的佣金入账明细 这是账号管理-代理商(店铺)管理模块的核心功能。 ## What Changes ### 新增 API 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/admin/shops/commission-summary` | 代理商佣金列表(含汇总信息) | | GET | `/api/admin/shops/:shop_id/withdrawal-requests` | 代理商提现记录 | | GET | `/api/admin/shops/:shop_id/commission-records` | 代理商佣金明细 | ### 技术实现 - 新增 Handler:`internal/handler/admin/shop_commission.go` - 新增 Service:`internal/service/shop_commission/service.go` - 新增 DTO:`internal/model/dto/shop_commission_dto.go` - 扩展 Store:`internal/store/postgres/wallet_store.go`(新增佣金汇总查询方法) ### 业务逻辑 **佣金汇总计算**: - `total_commission`:总佣金 = Wallet.balance + Wallet.frozen_balance + 已提现金额 - `withdrawn_commission`:已提现 = CommissionWithdrawalRequest(status=2) 总金额 - `unwithdraw_commission`:未提现 = 总佣金 - 已提现 - `frozen_commission`:冻结中 = Wallet.frozen_balance - `withdrawing_commission`:提现中 = CommissionWithdrawalRequest(status=1) 总金额 - `available_commission`:可提现 = Wallet.balance - 提现中 **店铺层级路径**: - 格式:`上上级_上级_本身`(最多两层上级) - 不包含平台 ## Impact ### 影响的规范 - **新增 Capability**:`shop-commission-query` ### 影响的代码 **新增文件**(约 400 行): - `internal/handler/admin/shop_commission.go`(~100 行) - `internal/service/shop_commission/service.go`(~200 行) - `internal/model/dto/shop_commission_dto.go`(~100 行) **修改文件**(约 50 行): - `internal/store/postgres/wallet_store.go`(新增方法) - `internal/bootstrap/` 相关文件(注册组件) ### 兼容性 - ✅ 向后兼容:新增 API,不影响现有功能 ## Dependencies - 依赖提案:`add-commission-model-changes` - 依赖现有模型:`Shop`、`Account`、`Wallet`、`CommissionRecord`、`CommissionWithdrawalRequest` ## Testing Strategy 1. **单元测试**:佣金汇总计算逻辑 2. **集成测试**:API 端点测试 3. **数据权限测试**:代理商只能看到自己+下级店铺数据