From c79ea19aa14592b90c760d8f610bc42217ac9507 Mon Sep 17 00:00:00 2001 From: XiaoXice Date: Mon, 15 Dec 2025 15:14:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=A8=E6=97=B6=E9=97=B4api-token?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=9B=A0=E4=B8=BA=E6=97=A5token=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E8=BF=87=E6=9C=9F=E5=AF=BC=E8=87=B4=E4=B8=8D=E5=87=86?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/admin/apiKeys.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/routes/admin/apiKeys.js b/src/routes/admin/apiKeys.js index 6c887239..d88444bd 100644 --- a/src/routes/admin/apiKeys.js +++ b/src/routes/admin/apiKeys.js @@ -1030,12 +1030,10 @@ async function calculateKeyStats(keyId, timeRange, startDate, endDate) { const modelStatsMap = new Map() let totalRequests = 0 - // 用于去重:只统计日数据,避免与月数据重复 + // 用于去重:先统计月数据,避免与日数据重复 const dailyKeyPattern = /usage:.+:model:daily:(.+):\d{4}-\d{2}-\d{2}$/ const monthlyKeyPattern = /usage:.+:model:monthly:(.+):\d{4}-\d{2}$/ - - // 检查是否有日数据 - const hasDailyData = uniqueKeys.some((key) => dailyKeyPattern.test(key)) + const currentMonth = `${tzDate.getUTCFullYear()}-${String(tzDate.getUTCMonth() + 1).padStart(2, '0')}` for (let i = 0; i < results.length; i++) { const [err, data] = results[i] @@ -1062,8 +1060,12 @@ async function calculateKeyStats(keyId, timeRange, startDate, endDate) { continue } - // 如果有日数据,则跳过月数据以避免重复 - if (hasDailyData && isMonthly) { + // 跳过当前月的月数据 + if (isMonthly && key.includes(`:${currentMonth}`)) { + continue + } + // 跳过非当前月的日数据 + if (!isMonthly && !key.includes(`:${currentMonth}-`)) { continue }