204 lines
5.6 KiB
SQL
204 lines
5.6 KiB
SQL
-- 提现数据验证脚本
|
|
-- 用于手动验证用户的佣金和提现数据是否准确
|
|
|
|
-- ============================================
|
|
-- 1. 查看用户的完整佣金情况
|
|
-- ============================================
|
|
|
|
-- 替换 'YOUR_USER_ID' 为实际的用户ID
|
|
SET @user_id = 'YOUR_USER_ID';
|
|
|
|
SELECT
|
|
'=== 用户基本信息 ===' as info;
|
|
|
|
SELECT
|
|
id as 用户ID,
|
|
nickname as 昵称,
|
|
referral_code as 推荐码,
|
|
earnings as 已结算收益,
|
|
pending_earnings as 待结算收益,
|
|
withdrawn_earnings as 已提现金额
|
|
FROM users
|
|
WHERE id = @user_id;
|
|
|
|
-- ============================================
|
|
-- 2. 计算累计佣金(从订单表)
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 累计佣金计算 ===' as info;
|
|
|
|
SELECT
|
|
COUNT(*) as 订单数量,
|
|
SUM(amount) as 订单总金额,
|
|
ROUND(SUM(amount) * 0.9, 2) as 累计佣金_90分成
|
|
FROM orders
|
|
WHERE referrer_id = @user_id
|
|
AND status = 'paid';
|
|
|
|
-- ============================================
|
|
-- 3. 查看提现记录
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 提现记录 ===' as info;
|
|
|
|
SELECT
|
|
id as 提现ID,
|
|
amount as 金额,
|
|
status as 状态,
|
|
created_at as 申请时间,
|
|
processed_at as 处理时间
|
|
FROM withdrawals
|
|
WHERE user_id = @user_id
|
|
ORDER BY created_at DESC;
|
|
|
|
-- ============================================
|
|
-- 4. 统计提现金额
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 提现统计 ===' as info;
|
|
|
|
SELECT
|
|
SUM(CASE WHEN status = 'pending' THEN amount ELSE 0 END) as 待审核金额,
|
|
SUM(CASE WHEN status = 'success' THEN amount ELSE 0 END) as 已完成金额,
|
|
SUM(CASE WHEN status = 'failed' THEN amount ELSE 0 END) as 已拒绝金额,
|
|
SUM(amount) as 总申请金额
|
|
FROM withdrawals
|
|
WHERE user_id = @user_id;
|
|
|
|
-- ============================================
|
|
-- 5. 综合计算可提现金额
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 可提现金额计算 ===' as info;
|
|
|
|
SELECT
|
|
-- 累计佣金
|
|
ROUND((SELECT COALESCE(SUM(amount), 0) FROM orders WHERE referrer_id = @user_id AND status = 'paid') * 0.9, 2) as 累计佣金,
|
|
|
|
-- 已提现金额
|
|
(SELECT withdrawn_earnings FROM users WHERE id = @user_id) as 已提现金额,
|
|
|
|
-- 待审核金额
|
|
(SELECT COALESCE(SUM(amount), 0) FROM withdrawals WHERE user_id = @user_id AND status = 'pending') as 待审核金额,
|
|
|
|
-- 可提现金额
|
|
ROUND(
|
|
(SELECT COALESCE(SUM(amount), 0) FROM orders WHERE referrer_id = @user_id AND status = 'paid') * 0.9
|
|
- (SELECT withdrawn_earnings FROM users WHERE id = @user_id)
|
|
- (SELECT COALESCE(SUM(amount), 0) FROM withdrawals WHERE user_id = @user_id AND status = 'pending'),
|
|
2
|
|
) as 可提现金额;
|
|
|
|
-- ============================================
|
|
-- 6. 查看所有用户的提现概览
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 所有用户提现概览 ===' as info;
|
|
|
|
SELECT
|
|
u.id as 用户ID,
|
|
u.nickname as 昵称,
|
|
ROUND(COALESCE(orders_sum.total_amount, 0) * 0.9, 2) as 累计佣金,
|
|
u.withdrawn_earnings as 已提现,
|
|
COALESCE(pending_sum.pending_amount, 0) as 待审核,
|
|
ROUND(
|
|
COALESCE(orders_sum.total_amount, 0) * 0.9
|
|
- u.withdrawn_earnings
|
|
- COALESCE(pending_sum.pending_amount, 0),
|
|
2
|
|
) as 可提现金额
|
|
FROM users u
|
|
LEFT JOIN (
|
|
SELECT referrer_id, SUM(amount) as total_amount
|
|
FROM orders
|
|
WHERE status = 'paid'
|
|
GROUP BY referrer_id
|
|
) orders_sum ON u.id = orders_sum.referrer_id
|
|
LEFT JOIN (
|
|
SELECT user_id, SUM(amount) as pending_amount
|
|
FROM withdrawals
|
|
WHERE status = 'pending'
|
|
GROUP BY user_id
|
|
) pending_sum ON u.id = pending_sum.user_id
|
|
WHERE u.referral_code IS NOT NULL
|
|
AND (orders_sum.total_amount > 0 OR u.withdrawn_earnings > 0)
|
|
ORDER BY 累计佣金 DESC
|
|
LIMIT 20;
|
|
|
|
-- ============================================
|
|
-- 7. 查找异常数据
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 异常数据检查 ===' as info;
|
|
|
|
-- 检查:待审核金额 > 累计佣金
|
|
SELECT
|
|
u.id as 用户ID,
|
|
u.nickname as 昵称,
|
|
ROUND(COALESCE(orders_sum.total_amount, 0) * 0.9, 2) as 累计佣金,
|
|
COALESCE(pending_sum.pending_amount, 0) as 待审核金额,
|
|
'超额提现风险' as 异常类型
|
|
FROM users u
|
|
LEFT JOIN (
|
|
SELECT referrer_id, SUM(amount) as total_amount
|
|
FROM orders
|
|
WHERE status = 'paid'
|
|
GROUP BY referrer_id
|
|
) orders_sum ON u.id = orders_sum.referrer_id
|
|
LEFT JOIN (
|
|
SELECT user_id, SUM(amount) as pending_amount
|
|
FROM withdrawals
|
|
WHERE status = 'pending'
|
|
GROUP BY user_id
|
|
) pending_sum ON u.id = pending_sum.user_id
|
|
WHERE COALESCE(pending_sum.pending_amount, 0) > ROUND(COALESCE(orders_sum.total_amount, 0) * 0.9, 2)
|
|
LIMIT 10;
|
|
|
|
-- 检查:已提现 > 累计佣金
|
|
SELECT
|
|
u.id as 用户ID,
|
|
u.nickname as 昵称,
|
|
ROUND(COALESCE(orders_sum.total_amount, 0) * 0.9, 2) as 累计佣金,
|
|
u.withdrawn_earnings as 已提现金额,
|
|
'已提现超过累计' as 异常类型
|
|
FROM users u
|
|
LEFT JOIN (
|
|
SELECT referrer_id, SUM(amount) as total_amount
|
|
FROM orders
|
|
WHERE status = 'paid'
|
|
GROUP BY referrer_id
|
|
) orders_sum ON u.id = orders_sum.referrer_id
|
|
WHERE u.withdrawn_earnings > ROUND(COALESCE(orders_sum.total_amount, 0) * 0.9, 2)
|
|
AND u.withdrawn_earnings > 0
|
|
LIMIT 10;
|
|
|
|
-- ============================================
|
|
-- 8. 提现数据统计
|
|
-- ============================================
|
|
|
|
SELECT
|
|
'=== 提现数据统计 ===' as info;
|
|
|
|
SELECT
|
|
status as 状态,
|
|
COUNT(*) as 数量,
|
|
SUM(amount) as 总金额,
|
|
AVG(amount) as 平均金额,
|
|
MIN(amount) as 最小金额,
|
|
MAX(amount) as 最大金额
|
|
FROM withdrawals
|
|
GROUP BY status
|
|
ORDER BY
|
|
CASE status
|
|
WHEN 'pending' THEN 1
|
|
WHEN 'processing' THEN 2
|
|
WHEN 'success' THEN 3
|
|
WHEN 'failed' THEN 4
|
|
END;
|