perf(order-repo): 优化后台订单关键词搜索,提取关键 JSON 字段并保留现有 GIN 索引命中

This commit is contained in:
yml2213
2026-09-10 10:13:00 +08:00
parent 62049fa284
commit 1b6e117c7f
+17 -7
View File
@@ -243,19 +243,29 @@ export async function listOrdersWithExecutor(
filters.push(`(
(
o.platform_order_id || ' ' || o.shop_id || ' ' || o.shop_name || ' ' ||
o.buyer_id || ' ' || o.buyer_name || ' ' || o.receiver_contact || ' ' ||
o.raw_payload_json::text
o.buyer_id || ' ' || o.buyer_name || ' ' || o.receiver_contact
) ILIKE ${keywordParam}
OR (
COALESCE(o.raw_payload_json->'body'->>'itemTitle', o.raw_payload_json->>'itemTitle', '') || ' ' ||
COALESCE(o.raw_payload_json->'body'->>'productNo', o.raw_payload_json->>'productNo', '') || ' ' ||
COALESCE(o.raw_payload_json->'body'->>'itemId', o.raw_payload_json->>'itemId', '') || ' ' ||
COALESCE(o.raw_payload_json->'body'->>'skuId', o.raw_payload_json->>'skuId', '')
) ILIKE ${keywordParam}
OR EXISTS (
SELECT 1
FROM order_items oi
WHERE oi.order_id = o.id
AND (
oi.sku_code || ' ' || oi.sku_name || ' ' ||
COALESCE(oi.item_snapshot_json->'kuaishouSendCode'->>'itemTitle', '') || ' ' ||
COALESCE(oi.item_snapshot_json->'kuaishouSendCode'->>'skuNick', '') || ' ' ||
COALESCE(oi.spec_json::text, '')
) ILIKE ${keywordParam}
(
oi.sku_code || ' ' || oi.sku_name || ' ' ||
COALESCE(oi.item_snapshot_json->'kuaishouSendCode'->>'itemTitle', '') || ' ' ||
COALESCE(oi.item_snapshot_json->'kuaishouSendCode'->>'skuNick', '')
) ILIKE ${keywordParam}
OR (
COALESCE(oi.spec_json->>'skuNick', '') || ' ' ||
COALESCE(oi.spec_json->>'itemTitle', '')
) ILIKE ${keywordParam}
)
)
)`)
}