增加订单实时状态同步

This commit is contained in:
yml2213
2026-08-17 14:51:51 +08:00
parent 5330b55b75
commit 18dad9b0fe
13 changed files with 798 additions and 16 deletions
@@ -31,6 +31,10 @@ import {
} from './voucher-service.js'
import { bindKuaishouIndustryVouchersToOrderTasks } from './voucher-binding-service.js'
import { parseAmountToFen } from '../../../utils/money.js'
import {
publishRealtimeEvent,
publishWorkOrderRealtimeChange,
} from '../../realtime/realtime-event-service.js'
import type { KuaishouIndustryVoucherRow, OrderRow } from '../../../types/repository/rows.js'
type SendCodeCallbackParams = {
@@ -118,23 +122,36 @@ export async function handleSendCode(rawBody: JsonObject = {}) {
})
}
await syncWorkOrdersFromKuaishouSendCode({
oid: normalizedOid,
sellerId: params.sellerId,
itemId: params.itemId,
itemTitle: params.itemTitle,
skuId: params.skuId,
num: params.num,
paymentFen: resolveSendCodePaymentFen(params.ext),
rawParams: params,
vouchers,
now,
}).catch((error) => {
try {
const syncResult = await syncWorkOrdersFromKuaishouSendCode({
oid: normalizedOid,
sellerId: params.sellerId,
itemId: params.itemId,
itemTitle: params.itemTitle,
skuId: params.skuId,
num: params.num,
paymentFen: resolveSendCodePaymentFen(params.ext),
rawParams: params,
vouchers,
now,
})
if (syncResult.orderId) {
publishRealtimeEvent({
type: 'order.changed',
entityId: syncResult.orderId,
scopes: ['admin_orders'],
admin: true,
})
}
for (const workOrderId of syncResult.workOrderIds) {
publishWorkOrderRealtimeChange({ workOrderId })
}
} catch (error) {
logWarn('[kuaishou-industry/send-code]', '发单平台工单同步失败,不影响发码主流程', {
oid: normalizedOid,
error: error instanceof Error ? error.message : String(error),
})
})
}
scheduleKuaishouIndustrySendCallbackRetry(normalizedOid, SEND_CALLBACK_INITIAL_DELAY_MS, {
source: 'send_code_accepted',