fix: 修复失败请求筛选兼容旧数据

失败请求筛选同时考虑新旧两种判断方式:
- 新方式:status = "failed"
- 旧方式:status_code >= 400 或 error_message 不为空
This commit is contained in:
fawney19
2025-12-11 10:52:12 +08:00
parent 323a514f77
commit d6994316f1
2 changed files with 18 additions and 2 deletions

View File

@@ -171,7 +171,14 @@ const filteredRecords = computed(() => {
} else if (filterStatus.value === 'completed') { } else if (filterStatus.value === 'completed') {
records = records.filter(record => record.status === 'completed') records = records.filter(record => record.status === 'completed')
} else if (filterStatus.value === 'failed') { } 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
)
} }
} }

View File

@@ -530,9 +530,18 @@ class AdminUsageRecordsAdapter(AdminApiAdapter):
query = query.filter( query = query.filter(
(Usage.status_code >= 400) | (Usage.error_message.isnot(None)) (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 字段过滤 # 新的状态筛选:直接按 status 字段过滤
query = query.filter(Usage.status == self.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": elif self.status == "active":
# 活跃请求pending 或 streaming 状态 # 活跃请求pending 或 streaming 状态
query = query.filter(Usage.status.in_(["pending", "streaming"])) query = query.filter(Usage.status.in_(["pending", "streaming"]))