From d6994316f1477a790138b0832cff45fcbd7e2233 Mon Sep 17 00:00:00 2001 From: fawney19 Date: Thu, 11 Dec 2025 10:52:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E7=AD=9B=E9=80=89=E5=85=BC=E5=AE=B9=E6=97=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 失败请求筛选同时考虑新旧两种判断方式: - 新方式:status = "failed" - 旧方式:status_code >= 400 或 error_message 不为空 --- frontend/src/views/shared/Usage.vue | 9 ++++++++- src/api/admin/usage/routes.py | 11 ++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/shared/Usage.vue b/frontend/src/views/shared/Usage.vue index 5237e4c..efa5a80 100644 --- a/frontend/src/views/shared/Usage.vue +++ b/frontend/src/views/shared/Usage.vue @@ -171,7 +171,14 @@ const filteredRecords = computed(() => { } else if (filterStatus.value === 'completed') { records = records.filter(record => record.status === 'completed') } else if (filterStatus.value === 'failed') { - records = records.filter(record => record.status === 'failed') + // 失败请求需要同时考虑新旧两种判断方式: + // 1. 新方式:status = "failed" + // 2. 旧方式:status_code >= 400 或 error_message 不为空 + records = records.filter(record => + record.status === 'failed' || + (record.status_code && record.status_code >= 400) || + record.error_message + ) } } diff --git a/src/api/admin/usage/routes.py b/src/api/admin/usage/routes.py index c1002ff..7244a9d 100644 --- a/src/api/admin/usage/routes.py +++ b/src/api/admin/usage/routes.py @@ -530,9 +530,18 @@ class AdminUsageRecordsAdapter(AdminApiAdapter): query = query.filter( (Usage.status_code >= 400) | (Usage.error_message.isnot(None)) ) - elif self.status in ("pending", "streaming", "completed", "failed"): + elif self.status in ("pending", "streaming", "completed"): # 新的状态筛选:直接按 status 字段过滤 query = query.filter(Usage.status == self.status) + elif self.status == "failed": + # 失败请求需要同时考虑新旧两种判断方式: + # 1. 新方式:status = "failed" + # 2. 旧方式:status_code >= 400 或 error_message 不为空 + query = query.filter( + (Usage.status == "failed") | + (Usage.status_code >= 400) | + (Usage.error_message.isnot(None)) + ) elif self.status == "active": # 活跃请求:pending 或 streaming 状态 query = query.filter(Usage.status.in_(["pending", "streaming"]))