fix(ai): AI 配额摘要端点 500 错误修复
Some checks failed
CI / security-audit (push) Has been cancelled
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled

get_usage_summary 中 get_tenant_config 和 get_monthly_token_usage 的
数据库错误直接传播为 AppError::Internal (500),当 ai_tenant_configs 表
为空或查询异常时导致整个端点不可用。

改为 unwrap_or 降级处理:config 缺失时使用默认配额,token 查询失败时归零,
确保端点始终返回有效数据而非 500。
This commit is contained in:
iven
2026-05-09 07:52:41 +08:00
parent e4b19090b8
commit 8490344d69

View File

@@ -116,13 +116,13 @@ impl QuotaService {
}
pub async fn get_usage_summary(&self, tenant_id: Uuid) -> AiResult<QuotaSummary> {
let config = self.get_tenant_config(tenant_id).await?;
let config = self.get_tenant_config(tenant_id).await.unwrap_or(None);
let budget = config
.as_ref()
.map(|c| c.monthly_token_budget)
.unwrap_or(1_000_000);
let used = self.get_monthly_token_usage(tenant_id).await?;
let used = self.get_monthly_token_usage(tenant_id).await.unwrap_or(0);
Ok(QuotaSummary {
tenant_id,