# Change: 佣金提现审批模块

## Why

平台需要对代理商的佣金提现申请进行审批管理：
1. 查看所有待处理的提现申请列表
2. 审批通过提现申请（扣除佣金、记录流水）
3. 拒绝提现申请（解冻佣金）

这是账号管理-佣金提现模块的核心功能。

## What Changes

### 新增 API 接口

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/admin/commission/withdrawal-requests` | 提现申请列表（审批视图） |
| POST | `/api/admin/commission/withdrawal-requests/:id/approve` | 审批通过 |
| POST | `/api/admin/commission/withdrawal-requests/:id/reject` | 拒绝 |

### 技术实现

- 新增 Handler：`internal/handler/admin/commission_withdrawal.go`
- 新增 Service：`internal/service/commission_withdrawal/service.go`
- 新增 DTO：`internal/model/dto/commission_withdrawal_dto.go`
- 扩展 Store：钱包操作、流水记录

### 业务逻辑

**审批通过流程**：
1. 验证提现申请存在且状态为待审批
2. 验证当前用户有审批权限
3. 如果修正了金额，重新计算手续费和实际到账金额
4. 更新状态为已通过（status=2）
5. 从店铺佣金钱包扣除对应金额（解冻并扣除）
6. 记录钱包交易流水
7. 记录处理人和处理时间

**拒绝流程**：
1. 验证提现申请存在且状态为待审批
2. 更新状态为已拒绝（status=3）
3. 解冻店铺佣金钱包中的冻结金额
4. 记录钱包交易流水
5. 记录处理人、处理时间和拒绝原因

**审批状态**：
- 1：待审批
- 2：已通过
- 3：已拒绝

## Impact

### 影响的规范
- **新增 Capability**：`commission-withdrawal-approval`

### 影响的代码

**新增文件**（约 350 行）：
- `internal/handler/admin/commission_withdrawal.go`（~100 行）
- `internal/service/commission_withdrawal/service.go`（~200 行）
- `internal/model/dto/commission_withdrawal_dto.go`（~50 行）

**修改文件**（约 50 行）：
- `internal/store/postgres/wallet_store.go`（扣款、解冻方法）
- `internal/store/postgres/wallet_transaction_store.go`（创建流水）

### 兼容性
- ✅ 向后兼容：新增 API，不影响现有功能

## Dependencies

- 依赖提案：`add-commission-model-changes`
- 依赖现有模型：`CommissionWithdrawalRequest`、`Wallet`、`WalletTransaction`

## Testing Strategy

1. **单元测试**：审批流程、钱包操作
2. **集成测试**：完整审批流程（申请→通过/拒绝）
3. **并发测试**：同一申请的并发审批处理
