增加订单实时状态同步
This commit is contained in:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user