import { OrderPriceCalculator, GoodsType, BackendCoupon, ActivityConfig, CouponType } from "./goods"; // 修正后的测试数据(严格匹配BaseCartItem类型) const testGoodsList = [ { // 核心修正1:product_type使用GoodsType枚举(替代原product_type字符串) product_type: GoodsType.NORMAL, // "sku"类型归类为普通商品 // 核心修正2:isTemporary/isGift从数字转为布尔值 isTemporary: false, isGift: false, // 核心修正3:discountSaleAmount从字符串转为数字 discountSaleAmount: 0, // 原有字段(保持不变) salePrice: 2, memberPrice: 2, coverImg: "https://czg-oss.oss-cn-hangzhou.aliyuncs.com/catering/store/9660.png", name: "多规格起售3", specInfo: "常温", packFee: 1, type: "sku", skuData: { barCode: "88888888888888888888", costPrice: 2, coverImg: "", createTime: "2025-03-27 16:23:49", id: "2451", isDel: 0, isGrounding: 1, isPauseSale: 0, isSale: 1, isSoldStock: 0, lowPrice: 2, memberPrice: 2, name: "常温", originPrice: 2, productId: "946", realSalesNumber: 0, salePrice: 2, shopId: "29", specInfo: "常温", suitNum: 3, updateTime: "2025-03-27 16:23:49", weight: 0, }, id: 18264, shop_id: 29, table_code: "APC36217948", sku_id: 2451, product_id: 946, product_name: "", sku_name: "", number: 4, pack_number: 0, discount_sale_note: "", is_print: 1, is_wait_call: 0, pro_group_info: "", remark: "", create_time: "2025-09-16 16:00:25", update_time: null, }, { // 核心修正1:package类型映射为GoodsType.PACKAGE product_type: GoodsType.PACKAGE, // 核心修正2:布尔值转换 isTemporary: false, isGift: false, // 核心修正3:字符串转数字 discountSaleAmount: 5, // 原有字段 salePrice: 11, memberPrice: 22, coverImg: "https://czg-oss.oss-cn-hangzhou.aliyuncs.com/catering/store/8351.png", name: "蜜雪冰城", specInfo: "", packFee: 555, type: "package", skuData: { barCode: "291739694712255", costPrice: 0, coverImg: "", createTime: "2025-02-16 16:36:46", id: "2383", isDel: 0, isGrounding: 1, isPauseSale: 0, isSale: 1, isSoldStock: 0, lowPrice: 11, memberPrice: 22, name: "", originPrice: 11, productId: "943", realSalesNumber: 0, salePrice: 11, shopId: "29", specInfo: "", suitNum: 33, updateTime: null, weight: 0, }, id: 18263, shop_id: 29, table_code: "APC36217948", sku_id: 2383, product_id: 943, product_name: "", sku_name: "", number: 35, pack_number: 1, discount_sale_note: "", is_print: 1, is_wait_call: 0, pro_group_info: "", remark: "", create_time: "2025-09-16 15:59:59", update_time: "2025-09-16 16:00:48", }, { // 核心修正1:空字符串product_type映射为GoodsType.EMPTY product_type: GoodsType.EMPTY, // 核心修正2:临时菜标记为true isTemporary: true, isGift: false, // 核心修正3:折扣金额为数字 discountSaleAmount: 1, // 补充必需字段:salePrice(临时菜原价) salePrice: 1, // 原有字段 id: 18265, shop_id: 29, table_code: "APC36217948", sku_id: -999, product_id: -18293045, product_name: "临时菜", sku_name: "", number: 1, pack_number: 0, discount_sale_note: "", is_print: 1, is_wait_call: 0, pro_group_info: "", remark: "", create_time: "2025-09-16 16:00:57", update_time: null, }, ]; // 修正testCartOrder的key与商品id匹配(确保排序正确) const testCartOrder = { "18264": 1717200000000, // 对应第一个商品id "18263": 1717200100000, // 对应第二个商品id "18265": 1717200200000, // 对应第三个商品id }; // 其他配置保持不变 const testBackendCoupons: BackendCoupon[] = [ { id: 1, title: "满减券", status: 1, couponType: 1, fullAmount: 2, discountAmount: 1, foods: '946', useType: 'dine-in,pickup', useShopType: 'all', validType: 'custom', validStartTime: '2025-09-16 16:00:00', validEndTime: '2025-09-30 16:00:00', useDays: '周一,周二,周三,周四,周五', useTimeType: 'all', shopId: 101, createTime: '2025-09-16 13:30:50', validDays: 2 }, ]; const testOrderConfig = { currentStoreId: "101", isMember: false, memberDiscountRate: 0.95, userPoints: 0, pointDeductionRule: { pointsPerYuan: 100, maxDeductionAmount: 50, }, seatFeeConfig: { isEnabled: false, pricePerPerson: 3, personCount: 2, }, merchantReduction: 10, additionalFee: 0, }; const testActivities: ActivityConfig[] = []; const testCurrentTime = new Date(); // 调用函数(此时类型完全匹配) const result = OrderPriceCalculator.calculateOrderCostSummary( testGoodsList, "dine-in", testBackendCoupons, testActivities, testOrderConfig, testCartOrder, testCurrentTime ); console.log("计算结果:", result); export default {}