优化履约路由并重命名乐玩通道
This commit is contained in:
@@ -231,6 +231,21 @@ async function resolveDynamicFulfillmentProfile(
|
||||
item: OrderItemRow,
|
||||
getProfileByKey: FulfillmentProfileResolver,
|
||||
): Promise<FulfillmentBindingLike | null> {
|
||||
const selectedExecutorKey = resolveSelectedFulfillmentExecutorKey(item)
|
||||
if (selectedExecutorKey) {
|
||||
if (selectedExecutorKey === FULFILLMENT_EXECUTOR_KEYS.KUAISHOU_CLOUD) {
|
||||
return resolveDynamicCloudtentaclesProfile(item, getProfileByKey)
|
||||
}
|
||||
|
||||
if (selectedExecutorKey === FULFILLMENT_EXECUTOR_KEYS.KUAISHOU_FEIFEI) {
|
||||
return resolveDynamicKuaishouFeifeiProfile(item, getProfileByKey)
|
||||
}
|
||||
|
||||
if (selectedExecutorKey === FULFILLMENT_EXECUTOR_KEYS.MANUAL_DISPATCH) {
|
||||
return resolveDynamicManualDispatchProfile(item, getProfileByKey)
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
await resolveDynamicCloudtentaclesProfile(item, getProfileByKey) ||
|
||||
await resolveDynamicKuaishouFeifeiProfile(item, getProfileByKey)
|
||||
@@ -272,7 +287,7 @@ async function resolveDynamicCloudtentaclesProfile(
|
||||
...profile,
|
||||
profile_id: Number(profile.id || profile.profile_id || 0),
|
||||
profile_key: FULFILLMENT_EXECUTOR_KEYS.KUAISHOU_CLOUD,
|
||||
profile_name: String(profile.profile_name || profile.name || '快手 cloud 履约').trim(),
|
||||
profile_name: String(profile.profile_name || profile.name || 'kuaishou-lewan 履约').trim(),
|
||||
executor_key: FULFILLMENT_EXECUTOR_KEYS.KUAISHOU_CLOUD,
|
||||
requires_claim: false,
|
||||
auto_dispatch: false,
|
||||
@@ -343,6 +358,42 @@ async function resolveDynamicKuaishouFeifeiProfile(
|
||||
}
|
||||
}
|
||||
|
||||
async function resolveDynamicManualDispatchProfile(
|
||||
item: OrderItemRow,
|
||||
getProfileByKey: FulfillmentProfileResolver,
|
||||
): Promise<FulfillmentBindingLike | null> {
|
||||
const profile = await getProfileByKey('manual_review')
|
||||
if (!profile) {
|
||||
return null
|
||||
}
|
||||
|
||||
return {
|
||||
...profile,
|
||||
profile_id: Number(profile.id || profile.profile_id || 0),
|
||||
profile_key: 'manual_review',
|
||||
profile_name: String(profile.profile_name || profile.name || '人工发货').trim(),
|
||||
executor_key: FULFILLMENT_EXECUTOR_KEYS.MANUAL_DISPATCH,
|
||||
requires_claim: false,
|
||||
auto_dispatch: false,
|
||||
config_json: {
|
||||
flowType: 'manual_dispatch',
|
||||
configId: `manual_dispatch:${item.sku_code || item.id}`,
|
||||
manualDispatch: {
|
||||
source: 'fulfillment_routing',
|
||||
skuCode: item.sku_code,
|
||||
skuName: item.sku_name,
|
||||
},
|
||||
notes: '履约路由规则指定人工履约',
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
function resolveSelectedFulfillmentExecutorKey(item: OrderItemRow) {
|
||||
const snapshot = parseJsonObject(item.item_snapshot_json)
|
||||
const route = parseJsonObject(snapshot.fulfillmentRoute)
|
||||
return String(route.selectedExecutorKey || '').trim()
|
||||
}
|
||||
|
||||
function parseJsonObject(value: unknown): JsonObject {
|
||||
if (!value) {
|
||||
return {}
|
||||
|
||||
Reference in New Issue
Block a user