fix(ai): AI 配额摘要端点 500 错误修复
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:
@@ -116,13 +116,13 @@ impl QuotaService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub async fn get_usage_summary(&self, tenant_id: Uuid) -> AiResult<QuotaSummary> {
|
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
|
let budget = config
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|c| c.monthly_token_budget)
|
.map(|c| c.monthly_token_budget)
|
||||||
.unwrap_or(1_000_000);
|
.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 {
|
Ok(QuotaSummary {
|
||||||
tenant_id,
|
tenant_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user