# 后台提现审核 - 快速测试指南 ## 🚀 快速启动 ### 1. 重启服务 ```bash cd E:\Gongsi\Mycontent python devlop.py restart mycontent ``` ### 2. 访问页面 ``` http://localhost:3006/admin/withdrawals ``` ## 📊 界面功能验证 ### 顶部统计卡片 应该显示: - [ ] 总申请数量 - [ ] 待处理数量和金额 - [ ] 已完成数量和金额 - [ ] 已拒绝数量 ### 筛选按钮 - [ ] 全部 - [ ] 待处理(橙色高亮) - [ ] 已完成 - [ ] 已拒绝 ### 提现记录表格 | 列名 | 内容验证 | |------|---------| | 申请时间 | 显示为本地时间格式 | | 用户 | 头像 + 昵称 + 电话/推荐码 | | 提现金额 | 橙色加粗显示 | | **用户佣金信息** | **新增列** | | 状态 | 显示对应颜色的徽章 | | 处理时间 | 已处理显示时间,未处理显示"-" | | 操作 | 待处理显示批准/拒绝按钮 | ## 🔍 关键功能:用户佣金信息 ### 正常显示(绿色) ``` 累计佣金: ¥100.00 [青色] 已提现: ¥30.00 [灰色] 待审核: ¥50.00 [橙色] ──────────────────────── 审核后余额: ¥20.00 [绿色] ✅ ``` **验证要点**: - [ ] 所有金额都正确显示两位小数 - [ ] 累计佣金为青色(#38bdac) - [ ] 审核后余额为绿色(正数) - [ ] 有分隔线 ### 风险警告(红色) ``` 累计佣金: ¥100.00 [青色] 已提现: ¥30.00 [灰色] 待审核: ¥80.00 [橙色] ──────────────────────── 审核后余额: -¥10.00 [红色] ❌ ``` **验证要点**: - [ ] 审核后余额为红色(负数) - [ ] 点击"批准"时弹出风险警告 - [ ] 警告文字包含负数金额 ## 🧪 测试用例 ### 测试1:正常用户提现 **准备数据**: ```sql -- 用户A:累计佣金 ¥90,已提现 ¥0,待审核 ¥0 -- 申请提现 ¥50 -- 插入订单(产生佣金) INSERT INTO orders (id, user_id, amount, referrer_id, status, pay_time) VALUES ('test_order_1', 'buyer_1', 100, 'YOUR_USER_ID', 'paid', NOW()); -- 申请提现 INSERT INTO withdrawals (id, user_id, amount, status, wechat_openid, created_at) VALUES ('W_TEST_1', 'YOUR_USER_ID', 50, 'pending', NULL, NOW()); ``` **预期结果**: - 累计佣金: ¥90.00(100 × 90%) - 已提现: ¥0.00 - 待审核: ¥50.00 - 审核后余额: ¥40.00 ✅ 绿色 **操作**:点击"批准" - 弹出确认框(无风险警告) - 确认后状态改为 success ### 测试2:超额提现(风险) **准备数据**: ```sql -- 同一用户再申请 ¥60(总待审核 ¥110 > 可提现 ¥90) INSERT INTO withdrawals (id, user_id, amount, status, wechat_openid, created_at) VALUES ('W_TEST_2', 'YOUR_USER_ID', 60, 'pending', NULL, NOW()); ``` **预期结果**: - W_TEST_1: 审核后余额 ¥40.00 ✅ 绿色 - W_TEST_2: 审核后余额 **-¥20.00** ❌ 红色 **操作**:点击"批准" W_TEST_2 - ⚠️ 弹出风险警告 - 显示负数余额 - 需要二次确认 ### 测试3:拒绝提现 **操作**:点击"拒绝" W_TEST_2 - 弹出输入框:"请输入拒绝原因" - 输入:"余额不足" - 确认 **预期结果**: - 提现记录状态改为 failed - error_message 保存为"余额不足" - 刷新页面后,W_TEST_1 的"待审核"金额恢复为 ¥50 ## 🎯 快速验证步骤 ### Step 1: 查看界面 ```bash # 1. 启动服务 python devlop.py restart mycontent # 2. 浏览器访问 http://localhost:3006/admin/withdrawals ``` ### Step 2: 检查数据显示 - [ ] 表格列是否完整(7列) - [ ] 用户佣金信息列是否显示 - [ ] 头像是否正确显示 - [ ] 金额是否有两位小数 ### Step 3: 测试筛选 - [ ] 点击"待处理",只显示 pending 记录 - [ ] 点击"已完成",只显示 success 记录 - [ ] 点击"全部",显示所有记录 ### Step 4: 测试审核 - [ ] 找一条审核后余额为绿色的记录 - [ ] 点击"批准" - [ ] 确认是否正常弹框 - [ ] 确认后检查状态是否更新 ### Step 5: 验证计算 使用验证脚本: ```sql -- 在 phpMyAdmin 中执行 -- 文件: scripts/verify-withdrawal-data.sql SET @user_id = 'YOUR_USER_ID'; -- 然后执行脚本中的所有查询 ``` 对比: - SQL 计算的可提现金额 - 页面显示的审核后余额 - 应该一致 ✅ ## 🐛 常见问题排查 ### 问题1:用户佣金信息显示"暂无数据" **原因**:后端查询失败或数据为空 **排查**: ```bash # 查看后端日志 pm2 logs mycontent --lines 50 # 查找错误信息 [Withdrawals] 查询失败: ... ``` ### 问题2:审核后余额计算错误 **原因**:数据库数据不一致 **排查**: ```sql -- 检查用户的 withdrawn_earnings 是否准确 SELECT u.withdrawn_earnings as DB中的已提现, COALESCE(SUM(w.amount), 0) as 实际已完成提现 FROM users u LEFT JOIN withdrawals w ON w.user_id = u.id AND w.status = 'success' WHERE u.id = 'YOUR_USER_ID' GROUP BY u.id, u.withdrawn_earnings; ``` ### 问题3:批准后状态未更新 **原因**:审核接口可能失败 **排查**: ```bash # 查看浏览器 Network 面板 # 检查 PUT /api/admin/withdrawals 的响应 # 查看后端日志 pm2 logs mycontent ``` ### 问题4:头像显示不出来 **原因**:头像URL路径问题 **排查**: ```sql -- 检查用户头像字段 SELECT id, nickname, avatar FROM users WHERE avatar IS NOT NULL LIMIT 5; ``` ## 📝 验证清单 ### 数据准确性 - [ ] 累计佣金 = 订单总金额 × 90% - [ ] 已提现 = users.withdrawn_earnings - [ ] 待审核 = SUM(withdrawals.amount WHERE status='pending') - [ ] 审核后余额 = 累计 - 已提现 - 待审核 ### 界面显示 - [ ] 用户头像/首字母 - [ ] 用户昵称 - [ ] 用户电话/推荐码 - [ ] 提现金额(橙色) - [ ] 佣金信息(完整4项) - [ ] 状态徽章 - [ ] 批准/拒绝按钮 ### 功能测试 - [ ] 筛选功能 - [ ] 刷新功能 - [ ] 批准操作 - [ ] 拒绝操作 - [ ] 风险警告 ### 安全验证 - [ ] 超额提现显示红色 - [ ] 批准时弹出风险警告 - [ ] 需要二次确认 - [ ] 批准后数据正确更新 ## 🎉 完成标志 当所有验证项都打勾 ✅,说明提现审核功能已完全对接并正常工作! **关键指标**: - 数据显示完整准确 - 计算逻辑正确 - 风险警告有效 - 审核操作成功