zhibo/complete_gift_diagnosis.sql

127 lines
3.2 KiB
MySQL
Raw Normal View History

2026-01-03 19:22:42 +08:00
-- 礼物系统完整诊断报告
SELECT '========== 礼物系统诊断报告 ==========' as '';
-- 1. 礼物记录统计
SELECT '1. 礼物记录统计' as '';
SELECT
COUNT(*) as '总记录数',
COUNT(DISTINCT sender_id) as '送礼用户数',
COUNT(DISTINCT receiver_id) as '收礼用户数',
SUM(total_price) as '总金额',
AVG(total_price) as '平均金额'
FROM eb_gift_record;
-- 2. 最受欢迎的礼物
SELECT '2. 最受欢迎的礼物 TOP 5' as '';
SELECT
gift_name,
COUNT(*) as '送出次数',
SUM(quantity) as '总数量',
SUM(total_price) as '总金额'
FROM eb_gift_record
GROUP BY gift_name
ORDER BY COUNT(*) DESC
LIMIT 5;
-- 3. 收礼排行榜
SELECT '3. 收礼排行榜 TOP 5' as '';
SELECT
receiver_id,
receiver_name,
COUNT(*) as '收礼次数',
SUM(total_price) as '收礼总额'
FROM eb_gift_record
GROUP BY receiver_id, receiver_name
ORDER BY SUM(total_price) DESC
LIMIT 5;
-- 4. 送礼排行榜
SELECT '4. 送礼排行榜 TOP 5' as '';
SELECT
sender_id,
sender_name,
COUNT(*) as '送礼次数',
SUM(total_price) as '送礼总额'
FROM eb_gift_record
GROUP BY sender_id, sender_name
ORDER BY SUM(total_price) DESC
LIMIT 5;
-- 5. 按直播间统计
SELECT '5. 直播间礼物统计' as '';
SELECT
r.room_id,
lr.title as '直播间名称',
COUNT(*) as '礼物数量',
SUM(r.total_price) as '礼物总额'
FROM eb_gift_record r
LEFT JOIN eb_live_room lr ON r.room_id = lr.id
GROUP BY r.room_id, lr.title
ORDER BY SUM(r.total_price) DESC;
-- 6. 礼物配置检查
SELECT '6. 礼物配置列表' as '';
SELECT
id,
name,
price,
sort_order,
is_enabled,
CASE is_enabled WHEN 1 THEN '启用' ELSE '禁用' END as '状态'
FROM eb_gift_config
ORDER BY sort_order;
-- 7. 用户虚拟货币余额
SELECT '7. 测试用户虚拟货币余额' as '';
SELECT
uid,
nickname,
virtual_balance as '余额',
CASE
WHEN virtual_balance >= 10000 THEN '充足'
WHEN virtual_balance >= 1000 THEN '正常'
WHEN virtual_balance > 0 THEN '偏低'
ELSE '不足'
END as '状态'
FROM eb_user
WHERE uid IN (43, 44, 45)
ORDER BY uid;
-- 8. 最近礼物记录
SELECT '8. 最近 10 条礼物记录' as '';
SELECT
id,
sender_name as '送礼者',
receiver_name as '接收者',
gift_name as '礼物',
quantity as '数量',
total_price as '总价',
DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') as '时间'
FROM eb_gift_record
ORDER BY create_time DESC
LIMIT 10;
-- 9. 充值记录统计
SELECT '9. 充值记录统计' as '';
SELECT
COUNT(*) as '充值记录数',
COALESCE(SUM(virtual_amount), 0) as '充值总额',
COUNT(CASE WHEN payment_status = 1 THEN 1 END) as '成功支付数'
FROM eb_virtual_currency_recharge;
-- 10. 充值套餐配置
SELECT '10. 充值套餐配置' as '';
SELECT
id,
title as '套餐名称',
amount as '金额',
virtual_amount as '虚拟币',
bonus_amount as '赠送',
CASE is_hot WHEN 1 THEN '' ELSE '' END as '热门',
CASE is_enabled WHEN 1 THEN '启用' ELSE '禁用' END as '状态'
FROM eb_recharge_package
ORDER BY sort_order;
SELECT '========== 诊断完成 ==========' as '';