From 0a02e14bda8f1c2438c76e7d36a7b33ce70015e4 Mon Sep 17 00:00:00 2001 From: ZhenYi <434836402@qq.com> Date: Wed, 22 Apr 2026 20:52:17 +0800 Subject: [PATCH] fix(admin): platform/ai missing await on 4 queries --- admin/src/app/api/platform/ai/route.ts | 67 ++++++++++++-------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/admin/src/app/api/platform/ai/route.ts b/admin/src/app/api/platform/ai/route.ts index 01bffc8..abddeeb 100644 --- a/admin/src/app/api/platform/ai/route.ts +++ b/admin/src/app/api/platform/ai/route.ts @@ -8,41 +8,38 @@ export async function GET(req: NextRequest) { const { searchParams } = req.nextUrl; const type = searchParams.get("type") || "all"; - const providers = query( - `SELECT id, name, display_name, website, status, created_at - FROM ai_model_provider - ORDER BY name` - ); - - const models = query( - `SELECT m.id, m.name, m.modality, m.capability, m.context_length, - m.max_output_tokens, m.training_cutoff, m.is_open_source, m.status, - mv.model_id, mv.version, - p.id as provider_id, p.name as provider_name - FROM ai_model m - JOIN ai_model_provider p ON p.id = m.provider_id - LEFT JOIN ai_model_version mv ON mv.model_id = m.id AND mv.is_default = true - ORDER BY p.name, m.name` - ); - - const pricing = query( - `SELECT mp.id, mp.model_version_id, mp.input_price_per_1k_tokens, mp.output_price_per_1k_tokens, - mp.currency, mp.effective_from, - m.name as model_name, mv.model_id - FROM ai_model_pricing mp - JOIN ai_model_version mv ON mv.id = mp.model_version_id - JOIN ai_model m ON m.id = mv.model_id - ORDER BY mp.effective_from DESC - LIMIT 200` - ); - - const versions = query( - `SELECT mv.id, mv.model_id, mv.version, mv.release_date, mv.change_log, mv.is_default, mv.status, mv.created_at - FROM ai_model_version mv - ORDER BY mv.model_id, mv.version` - ); - - const [providersData, modelsData, pricingData, versionsData] = await Promise.all([providers, models, pricing, versions]); + const [providersData, modelsData, pricingData, versionsData] = await Promise.all([ + query( + `SELECT id, name, display_name, website, status, created_at, updated_at + FROM ai_model_provider + ORDER BY name` + ), + query( + `SELECT m.id, m.name, m.modality, m.capability, m.context_length, + m.max_output_tokens, m.training_cutoff, m.is_open_source, m.status, + mv.model_id, mv.version, + p.id as provider_id, p.name as provider_name + FROM ai_model m + JOIN ai_model_provider p ON p.id = m.provider_id + LEFT JOIN ai_model_version mv ON mv.model_id = m.id AND mv.is_default = true + ORDER BY p.name, m.name` + ), + query( + `SELECT mp.id, mp.model_version_id, mp.input_price_per_1k_tokens, mp.output_price_per_1k_tokens, + mp.currency, mp.effective_from, + m.name as model_name, mv.model_id + FROM ai_model_pricing mp + JOIN ai_model_version mv ON mv.id = mp.model_version_id + JOIN ai_model m ON m.id = mv.model_id + ORDER BY mp.effective_from DESC + LIMIT 200` + ), + query( + `SELECT mv.id, mv.model_id, mv.version, mv.release_date, mv.change_log, mv.is_default, mv.status, mv.created_at + FROM ai_model_version mv + ORDER BY mv.model_id, mv.version` + ), + ]); const providersList = providersData.rows.map((r: Record) => ({ id: String(r.id),