修正機敏資料
This commit is contained in:
@@ -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,
|
||||
|
22
env.example
22
env.example
@@ -3,18 +3,18 @@
|
||||
# =====================================================
|
||||
|
||||
# ===== 主機資料庫配置 =====
|
||||
DB_HOST=mysql.theaken.com
|
||||
DB_PORT=33306
|
||||
DB_NAME=db_AI_Platform
|
||||
DB_USER=AI_Platform
|
||||
DB_PASSWORD=Aa123456
|
||||
DB_HOST=XXXXX
|
||||
DB_PORT=XXXX
|
||||
DB_NAME=XXXXX
|
||||
DB_USER=XXXX
|
||||
DB_PASSWORD=XXXX
|
||||
|
||||
# ===== 備機資料庫配置 =====
|
||||
SLAVE_DB_HOST=122.100.99.161
|
||||
SLAVE_DB_PORT=43306
|
||||
SLAVE_DB_NAME=db_AI_Platform
|
||||
SLAVE_DB_USER=A999
|
||||
SLAVE_DB_PASSWORD=1023
|
||||
SLAVE_DB_HOST=XXXX
|
||||
SLAVE_DB_PORT=XXXX
|
||||
SLAVE_DB_NAME=XXXX
|
||||
SLAVE_DB_USER=XXXX
|
||||
SLAVE_DB_PASSWORD=XXXX
|
||||
|
||||
# ===== 資料庫備援配置 =====
|
||||
DB_FAILOVER_ENABLED=true
|
||||
@@ -30,7 +30,7 @@ DB_RETRY_DELAY=2000
|
||||
|
||||
# ===== AI API 配置 =====
|
||||
# Gemini API 配置 (主要使用)
|
||||
NEXT_PUBLIC_GEMINI_API_KEY=AIzaSyAN3pEJr_Vn2xkCidGZAq9eQqsMVvpj8g4
|
||||
NEXT_PUBLIC_GEMINI_API_KEY=your_api_key_here
|
||||
NEXT_PUBLIC_GEMINI_API_URL=https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent
|
||||
|
||||
# DeepSeek API 配置 (備用)
|
||||
|
Reference in New Issue
Block a user