fix(pdd): 停止旧单刷匹配日志,并修复订单列表商品显示为 0
同步时已有工单/匹配结果未变不再写日志;列表按 Number(order_id) 挂 items,并补齐 PDD goods_name 回退与嵌套商品解析。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
createWorkProductMatchLog,
|
||||
createWorkOrder,
|
||||
createWorkOrderEvent,
|
||||
getLatestWorkProductMatchLogByOrderItemId,
|
||||
getWorkOrderByOrderItemId,
|
||||
listWorkOrdersByPlatformOrderId,
|
||||
listWorkProductRuleMappings,
|
||||
@@ -68,8 +69,30 @@ export async function syncWorkerOrdersForSourceOrder(
|
||||
const skuNick =
|
||||
matchContext.skuNick || String(outSkuSn || snapshot.spec || item.sku_name || '').trim()
|
||||
|
||||
// Record product match diagnostics for all platform orders (including PDD)
|
||||
if (sellerId || relItemId || itemTitle) {
|
||||
// 已有工单:跳过匹配日志,避免 PDD 定时同步对旧单反复刷「命中」日志。
|
||||
const existingWorkOrder = await getWorkOrderByOrderItemId(item.id)
|
||||
if (existingWorkOrder) {
|
||||
skipped.push({ orderItemId: Number(item.id), reason: 'already_exists' })
|
||||
decisions.push(
|
||||
buildWorkerConsumerDecision(item, {
|
||||
result: 'existing',
|
||||
reason: 'already_exists',
|
||||
ruleId: match.rule?.id,
|
||||
ruleKey: match.rule?.rule_key,
|
||||
}),
|
||||
)
|
||||
continue
|
||||
}
|
||||
|
||||
const latestLog = await getLatestWorkProductMatchLogByOrderItemId(item.id)
|
||||
const sameMatchOutcome =
|
||||
latestLog &&
|
||||
String(latestLog.match_status || '') === match.reason &&
|
||||
Number(latestLog.rule_id || 0) === Number(match.rule?.id || 0) &&
|
||||
Number(latestLog.mapping_id || 0) === Number(match.mappingId || 0)
|
||||
|
||||
// 匹配结果未变时不重复写诊断日志(旧单未建工单也会被定时同步反复扫到)。
|
||||
if (!sameMatchOutcome && (sellerId || relItemId || itemTitle)) {
|
||||
await createWorkProductMatchLog({
|
||||
orderId: Number(order.id),
|
||||
orderItemId: Number(item.id),
|
||||
@@ -122,18 +145,6 @@ export async function syncWorkerOrdersForSourceOrder(
|
||||
)
|
||||
continue
|
||||
}
|
||||
if (await getWorkOrderByOrderItemId(item.id)) {
|
||||
skipped.push({ orderItemId: Number(item.id), reason: 'already_exists' })
|
||||
decisions.push(
|
||||
buildWorkerConsumerDecision(item, {
|
||||
result: 'existing',
|
||||
reason: 'already_exists',
|
||||
ruleId: rule.id,
|
||||
ruleKey: rule.rule_key,
|
||||
}),
|
||||
)
|
||||
continue
|
||||
}
|
||||
// 订单号跨订单唯一:同一订单的多个 SKU 件允许共享订单号(按件建单是既有设计),
|
||||
// 但订单号已挂在其他订单下时跳过,避免自动同步产生撞号工单。
|
||||
const samePlatformOrders = await listWorkOrdersByPlatformOrderId(order.platform_order_id)
|
||||
|
||||
Reference in New Issue
Block a user