|
|
|
@@ -73,13 +73,13 @@ export const MERCHANT_CUSTOMS_STATUS_LABELS: Record<MerchantCustomsStatus, strin
|
|
|
|
|
|
|
|
|
|
const MAX_CUSTOMS_FILE_SIZE = 50 * 1024 * 1024
|
|
|
|
|
|
|
|
|
|
function encodedId(value: number | string) {
|
|
|
|
|
return encodeURIComponent(String(value))
|
|
|
|
|
function encodedId(value: string) {
|
|
|
|
|
return encodeURIComponent(value)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function inboundQuery(inboundIds: Array<number | string>) {
|
|
|
|
|
function inboundQuery(inboundIds: string[]) {
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
inboundIds.map(String).forEach((id) => params.append('inboundIds', id))
|
|
|
|
|
inboundIds.forEach((id) => params.append('inboundIds', id))
|
|
|
|
|
return params.toString()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -93,14 +93,14 @@ export function validateMerchantCustomsFile(file: File) {
|
|
|
|
|
if (file.size > MAX_CUSTOMS_FILE_SIZE) throw new Error('单个文件不能超过 50MB')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function getMerchantCustomsForOrder(orderId: number | string) {
|
|
|
|
|
export function getMerchantCustomsForOrder(orderId: string) {
|
|
|
|
|
return apiRequest<MerchantCustomsContainer>({
|
|
|
|
|
method: 'GET',
|
|
|
|
|
url: `/merchant/v1/customs/orders/${encodedId(orderId)}`,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function uploadMerchantCustomsDocument(planId: number | string, inboundIds: Array<number | string>, file: File) {
|
|
|
|
|
export function uploadMerchantCustomsDocument(planId: string, inboundIds: string[], file: File) {
|
|
|
|
|
validateMerchantCustomsFile(file)
|
|
|
|
|
return apiRequest<MerchantCustomsDocument>({
|
|
|
|
|
method: 'POST',
|
|
|
|
@@ -111,7 +111,7 @@ export function uploadMerchantCustomsDocument(planId: number | string, inboundId
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function replaceMerchantCustomsDocument(document: MerchantCustomsDocument, inboundIds: Array<number | string>, file: File) {
|
|
|
|
|
export function replaceMerchantCustomsDocument(document: MerchantCustomsDocument, inboundIds: string[], file: File) {
|
|
|
|
|
validateMerchantCustomsFile(file)
|
|
|
|
|
const params = new URLSearchParams(inboundQuery(inboundIds))
|
|
|
|
|
params.set('expectedVersion', String(document.source.version))
|
|
|
|
@@ -124,12 +124,12 @@ export function replaceMerchantCustomsDocument(document: MerchantCustomsDocument
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function updateMerchantCustomsDocumentInbounds(document: MerchantCustomsDocument, inboundIds: Array<number | string>) {
|
|
|
|
|
export function updateMerchantCustomsDocumentInbounds(document: MerchantCustomsDocument, inboundIds: string[]) {
|
|
|
|
|
return apiRequest<MerchantCustomsDocument>({
|
|
|
|
|
method: 'PUT',
|
|
|
|
|
url: `/merchant/v1/customs/documents/${encodedId(document.documentId)}/inbounds`,
|
|
|
|
|
headers: { 'Idempotency-Key': createIdempotencyKey(`merchant-customs-scope-${document.documentId}`) },
|
|
|
|
|
data: { inboundIds: inboundIds.map(String), expectedVersion: document.source.version },
|
|
|
|
|
data: { inboundIds, expectedVersion: document.source.version },
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|