Explorar o código

仪表盘数据调整

Taio_O hai 3 semanas
pai
achega
174481b72b

+ 62 - 2
admin/controllers/transactionController.js

@@ -1,5 +1,6 @@
 const Transaction = require('../models/Transaction');
 const Group = require('../models/Group');
+const { pool } = require('../config/database');
 
 // @desc    获取交易列表
 // @route   GET /api/transactions
@@ -66,9 +67,68 @@ const deleteTransaction = async (req, res) => {
 // @access  Private
 const getDashboardData = async (req, res) => {
     try {
-        const data = await Transaction.getDashboardData();
-        res.json(data);
+        // 获取总群组数
+        const [groupResult] = await pool.query('SELECT COUNT(*) as total FROM groups WHERE is_active = true');
+        const totalGroups = groupResult[0].total;
+
+        // 获取总交易数
+        const [transactionResult] = await pool.query('SELECT COUNT(*) as total FROM transactions');
+        const totalTransactions = transactionResult[0].total;
+
+        // 获取总金额
+        const [amountResult] = await pool.query(`
+            SELECT 
+                COALESCE(SUM(CASE WHEN type = 'deposit' THEN amount ELSE -amount END), 0) as total
+            FROM transactions
+        `);
+        const totalAmount = parseFloat(amountResult[0].total) || 0;
+
+        // 获取今日交易数
+        const [todayResult] = await pool.query(`
+            SELECT COUNT(*) as total 
+            FROM transactions 
+            WHERE DATE(time) = CURDATE()
+        `);
+        const todayTransactions = todayResult[0].total;
+
+        // 获取最近交易
+        const [recentTransactions] = await pool.query(`
+            SELECT 
+                t.*,
+                u.username as operator_name,
+                g.group_name
+            FROM transactions t
+            LEFT JOIN users u ON t.operator_id = u.id
+            LEFT JOIN groups g ON t.group_id = g.group_id
+            ORDER BY t.time DESC
+            LIMIT 5
+        `);
+
+        // 获取活跃群组
+        const [activeGroups] = await pool.query(`
+            SELECT 
+                g.group_id,
+                g.group_name,
+                COUNT(t.id) as totalTransactions,
+                COUNT(CASE WHEN DATE(t.time) = CURDATE() THEN 1 END) as todayTransactions
+            FROM groups g
+            LEFT JOIN transactions t ON g.group_id = t.group_id
+            WHERE g.is_active = true
+            GROUP BY g.group_id, g.group_name
+            ORDER BY todayTransactions DESC, totalTransactions DESC
+            LIMIT 5
+        `);
+
+        res.json({
+            totalGroups,
+            totalTransactions,
+            totalAmount,
+            todayTransactions,
+            recentTransactions,
+            activeGroups
+        });
     } catch (error) {
+        console.error('获取仪表板数据失败:', error);
         res.status(500).json({ message: '服务器错误' });
     }
 };

+ 0 - 67
admin/models/Transaction.js

@@ -196,73 +196,6 @@ const Transaction = {
         await pool.query('DELETE FROM transactions WHERE id = ?', [id]);
     },
 
-    // 获取仪表板数据
-    getDashboardData: async () => {
-        try {
-            // 获取总群组数
-            const [groupResult] = await pool.query('SELECT COUNT(*) as total FROM groups WHERE is_active = true');
-            const totalGroups = groupResult[0].total;
-
-            // 获取总交易数
-            const [transactionResult] = await pool.query('SELECT COUNT(*) as total FROM transactions');
-            const totalTransactions = transactionResult[0].total;
-
-            // 获取总金额
-            const [amountResult] = await pool.query(`
-                SELECT 
-                    SUM(CASE WHEN type = 'deposit' THEN amount ELSE -amount END) as total
-                FROM transactions
-            `);
-            const totalAmount = amountResult[0].total || 0;
-
-            // 获取今日交易数
-            const [todayResult] = await pool.query(`
-                SELECT COUNT(*) as total 
-                FROM transactions 
-                WHERE DATE(time) = CURDATE()
-            `);
-            const todayTransactions = todayResult[0].total;
-
-            // 获取最近交易
-            const [recentTransactions] = await pool.query(`
-                SELECT 
-                    t.*,
-                    u.username as operator_name
-                FROM transactions t
-                LEFT JOIN users u ON t.operator_id = u.id
-                ORDER BY t.time DESC
-                LIMIT 5
-            `);
-
-            // 获取活跃群组
-            const [activeGroups] = await pool.query(`
-                SELECT 
-                    g.*,
-                    COUNT(t.id) as transaction_count,
-                    SUM(CASE WHEN t.type = 'deposit' THEN t.amount ELSE 0 END) as total_deposit,
-                    SUM(CASE WHEN t.type = 'withdrawal' THEN t.amount ELSE 0 END) as total_withdrawal
-                FROM groups g
-                LEFT JOIN transactions t ON g.group_id = t.group_id
-                WHERE g.is_active = true
-                GROUP BY g.id
-                ORDER BY transaction_count DESC
-                LIMIT 5
-            `);
-
-            return {
-                totalGroups,
-                totalTransactions,
-                totalAmount,
-                todayTransactions,
-                recentTransactions,
-                activeGroups
-            };
-        } catch (error) {
-            console.error('获取仪表板数据失败:', error);
-            throw error;
-        }
-    },
-
     // 入款方法
     deposit: async (transactionData) => {
         try {

+ 3 - 3
admin/views/dashboard.html

@@ -90,11 +90,11 @@
                                 <i class="bi bi-cash-stack"></i> 交易记录
                             </a>
                         </li>
-                        <li class="nav-item">
+                        <!-- <li class="nav-item">
                             <a class="nav-link" href="/admin/views/statistics.html" data-page="statistics">
                                 <i class="bi bi-graph-up"></i> 统计报表
                             </a>
-                        </li>
+                        </li> -->
                         <li class="nav-item">
                             <a class="nav-link" href="/admin/views/settings.html" data-page="settings">
                                 <i class="bi bi-gear"></i> 系统设置
@@ -274,7 +274,7 @@
             // 更新活跃群组
             const activeGroupsHtml = (data.activeGroups || []).map(g => `
                 <tr>
-                    <td>${g.name || '-'}</td>
+                    <td>${g.group_name || '-'}</td>
                     <td>${g.todayTransactions || 0}</td>
                     <td>${g.totalTransactions || 0}</td>
                 </tr>

+ 2 - 2
admin/views/groups.html

@@ -85,11 +85,11 @@
                                 <i class="bi bi-cash-stack"></i> 交易记录
                             </a>
                         </li>
-                        <li class="nav-item">
+                        <!-- <li class="nav-item">
                             <a class="nav-link" href="/admin/views/statistics.html" data-page="statistics">
                                 <i class="bi bi-graph-up"></i> 统计报表
                             </a>
-                        </li>
+                        </li> -->
                         <li class="nav-item">
                             <a class="nav-link" href="/admin/views/settings.html" data-page="settings">
                                 <i class="bi bi-gear"></i> 系统设置

+ 2 - 2
admin/views/settings.html

@@ -81,11 +81,11 @@
                                 <i class="bi bi-cash-stack"></i> 交易记录
                             </a>
                         </li>
-                        <li class="nav-item">
+                        <!-- <li class="nav-item">
                             <a class="nav-link" href="/admin/views/statistics.html" data-page="statistics">
                                 <i class="bi bi-graph-up"></i> 统计报表
                             </a>
-                        </li>
+                        </li> -->
                         <li class="nav-item">
                             <a class="nav-link active" href="/admin/views/settings.html" data-page="settings">
                                 <i class="bi bi-gear"></i> 系统设置

+ 2 - 2
admin/views/transactions.html

@@ -90,11 +90,11 @@
                                 <i class="bi bi-cash-stack"></i> 交易记录
                             </a>
                         </li>
-                        <li class="nav-item">
+                        <!-- <li class="nav-item">
                             <a class="nav-link" href="/admin/views/statistics.html" data-page="statistics">
                                 <i class="bi bi-graph-up"></i> 统计报表
                             </a>
-                        </li>
+                        </li> -->
                         <li class="nav-item">
                             <a class="nav-link" href="/admin/views/settings.html" data-page="settings">
                                 <i class="bi bi-gear"></i> 系统设置