From 8f58fe62642747e967756a4ada2dababdc176a56 Mon Sep 17 00:00:00 2001 From: AAEE86 Date: Thu, 16 Oct 2025 22:54:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B4=A6=E5=8F=B7=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=B6=8B=E5=8A=BF=E5=A2=9E=E5=8A=A0=E5=AF=B9Droid=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/admin.js | 16 ++++++++++++++-- web/admin-spa/src/views/DashboardView.vue | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/routes/admin.js b/src/routes/admin.js index 0206c6c1..2556bf35 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -5736,7 +5736,7 @@ router.get('/account-usage-trend', authenticateAdmin, async (req, res) => { try { const { granularity = 'day', group = 'claude', days = 7, startDate, endDate } = req.query - const allowedGroups = ['claude', 'openai', 'gemini'] + const allowedGroups = ['claude', 'openai', 'gemini', 'droid'] if (!allowedGroups.includes(group)) { return res.status(400).json({ success: false, @@ -5747,7 +5747,8 @@ router.get('/account-usage-trend', authenticateAdmin, async (req, res) => { const groupLabels = { claude: 'Claude账户', openai: 'OpenAI账户', - gemini: 'Gemini账户' + gemini: 'Gemini账户', + droid: 'Droid账户' } // 拉取各平台账号列表 @@ -5815,6 +5816,17 @@ router.get('/account-usage-trend', authenticateAdmin, async (req, res) => { platform: 'gemini' } }) + } else if (group === 'droid') { + const droidAccounts = await droidAccountService.getAllAccounts() + accounts = droidAccounts.map((account) => { + const id = String(account.id || '') + const shortId = id ? id.slice(0, 8) : '未知' + return { + id, + name: account.name || account.ownerEmail || account.ownerName || `Droid账号 ${shortId}`, + platform: 'droid' + } + }) } if (!accounts || accounts.length === 0) { diff --git a/web/admin-spa/src/views/DashboardView.vue b/web/admin-spa/src/views/DashboardView.vue index 6a19cd24..61ac8124 100644 --- a/web/admin-spa/src/views/DashboardView.vue +++ b/web/admin-spa/src/views/DashboardView.vue @@ -726,7 +726,8 @@ let accountUsageTrendChartInstance = null const accountGroupOptions = [ { value: 'claude', label: 'Claude' }, { value: 'openai', label: 'OpenAI' }, - { value: 'gemini', label: 'Gemini' } + { value: 'gemini', label: 'Gemini' }, + { value: 'droid', label: 'Droid' } ] const accountTrendUpdating = ref(false)