From a024a71df3ead269710cc370524188b65ff0c62f Mon Sep 17 00:00:00 2001 From: yml2213 Date: Thu, 5 Nov 2026 17:25:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(cost-center):=20=E4=BF=AE=E5=A4=8D=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E5=B1=A5=E7=BA=A6=E9=85=8D=E7=BD=AE=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=90=8E=E5=A4=84=E7=90=86=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cost-center/manual-fulfillment-config-service.ts | 4 ++-- .../services/finance/manual-fulfillment-integrity.test.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/services/cost-center/manual-fulfillment-config-service.ts b/apps/backend/src/services/cost-center/manual-fulfillment-config-service.ts index d59432b0..96e2712e 100644 --- a/apps/backend/src/services/cost-center/manual-fulfillment-config-service.ts +++ b/apps/backend/src/services/cost-center/manual-fulfillment-config-service.ts @@ -787,7 +787,7 @@ export async function rematchManualFulfillments(input: Record = } /** - * 为已配置的人工 SKU 生成/刷新成本版本(按 1 积分 = 1 分钱换算)。 + * 为已配置的人工 SKU 生成/刷新固定成本版本(按各平台积分换算率折算)。 * * 成本版本是「成本金额」的唯一真源;积分消耗量记在配置里, * 两者按固定换算率保持一致。 @@ -809,7 +809,7 @@ async function attachCostVersionsForManualConfigs() { SELECT $1, 'product', '', '', cfg.canonical_product_id, NULL, ROUND(cfg.credit_quantity * (fp.config_json->>'rechargeUnitPriceFen')::bigint, 0)::bigint, - '1970-01-01T00:00:00+08:00', 'manual', 'active', + 0, '1970-01-01T00:00:00+08:00', 'manual', 'active', '人工履约配置:积分按平台换算率折算', NOW(), NOW() FROM manual_fulfillment_configs cfg diff --git a/apps/backend/src/services/finance/manual-fulfillment-integrity.test.ts b/apps/backend/src/services/finance/manual-fulfillment-integrity.test.ts index 452cddfe..0d3574cb 100644 --- a/apps/backend/src/services/finance/manual-fulfillment-integrity.test.ts +++ b/apps/backend/src/services/finance/manual-fulfillment-integrity.test.ts @@ -118,6 +118,11 @@ test('人工确认前必须自动匹配履约配置,配置保存/定时任务 configSource.includes('manual_sku_key'), '人工 SKU 匹配必须统一走 order_items.manual_sku_key 生成列', ) + assert.ok( + configSource.includes('amount_fen, rate_bps') && + configSource.includes("0, '1970-01-01T00:00:00+08:00', 'manual', 'active'"), + '人工履约固定成本版本必须同时写入 amount_fen 和 rate_bps,避免保存成功但后处理报错', + ) assert.ok( migrationSource.includes("spec_json->>'skuNick'") && migrationSource.includes("spec_json->>'outSkuSn'") &&