feat(fulfillment): 增加统一结算与多渠道人工履约

This commit is contained in:
yml2213
2026-11-05 16:14:56 +08:00
parent 548070c2ad
commit 4e83dbb84c
43 changed files with 1582 additions and 334 deletions
@@ -8,9 +8,9 @@
import { Router } from 'express'
import {
assignChannelByInternalSku,
assignChannelBySku,
assignChannelToOrderItems,
assignPendingChannelGroup,
deletePendingChannelGroup,
deleteChannelRule,
deleteChannelRules,
@@ -150,17 +150,18 @@ router.post(
createJsonHandler(
(req) =>
deletePendingChannelGroup({
groupKey: String(bodyOf(req).groupKey || ''),
internalSku: String(bodyOf(req).internalSku || ''),
adminUserId: req.adminSession?.userId ?? null,
}),
{
successMessage: '待分类记录已删除',
errorMessage: '删除待分类记录失败',
successMessage: '待分类记录已忽略归档',
errorMessage: '归档待分类记录失败',
scope: '[admin/fulfillment/pending/delete]',
audit: (req, data) => ({
action: 'fulfillment.delete_pending_group',
targetType: 'internal_sku',
targetId: String(bodyOf(req).internalSku || ''),
action: 'fulfillment.archive_pending_group',
targetType: 'pending_group',
targetId: String(bodyOf(req).groupKey || bodyOf(req).internalSku || ''),
data: data as Record<string, unknown>,
}),
},
@@ -307,13 +308,14 @@ router.post(
const adminUserId = req.adminSession?.userId ?? null
const note = String(body.note || '')
if (body.internalSku) {
return assignChannelByInternalSku({
internalSku: String(body.internalSku),
if (body.groupKey || body.internalSku) {
return assignPendingChannelGroup({
groupKey: String(body.groupKey || ''),
internalSku: String(body.internalSku || ''),
mappedInternalSku: String(body.mappedInternalSku || ''),
channel,
adminUserId,
note,
createRule: body.createRule !== false,
})
}
@@ -341,8 +343,14 @@ router.post(
scope: '[admin/fulfillment/assign]',
audit: (req, data) => ({
action: 'fulfillment.assign_channel',
targetType: 'order_item',
targetId: String(bodyOf(req).skuCode || bodyOf(req).orderItemId || ''),
targetType: bodyOf(req).groupKey ? 'pending_group' : 'order_item',
targetId: String(
bodyOf(req).groupKey ||
bodyOf(req).internalSku ||
bodyOf(req).skuCode ||
bodyOf(req).orderItemId ||
'',
),
data: { payload: bodyOf(req), result: data as Record<string, unknown> },
}),
},