隔离旧履约规则与快手新履约入口
This commit is contained in:
@@ -2,14 +2,16 @@
|
||||
|
||||
import { getAgisoShopConfig } from '../../platforms/agiso/shop-config-service.js'
|
||||
import {
|
||||
getOrderFulfillmentBindingConfigs,
|
||||
filterLegacyOrderFulfillmentBindings,
|
||||
getOrderFulfillmentBindingsFilePath,
|
||||
getLegacyOrderFulfillmentBindingConfigs,
|
||||
saveOrderFulfillmentBindingConfigs,
|
||||
} from '../../order/fulfillment-binding-config-service.js'
|
||||
import { enrichAgisoXianyuTradeOrder } from '../../platforms/agiso/xianyu/order-detail-service.js'
|
||||
import { getKuaishouEticketSourceConfig, resolveKuaishouEticketShopConfig } from '../../platforms/kuaishou-eticket/source-config-service.js'
|
||||
import { syncConfiguredFulfillmentBindings } from '../../bootstrap/fulfillment-bootstrap-service.js'
|
||||
import { getFulfillmentProfileByKey } from '../../../repositories/fulfillment-profile-repo.js'
|
||||
import { createHttpError } from '../../../utils/http.js'
|
||||
import {
|
||||
buildFulfillmentLookupResult,
|
||||
normalizeFulfillmentLookupPayload,
|
||||
@@ -23,7 +25,7 @@ import { mapAdminFulfillmentBindingConfigItem } from './domain.js'
|
||||
/** @typedef {import('../../../types/admin-write-inputs.js').AdminFulfillmentBindingLookupInput} AdminFulfillmentBindingLookupInput */
|
||||
|
||||
export async function getAdminFulfillmentBindingConfigs() {
|
||||
const bindings = getOrderFulfillmentBindingConfigs()
|
||||
const bindings = getLegacyOrderFulfillmentBindingConfigs()
|
||||
|
||||
return {
|
||||
filePath: getOrderFulfillmentBindingsFilePath(),
|
||||
@@ -57,7 +59,7 @@ export async function lookupAdminFulfillmentBindingOrder(payload = /** @type {Ad
|
||||
})
|
||||
|
||||
const { detail } = resolveFulfillmentLookupDetail(detailResult, platformOrderId)
|
||||
const bindings = getOrderFulfillmentBindingConfigs()
|
||||
const bindings = getLegacyOrderFulfillmentBindingConfigs()
|
||||
return buildFulfillmentLookupResult({
|
||||
provider,
|
||||
platform,
|
||||
@@ -80,6 +82,7 @@ export async function updateAdminFulfillmentBindingConfigs(
|
||||
resolveKuaishouEticketShopConfig,
|
||||
getFulfillmentProfileByKey,
|
||||
})
|
||||
assertLegacyBindingConfigsOnly(normalizedBindings)
|
||||
const saved = saveOrderFulfillmentBindingConfigs(normalizedBindings)
|
||||
await syncConfiguredFulfillmentBindings()
|
||||
|
||||
@@ -88,3 +91,14 @@ export async function updateAdminFulfillmentBindingConfigs(
|
||||
bindings: saved.map(mapAdminFulfillmentBindingConfigItem),
|
||||
}
|
||||
}
|
||||
|
||||
function assertLegacyBindingConfigsOnly(bindings = []) {
|
||||
if (filterLegacyOrderFulfillmentBindings(bindings).length === bindings.length) {
|
||||
return
|
||||
}
|
||||
|
||||
throw createHttpError('快手履约规则请改到“快手 Cloud 新履约”页维护,旧履约规则仅保留给 Agiso 等历史场景', {
|
||||
statusCode: 400,
|
||||
errorCode: 'admin_fulfillment_bindings_kuaishou_cloud_moved',
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user