修正機敏資料

This commit is contained in:
2025-09-24 00:15:04 +08:00
parent 6f3b56d494
commit e2df87c6b7
2 changed files with 32 additions and 28 deletions

View File

@@ -37,17 +37,17 @@ export async function GET(request: NextRequest) {
const today = new Date().toISOString().split('T')[0]
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString().split('T')[0]
// 批次查詢基本統計數據
// 批次查詢基本統計數據 - 主要使用 activity_logs 表
let basicStats
try {
basicStats = await db.query(`
SELECT
(SELECT COUNT(*) FROM users) as total_users,
(SELECT COUNT(DISTINCT user_id) FROM activity_logs WHERE DATE(CONVERT_TZ(created_at, '+00:00', '+08:00')) = ? AND action IN ('login', 'view', 'submit', 'vote', 'like')) as today_active_users,
(SELECT COUNT(DISTINCT user_id) FROM activity_logs WHERE DATE(CONVERT_TZ(created_at, '+00:00', '+08:00')) = ? AND action IN ('login', 'view', 'submit', 'vote', 'like')) as yesterday_active_users,
(SELECT COUNT(DISTINCT user_id) FROM activity_logs WHERE DATE(created_at) = ? AND action IN ('login', 'view', 'submit', 'vote', 'like', 'favorite')) as today_active_users,
(SELECT COUNT(DISTINCT user_id) FROM activity_logs WHERE DATE(created_at) = ? AND action IN ('login', 'view', 'submit', 'vote', 'like', 'favorite')) as yesterday_active_users,
(SELECT COALESCE(AVG(rating), 0) FROM user_ratings WHERE rating > 0) as avg_rating,
(SELECT COUNT(*) FROM apps) as total_apps,
(SELECT COUNT(*) FROM apps WHERE DATE(CONVERT_TZ(created_at, '+00:00', '+08:00')) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)) as new_this_week
(SELECT COUNT(*) FROM apps WHERE DATE(created_at) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)) as new_this_week
`, [today, yesterday])
} catch (dbError) {
console.error('📊 資料庫查詢錯誤:', dbError)
@@ -89,7 +89,7 @@ export async function GET(request: NextRequest) {
const debugActivityLogs = await db.query(`
SELECT action, COUNT(*) as count
FROM activity_logs
WHERE DATE(CONVERT_TZ(created_at, '+00:00', '+08:00')) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
WHERE DATE(created_at) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY action
ORDER BY count DESC
`)
@@ -98,7 +98,7 @@ export async function GET(request: NextRequest) {
const debugTodayActivity = await db.query(`
SELECT action, COUNT(DISTINCT user_id) as unique_users
FROM activity_logs
WHERE DATE(CONVERT_TZ(created_at, '+00:00', '+08:00')) = ?
WHERE DATE(created_at) = ?
GROUP BY action
ORDER BY unique_users DESC
`, [today])
@@ -221,31 +221,35 @@ export async function GET(request: NextRequest) {
console.log('📊 查詢日期範圍:', { startDate, endDate })
// 先測試查詢是否有數據
// 先測試查詢是否有數據 - 使用 activity_logs 表
const testQuery = await db.query(`
SELECT
viewed_at,
DATE(viewed_at) as date_direct,
created_at,
DATE(created_at) as date_direct,
user_id,
app_id
FROM user_views
WHERE DATE(viewed_at) BETWEEN ? AND ?
ORDER BY viewed_at DESC
action,
resource_type
FROM activity_logs
WHERE DATE(created_at) BETWEEN ? AND ?
ORDER BY created_at DESC
LIMIT 10
`, [startDate, endDate])
console.log('📊 測試查詢結果最近10筆:', testQuery)
// 使用 activity_logs 表獲取每日用戶和會話數據
dailyStats = await db.query(`
SELECT
DATE(viewed_at) as date,
DATE(created_at) as date,
COUNT(DISTINCT user_id) as daily_users,
COUNT(*) as daily_sessions
FROM user_views
WHERE DATE(viewed_at) BETWEEN ? AND ?
GROUP BY DATE(viewed_at)
FROM activity_logs
WHERE DATE(created_at) BETWEEN ? AND ?
AND action IN ('login', 'view', 'submit', 'vote', 'like', 'favorite')
GROUP BY DATE(created_at)
ORDER BY date DESC
`, [startDate, endDate])
// 獲取所有活動的統計
dailyActivityStats = await db.query(`
SELECT
DATE(created_at) as date,