zhibo/add_ban_test_data.sql

71 lines
3.6 KiB
SQL

-- =====================================================
-- 添加封禁系统测试数据
-- =====================================================
-- 1. 确保封禁表存在
CREATE TABLE IF NOT EXISTS eb_user_ban (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL COMMENT '被封禁用户ID',
ban_type VARCHAR(20) DEFAULT 'permanent' COMMENT '封禁类型: permanent-永久, temporary-临时',
reason VARCHAR(500) COMMENT '封禁原因',
duration_days INT DEFAULT NULL COMMENT '封禁天数(临时封禁)',
expire_time DATETIME DEFAULT NULL COMMENT '封禁到期时间',
operator_id INT DEFAULT 0 COMMENT '操作人ID',
status TINYINT DEFAULT 1 COMMENT '状态: 1-生效中, 0-已解除',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户封禁表';
CREATE TABLE IF NOT EXISTS eb_room_ban (
id INT AUTO_INCREMENT PRIMARY KEY,
room_id INT NOT NULL COMMENT '被封禁房间ID',
ban_type VARCHAR(20) DEFAULT 'permanent' COMMENT '封禁类型: permanent-永久, temporary-临时',
reason VARCHAR(500) COMMENT '封禁原因',
duration_days INT DEFAULT NULL COMMENT '封禁天数(临时封禁)',
expire_time DATETIME DEFAULT NULL COMMENT '封禁到期时间',
operator_id INT DEFAULT 0 COMMENT '操作人ID',
status TINYINT DEFAULT 1 COMMENT '状态: 1-生效中, 0-已解除',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_room_id (room_id),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房间封禁表';
-- 2. 添加用户封禁测试数据
INSERT INTO eb_user_ban (user_id, ban_type, reason, duration_days, expire_time, operator_id, status, create_time) VALUES
(43, 'permanent', '发布违规内容', NULL, NULL, 1, 1, NOW() - INTERVAL 2 DAY),
(100, 'temporary', '恶意刷屏', 7, NOW() + INTERVAL 5 DAY, 1, 1, NOW() - INTERVAL 2 DAY),
(101, 'temporary', '骚扰其他用户', 30, NOW() + INTERVAL 28 DAY, 1, 1, NOW() - INTERVAL 2 DAY),
(102, 'permanent', '传播不良信息', NULL, NULL, 1, 0, NOW() - INTERVAL 10 DAY)
ON DUPLICATE KEY UPDATE reason = VALUES(reason);
-- 3. 添加房间封禁测试数据
INSERT INTO eb_room_ban (room_id, ban_type, reason, duration_days, expire_time, operator_id, status, create_time) VALUES
(1, 'temporary', '直播内容违规', 3, NOW() + INTERVAL 1 DAY, 1, 1, NOW() - INTERVAL 2 DAY),
(2, 'permanent', '严重违规行为', NULL, NULL, 1, 1, NOW() - INTERVAL 5 DAY),
(3, 'temporary', '未经授权的商业推广', 7, NOW() + INTERVAL 5 DAY, 1, 1, NOW() - INTERVAL 2 DAY),
(4, 'permanent', '涉及敏感内容', NULL, NULL, 1, 0, NOW() - INTERVAL 15 DAY)
ON DUPLICATE KEY UPDATE reason = VALUES(reason);
-- 4. 验证数据
SELECT '=== 用户封禁数据 ===' as info;
SELECT ub.*, u.nickname, u.phone
FROM eb_user_ban ub
LEFT JOIN eb_user u ON ub.user_id = u.uid
ORDER BY ub.create_time DESC;
SELECT '=== 房间封禁数据 ===' as info;
SELECT rb.*, lr.title as room_name, lr.streamer_name
FROM eb_room_ban rb
LEFT JOIN eb_live_room lr ON rb.room_id = lr.id
ORDER BY rb.create_time DESC;
SELECT '=== 统计 ===' as info;
SELECT
(SELECT COUNT(*) FROM eb_user_ban) as ,
(SELECT COUNT(*) FROM eb_user_ban WHERE status = 1) as ,
(SELECT COUNT(*) FROM eb_room_ban) as ,
(SELECT COUNT(*) FROM eb_room_ban WHERE status = 1) as ;