perf(order-repo): 优化后台订单关键词搜索,提取关键 JSON 字段并保留现有 GIN 索引命中
This commit is contained in:
@@ -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}
|
||||
)
|
||||
)
|
||||
)`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user