修复过滤规则

This commit is contained in:
2026-07-22 14:23:25 +08:00
parent badec85bbf
commit 0bb277c6eb

View File

@@ -100,7 +100,7 @@ app.get('/api/rooms', auth, (req, res) => {
if (isAdmin) { if (isAdmin) {
rooms = db.prepare('SELECT * FROM rooms').all(); rooms = db.prepare('SELECT * FROM rooms').all();
} else { } else {
rooms = db.prepare('SELECT * FROM rooms WHERE white_list = ? OR white_list LIKE ?').all('', `%,${username},%`); rooms = db.prepare("SELECT * FROM rooms WHERE white_list = '' OR (',' || white_list || ',' LIKE ?)").all(`%,${username},%`);
} }
const result = rooms.map(room => { const result = rooms.map(room => {
const lastMsg = db.prepare('SELECT text, timestamp FROM messages WHERE room_id = ? ORDER BY timestamp DESC LIMIT 1').get(room.id); const lastMsg = db.prepare('SELECT text, timestamp FROM messages WHERE room_id = ? ORDER BY timestamp DESC LIMIT 1').get(room.id);
@@ -208,7 +208,7 @@ app.get('/api/summary', auth, (req, res) => {
rooms = db.prepare('SELECT id, name FROM rooms').all(); rooms = db.prepare('SELECT id, name FROM rooms').all();
} else { } else {
// 使用与群聊列表完全相同的白名单过滤方式 // 使用与群聊列表完全相同的白名单过滤方式
rooms = db.prepare('SELECT id, name FROM rooms WHERE white_list = ? OR white_list LIKE ?').all('', `%,${username},%`); rooms = db.prepare("SELECT id, name FROM rooms WHERE white_list = '' OR (',' || white_list || ',' LIKE ?)").all(`%,${username},%`)
} }
const summary = rooms.map(room => { const summary = rooms.map(room => {
const stats = db.prepare(`SELECT COUNT(*) as count, SUM(amount) as total FROM purchases WHERE room_id = ?`).get(room.id); const stats = db.prepare(`SELECT COUNT(*) as count, SUM(amount) as total FROM purchases WHERE room_id = ?`).get(room.id);
@@ -236,7 +236,7 @@ app.get('/api/rooms/:roomId/purchases/export', auth, (req, res) => {
// WebSocket // WebSocket
const clients = new Map(); const clients = new Map();
wss.on('connection', (ws, req) => { wss.on('connection', (ws, req) => {
console.log('✅ WebSocket 客户端已连接'); //console.log('✅ WebSocket 客户端已连接');
const url = new URL(req.url, 'http://localhost'); const url = new URL(req.url, 'http://localhost');
const token = url.searchParams.get('token'); const token = url.searchParams.get('token');
if (!token) return ws.close(); if (!token) return ws.close();