feat(fulfillment): 支持删除待分类和强制删除渠道规则

This commit is contained in:
yml2213
2026-11-04 13:52:11 +08:00
parent 209fa657ed
commit c31fa7db76
9 changed files with 760 additions and 48 deletions
@@ -6,6 +6,7 @@
import { Router } from 'express'
import {
deleteManualFulfillmentConfig,
deleteManualSkuClassification,
getManualFulfillmentConfig,
getManualSkuOverview,
listManualPlatformOptions,
@@ -43,6 +44,35 @@ router.get(
}),
)
router.delete(
'/cost-center/manual-skus/:skuKey',
requireAdminPermission('finance.config'),
createJsonHandler((req) => deleteManualSkuClassification(String(req.params.skuKey || '')), {
successMessage: '人工分类已移除',
errorMessage: '移除人工分类失败',
scope: '[admin/cost-center/manual-skus/:skuKey]',
audit: (req, data) => {
const result = data as {
skuKey?: string
affectedItems?: number
deletedConfigs?: number
deletedRules?: number
}
return {
action: 'manual_sku_classification_deleted',
targetType: 'manual_sku_registry',
targetId: String(req.params.skuKey || ''),
data: {
skuKey: result.skuKey || '',
affectedItems: result.affectedItems || 0,
deletedConfigs: result.deletedConfigs || 0,
deletedRules: result.deletedRules || 0,
},
}
},
}),
)
router.get(
'/cost-center/manual-platforms',
requireAdminPermission('finance.view'),
@@ -11,8 +11,10 @@ import {
assignChannelByInternalSku,
assignChannelBySku,
assignChannelToOrderItems,
deletePendingChannelGroup,
deleteChannelRule,
deleteChannelRules,
forceDeleteChannelRules,
listChannelRulesPage,
listPendingChannelGroups,
switchChannelForOrderItems,
@@ -60,6 +62,29 @@ router.get(
),
)
router.post(
'/fulfillment/pending/delete',
requireAdminPermission('finance.config'),
createJsonHandler(
(req) =>
deletePendingChannelGroup({
internalSku: String(bodyOf(req).internalSku || ''),
adminUserId: req.adminSession?.userId ?? null,
}),
{
successMessage: '待分类记录已删除',
errorMessage: '删除待分类记录失败',
scope: '[admin/fulfillment/pending/delete]',
audit: (req, data) => ({
action: 'fulfillment.delete_pending_group',
targetType: 'internal_sku',
targetId: String(bodyOf(req).internalSku || ''),
data: data as Record<string, unknown>,
}),
},
),
)
router.post(
'/fulfillment/pending/retry-work-orders',
requireAdminPermission('finance.config'),
@@ -349,6 +374,28 @@ router.post(
}),
)
router.post(
'/fulfillment/rules/force-delete',
requireAdminPermission('finance.config'),
createJsonHandler(
(req) => forceDeleteChannelRules(Array.isArray(req.body?.ids) ? req.body.ids : []),
{
successMessage: '渠道规则已强制删除',
errorMessage: '强制删除渠道规则失败',
scope: '[admin/fulfillment/rules/force-delete]',
audit: (req, data) => ({
action: 'fulfillment.force_delete_rules',
targetType: 'internal_sku_channel',
targetId: '',
data: {
ids: Array.isArray(req.body?.ids) ? req.body.ids : [],
result: data as Record<string, unknown>,
},
}),
},
),
)
router.get(
'/fulfillment/pipeline/status',
requireAdminPermission('finance.view'),