From c431a574c8c5419b884f1f57a8e6b5f6f81f1f5e Mon Sep 17 00:00:00 2001 From: WuYongJie <549727955@qq.com> Date: Tue, 3 Nov 2026 13:51:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=90=8C=E5=90=8D=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=AF=BC=E8=87=B4=E7=B2=BE=E9=80=89=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=92=8C=E8=AE=A1=E6=95=B0=E5=81=8F=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 同一 modelId 配置多个上游时,精选接口的模型关联会把一张图片返回多次,导致数量和分页偏大。改为为每张图片选择一个模型名称,保证图片记录和总数一致。 验证:生产只读数据包含同名模型两条,修正查询返回 6 个不同图片 ID、总数 6;TypeScript 检查通过。 --- app/api/featured/route.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/api/featured/route.ts b/app/api/featured/route.ts index 493f430cf..fcb5c3218 100644 --- a/app/api/featured/route.ts +++ b/app/api/featured/route.ts @@ -58,12 +58,13 @@ export async function GET(request: NextRequest) { userName: user.name, userEmail: user.email, userDepartment: user.department, - modelName: aiModel.displayName, + modelName: sql`(select ${aiModel.displayName} from ${aiModel} + where ${aiModel.modelId} = ${generatedImage.modelId} + order by ${aiModel.isEnabled} desc, ${aiModel.createdAt} desc, ${aiModel.id} asc limit 1)`, totalCount: sql`count(*) over()::int`, }) .from(generatedImage) .leftJoin(user, eq(generatedImage.userId, user.id)) - .leftJoin(aiModel, eq(generatedImage.modelId, aiModel.modelId)) .where(and( eq(generatedImage.isFeatured, true), sql`${generatedImage.originalUrl} !~* ${RETIRED_STORAGE_URL_PATTERN}`,