@pisell/pisellos 2.3.86 → 2.3.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,6 +43,7 @@ import { filterBookingsFromOrders, sortBookings } from "./modules/order/utils/fi
43
43
  import { buildSmallTicketData, hasSmallTicketData } from "./utils/small-ticket";
44
44
  import { BaseSalesImpl } from "../solution/BaseSales";
45
45
  import { getOrderPaymentIdentityKeys, isIdentifiedPendingOrderPayment, isPendingOrderPayment, mergeOrderPaymentListsByIdentity } from "../modules/Order/payment-utils";
46
+ var OS_FULFILLMENT_REF_MODE_FIELD = '_os_fulfillment_ref_mode';
46
47
 
47
48
  // 重新导出类型供外部使用
48
49
 
@@ -2457,7 +2458,7 @@ var Server = /*#__PURE__*/function () {
2457
2458
  value: function () {
2458
2459
  var _runCheckoutSync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31(params) {
2459
2460
  var _this$app6;
2460
- var backendPath, title, normalizedData, checkoutData, remoteCheckoutData, response, fresh, externalSaleNumber, syncedOrder, printableSyncedOrder;
2461
+ var backendPath, title, normalizedData, numberedData, checkoutData, remoteCheckoutData, response, fresh, externalSaleNumber, syncedOrder, printableSyncedOrder;
2461
2462
  return _regeneratorRuntime().wrap(function _callee31$(_context31) {
2462
2463
  while (1) switch (_context31.prev = _context31.next) {
2463
2464
  case 0:
@@ -2469,23 +2470,24 @@ var Server = /*#__PURE__*/function () {
2469
2470
  _context31.next = 6;
2470
2471
  return this.ensureCheckoutOrderNumbers(normalizedData, title);
2471
2472
  case 6:
2472
- checkoutData = _context31.sent;
2473
+ numberedData = _context31.sent;
2474
+ checkoutData = this.applyCheckoutFulfillmentBuzzer(numberedData, title);
2473
2475
  remoteCheckoutData = this.buildRemoteCheckoutData(checkoutData, title);
2474
2476
  if ((_this$app6 = this.app) !== null && _this$app6 !== void 0 && (_this$app6 = _this$app6.request) !== null && _this$app6 !== void 0 && _this$app6.post) {
2475
- _context31.next = 10;
2477
+ _context31.next = 11;
2476
2478
  break;
2477
2479
  }
2478
2480
  throw new Error('app.request 不可用');
2479
- case 10:
2480
- _context31.next = 12;
2481
+ case 11:
2482
+ _context31.next = 13;
2481
2483
  return this.app.request.post(backendPath, remoteCheckoutData, {
2482
2484
  isShopApi: true,
2483
2485
  customToast: function customToast() {}
2484
2486
  });
2485
- case 12:
2487
+ case 13:
2486
2488
  response = _context31.sent;
2487
2489
  if (!this.isCheckoutResponseRejected(response)) {
2488
- _context31.next = 15;
2490
+ _context31.next = 16;
2489
2491
  break;
2490
2492
  }
2491
2493
  return _context31.abrupt("return", {
@@ -2496,13 +2498,13 @@ var Server = /*#__PURE__*/function () {
2496
2498
  normalizedResponse: this.normalizeCheckoutResponse(response),
2497
2499
  checkoutData: checkoutData
2498
2500
  });
2499
- case 15:
2501
+ case 16:
2500
2502
  fresh = this.extractOrderDataFromCheckoutResponse(response);
2501
2503
  externalSaleNumber = this.getCheckoutExternalSaleNumber(checkoutData, {
2502
2504
  external_sale_number: params.externalSaleNumber,
2503
2505
  data: checkoutData
2504
2506
  });
2505
- _context31.next = 19;
2507
+ _context31.next = 20;
2506
2508
  return this.persistSyncedCheckoutOrder({
2507
2509
  backendPath: backendPath,
2508
2510
  checkoutData: checkoutData,
@@ -2511,7 +2513,7 @@ var Server = /*#__PURE__*/function () {
2511
2513
  title: title,
2512
2514
  persistCheckoutDataWithResponse: params.persistCheckoutDataWithResponse === true
2513
2515
  });
2514
- case 19:
2516
+ case 20:
2515
2517
  syncedOrder = _context31.sent;
2516
2518
  printableSyncedOrder = syncedOrder ? this.buildSyncedOrderForPrint({
2517
2519
  syncedOrder: syncedOrder,
@@ -2521,17 +2523,17 @@ var Server = /*#__PURE__*/function () {
2521
2523
  checkoutData: checkoutData,
2522
2524
  syncedOrder: printableSyncedOrder
2523
2525
  }))) {
2524
- _context31.next = 24;
2526
+ _context31.next = 25;
2525
2527
  break;
2526
2528
  }
2527
- _context31.next = 24;
2529
+ _context31.next = 25;
2528
2530
  return this.dispatchPrintOtherReceiptTask({
2529
2531
  checkoutData: checkoutData,
2530
2532
  syncedOrder: printableSyncedOrder,
2531
2533
  response: response,
2532
2534
  deviceId: params.deviceId
2533
2535
  });
2534
- case 24:
2536
+ case 25:
2535
2537
  return _context31.abrupt("return", {
2536
2538
  rejected: false,
2537
2539
  response: response,
@@ -2540,7 +2542,7 @@ var Server = /*#__PURE__*/function () {
2540
2542
  syncedOrder: syncedOrder,
2541
2543
  fresh: fresh
2542
2544
  });
2543
- case 25:
2545
+ case 26:
2544
2546
  case "end":
2545
2547
  return _context31.stop();
2546
2548
  }
@@ -2566,6 +2568,7 @@ var Server = /*#__PURE__*/function () {
2566
2568
  var next = cloneDeep(this.omitCheckoutSyncMode(data));
2567
2569
  if (!next || _typeof(next) !== 'object') return next;
2568
2570
  var record = next;
2571
+ delete record[OS_FULFILLMENT_REF_MODE_FIELD];
2569
2572
  if (!Array.isArray(record.payments)) return next;
2570
2573
  var originalPayments = record.payments;
2571
2574
  var filteredPayments = originalPayments.filter(function (payment) {
@@ -5367,6 +5370,92 @@ var Server = /*#__PURE__*/function () {
5367
5370
  value: function isLocalCheckoutOrderId(orderId) {
5368
5371
  return typeof orderId === 'string' && orderId.startsWith('LOCAL_');
5369
5372
  }
5373
+ }, {
5374
+ key: "applyCheckoutFulfillmentBuzzer",
5375
+ value: function applyCheckoutFulfillmentBuzzer(data, title) {
5376
+ if (!data || _typeof(data) !== 'object') return data;
5377
+ var next = _objectSpread({}, data);
5378
+ var refMode = String(next[OS_FULFILLMENT_REF_MODE_FIELD] || '').trim();
5379
+ delete next[OS_FULFILLMENT_REF_MODE_FIELD];
5380
+ if (!refMode) return next;
5381
+ if (refMode === 'manual_input') {
5382
+ this.logInfo("".concat(title, ": fulfillment ref mode \u4FDD\u7559\u624B\u52A8 buzzer"), {
5383
+ fulfillment_ref_mode: refMode,
5384
+ has_buzzer: !this.isBlankCheckoutValue(next.buzzer)
5385
+ });
5386
+ return next;
5387
+ }
5388
+ if (refMode === 'resource_identifier') {
5389
+ next.buzzer = this.buildCheckoutResourceIdentifierBuzzer(next.bookings);
5390
+ } else if (refMode === 'sale_number') {
5391
+ next.buzzer = this.isBlankCheckoutValue(next.shop_order_number) ? '' : String(next.shop_order_number);
5392
+ } else if (refMode === 'short_number') {
5393
+ next.buzzer = this.isBlankCheckoutValue(next.shop_full_order_number) ? '' : String(next.shop_full_order_number);
5394
+ } else {
5395
+ this.logWarning("".concat(title, ": \u672A\u8BC6\u522B\u7684 fulfillment ref mode\uFF0C\u8DF3\u8FC7 buzzer \u81EA\u52A8\u586B\u5145"), {
5396
+ fulfillment_ref_mode: refMode
5397
+ });
5398
+ return next;
5399
+ }
5400
+ this.logInfo("".concat(title, ": fulfillment ref mode \u5DF2\u586B\u5145 buzzer"), {
5401
+ fulfillment_ref_mode: refMode,
5402
+ buzzer: next.buzzer
5403
+ });
5404
+ return next;
5405
+ }
5406
+ }, {
5407
+ key: "buildCheckoutResourceIdentifierBuzzer",
5408
+ value: function buildCheckoutResourceIdentifierBuzzer(bookings) {
5409
+ var _this14 = this;
5410
+ if (!Array.isArray(bookings)) return '';
5411
+ var values = [];
5412
+ var seen = new Set();
5413
+ var visitResource = function visitResource(resource) {
5414
+ var identifier = _this14.getCheckoutResourceIdentifier(resource);
5415
+ if (identifier && !seen.has(identifier)) {
5416
+ seen.add(identifier);
5417
+ values.push(identifier);
5418
+ }
5419
+ if (Array.isArray(resource === null || resource === void 0 ? void 0 : resource.children)) {
5420
+ resource.children.forEach(visitResource);
5421
+ }
5422
+ };
5423
+ bookings.forEach(function (booking) {
5424
+ if (Array.isArray(booking === null || booking === void 0 ? void 0 : booking.resources)) {
5425
+ booking.resources.forEach(visitResource);
5426
+ }
5427
+ });
5428
+ return values.join(',');
5429
+ }
5430
+ }, {
5431
+ key: "getCheckoutResourceIdentifier",
5432
+ value: function getCheckoutResourceIdentifier(resource) {
5433
+ var _resource$metadata, _resource$metadata2;
5434
+ if (!resource || _typeof(resource) !== 'object') return '';
5435
+ var candidates = [resource.main_field, resource.name, resource.title, (_resource$metadata = resource.metadata) === null || _resource$metadata === void 0 ? void 0 : _resource$metadata.resource_name, (_resource$metadata2 = resource.metadata) === null || _resource$metadata2 === void 0 ? void 0 : _resource$metadata2.name, resource.relation_id, resource.id];
5436
+ for (var _i2 = 0, _candidates = candidates; _i2 < _candidates.length; _i2++) {
5437
+ var candidate = _candidates[_i2];
5438
+ var value = this.stringifyCheckoutResourceIdentifier(candidate);
5439
+ if (value) return value;
5440
+ }
5441
+ return '';
5442
+ }
5443
+ }, {
5444
+ key: "stringifyCheckoutResourceIdentifier",
5445
+ value: function stringifyCheckoutResourceIdentifier(value) {
5446
+ if (value === undefined || value === null) return '';
5447
+ if (typeof value === 'string' || typeof value === 'number') {
5448
+ return String(value).trim();
5449
+ }
5450
+ if (_typeof(value) !== 'object' || Array.isArray(value)) return '';
5451
+ var localeCandidates = [value.original, value.auto, value.en, value['zh-CN'], value.zh_CN, value['zh-HK'], value.zh_HK];
5452
+ for (var _i3 = 0, _localeCandidates = localeCandidates; _i3 < _localeCandidates.length; _i3++) {
5453
+ var candidate = _localeCandidates[_i3];
5454
+ var normalized = this.stringifyCheckoutResourceIdentifier(candidate);
5455
+ if (normalized) return normalized;
5456
+ }
5457
+ return '';
5458
+ }
5370
5459
  }, {
5371
5460
  key: "normalizeCheckoutSubmitData",
5372
5461
  value: function () {
@@ -5930,7 +6019,7 @@ var Server = /*#__PURE__*/function () {
5930
6019
  key: "handleOrderCheckoutSubmit",
5931
6020
  value: function () {
5932
6021
  var _handleOrderCheckoutSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee60(params) {
5933
- var backendPath, data, title, normalizedData, checkoutData, pendingResult, pendingOrder;
6022
+ var backendPath, data, title, normalizedData, numberedData, checkoutData, pendingResult, pendingOrder;
5934
6023
  return _regeneratorRuntime().wrap(function _callee60$(_context60) {
5935
6024
  while (1) switch (_context60.prev = _context60.next) {
5936
6025
  case 0:
@@ -5958,42 +6047,43 @@ var Server = /*#__PURE__*/function () {
5958
6047
  _context60.next = 9;
5959
6048
  return this.ensureCheckoutOrderNumbers(normalizedData, title);
5960
6049
  case 9:
5961
- checkoutData = _context60.sent;
5962
- _context60.next = 12;
6050
+ numberedData = _context60.sent;
6051
+ checkoutData = this.applyCheckoutFulfillmentBuzzer(numberedData, title);
6052
+ _context60.next = 13;
5963
6053
  return this.handlePendingSyncCheckoutOrder({
5964
6054
  backendPath: backendPath,
5965
6055
  data: checkoutData,
5966
6056
  title: title,
5967
6057
  reason: 'checkout 已转入设备任务同步'
5968
6058
  });
5969
- case 12:
6059
+ case 13:
5970
6060
  pendingResult = _context60.sent;
5971
6061
  if (!((pendingResult === null || pendingResult === void 0 ? void 0 : pendingResult.status) === true)) {
5972
- _context60.next = 20;
6062
+ _context60.next = 21;
5973
6063
  break;
5974
6064
  }
5975
6065
  pendingOrder = pendingResult.data;
5976
6066
  if (!(pendingOrder && this.shouldBuildSmallTicketData(checkoutData) && this.isSalesOrderFullyPaid(pendingOrder) && this.shouldAutoPrintCheckoutReceipt())) {
5977
- _context60.next = 18;
6067
+ _context60.next = 19;
5978
6068
  break;
5979
6069
  }
5980
- _context60.next = 18;
6070
+ _context60.next = 19;
5981
6071
  return this.dispatchLocalReceiptPrint({
5982
6072
  checkoutData: checkoutData,
5983
6073
  order: pendingOrder,
5984
6074
  response: pendingResult,
5985
6075
  requireFullyPaid: true
5986
6076
  });
5987
- case 18:
5988
- _context60.next = 20;
6077
+ case 19:
6078
+ _context60.next = 21;
5989
6079
  return this.dispatchCheckoutSyncTask({
5990
6080
  backendPath: backendPath,
5991
6081
  data: checkoutData,
5992
6082
  title: title
5993
6083
  });
5994
- case 20:
6084
+ case 21:
5995
6085
  if (pendingResult.data.order_id) {
5996
- _context60.next = 22;
6086
+ _context60.next = 23;
5997
6087
  break;
5998
6088
  }
5999
6089
  return _context60.abrupt("return", _objectSpread(_objectSpread({}, pendingResult), {}, {
@@ -6001,9 +6091,9 @@ var Server = /*#__PURE__*/function () {
6001
6091
  order_id: pendingResult.data.external_sale_number
6002
6092
  })
6003
6093
  }));
6004
- case 22:
6005
- return _context60.abrupt("return", pendingResult);
6006
6094
  case 23:
6095
+ return _context60.abrupt("return", pendingResult);
6096
+ case 24:
6007
6097
  case "end":
6008
6098
  return _context60.stop();
6009
6099
  }
@@ -6196,7 +6286,7 @@ var Server = /*#__PURE__*/function () {
6196
6286
  key: "handlePendingSyncCheckoutOrder",
6197
6287
  value: function () {
6198
6288
  var _handlePendingSyncCheckoutOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee63(params) {
6199
- var _this14 = this;
6289
+ var _this15 = this;
6200
6290
  var backendPath, data, title, reason, pendingOrder, _pendingOrder$payment, _pendingOrder$summary, _pendingOrder$summary2, _pendingOrder$summary3, changeGivenAmount, errorMessage;
6201
6291
  return _regeneratorRuntime().wrap(function _callee63$(_context63) {
6202
6292
  while (1) switch (_context63.prev = _context63.next) {
@@ -6249,7 +6339,7 @@ var Server = /*#__PURE__*/function () {
6249
6339
  });
6250
6340
  changeGivenAmount = pendingOrder === null || pendingOrder === void 0 || (_pendingOrder$payment = pendingOrder.payments) === null || _pendingOrder$payment === void 0 ? void 0 : _pendingOrder$payment.reduce(function (sum, payment) {
6251
6341
  var _payment$metadata;
6252
- return sum + _this14.toAmountNumber(payment === null || payment === void 0 || (_payment$metadata = payment.metadata) === null || _payment$metadata === void 0 ? void 0 : _payment$metadata.change_given_amount);
6342
+ return sum + _this15.toAmountNumber(payment === null || payment === void 0 || (_payment$metadata = payment.metadata) === null || _payment$metadata === void 0 ? void 0 : _payment$metadata.change_given_amount);
6253
6343
  }, 0);
6254
6344
  return _context63.abrupt("return", {
6255
6345
  code: 200,
@@ -6389,13 +6479,13 @@ var Server = /*#__PURE__*/function () {
6389
6479
  }, {
6390
6480
  key: "sumPaidOrderPayments",
6391
6481
  value: function sumPaidOrderPayments(payments) {
6392
- var _this15 = this;
6482
+ var _this16 = this;
6393
6483
  if (!Array.isArray(payments)) return 0;
6394
6484
  return payments.reduce(function (sum, payment) {
6395
6485
  var _payment$amount;
6396
6486
  var status = String((payment === null || payment === void 0 ? void 0 : payment.status) || '').toLowerCase();
6397
6487
  if (status !== 'paid') return sum;
6398
- return sum + _this15.toAmountNumber((_payment$amount = payment === null || payment === void 0 ? void 0 : payment.amount) !== null && _payment$amount !== void 0 ? _payment$amount : payment === null || payment === void 0 ? void 0 : payment.origin_amount);
6488
+ return sum + _this16.toAmountNumber((_payment$amount = payment === null || payment === void 0 ? void 0 : payment.amount) !== null && _payment$amount !== void 0 ? _payment$amount : payment === null || payment === void 0 ? void 0 : payment.origin_amount);
6399
6489
  }, 0);
6400
6490
  }
6401
6491
  }, {
@@ -6411,7 +6501,7 @@ var Server = /*#__PURE__*/function () {
6411
6501
  value: function () {
6412
6502
  var _buildSmallTicketProductMap = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee66(order) {
6413
6503
  var _this$products3,
6414
- _this16 = this;
6504
+ _this17 = this;
6415
6505
  var products, productIdSet, productIds, entries;
6416
6506
  return _regeneratorRuntime().wrap(function _callee66$(_context66) {
6417
6507
  while (1) switch (_context66.prev = _context66.next) {
@@ -6444,20 +6534,20 @@ var Server = /*#__PURE__*/function () {
6444
6534
  _context66.next = 8;
6445
6535
  return Promise.all(productIds.map( /*#__PURE__*/function () {
6446
6536
  var _ref68 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee65(id) {
6447
- var _this16$products, _this16$products$getP, product;
6537
+ var _this17$products, _this17$products$getP, product;
6448
6538
  return _regeneratorRuntime().wrap(function _callee65$(_context65) {
6449
6539
  while (1) switch (_context65.prev = _context65.next) {
6450
6540
  case 0:
6451
6541
  _context65.prev = 0;
6452
6542
  _context65.next = 3;
6453
- return (_this16$products = _this16.products) === null || _this16$products === void 0 || (_this16$products$getP = _this16$products.getProductById) === null || _this16$products$getP === void 0 ? void 0 : _this16$products$getP.call(_this16$products, Number(id));
6543
+ return (_this17$products = _this17.products) === null || _this17$products === void 0 || (_this17$products$getP = _this17$products.getProductById) === null || _this17$products$getP === void 0 ? void 0 : _this17$products$getP.call(_this17$products, Number(id));
6454
6544
  case 3:
6455
6545
  product = _context65.sent;
6456
6546
  return _context65.abrupt("return", product ? [String(id), product] : null);
6457
6547
  case 7:
6458
6548
  _context65.prev = 7;
6459
6549
  _context65.t0 = _context65["catch"](0);
6460
- _this16.logWarning('buildSmallTicketProductMap: 查询本地商品失败', {
6550
+ _this17.logWarning('buildSmallTicketProductMap: 查询本地商品失败', {
6461
6551
  product_id: id,
6462
6552
  error: _context65.t0 instanceof Error ? _context65.t0.message : String(_context65.t0)
6463
6553
  });
@@ -6608,7 +6698,7 @@ var Server = /*#__PURE__*/function () {
6608
6698
  key: "withSalesDetailProductSnapshots",
6609
6699
  value: function () {
6610
6700
  var _withSalesDetailProductSnapshots = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee68(order) {
6611
- var _this17 = this;
6701
+ var _this18 = this;
6612
6702
  var products, snapshotMap, hasChanged, enrichedProducts, enrichedOrder;
6613
6703
  return _regeneratorRuntime().wrap(function _callee68$(_context68) {
6614
6704
  while (1) switch (_context68.prev = _context68.next) {
@@ -6632,8 +6722,8 @@ var Server = /*#__PURE__*/function () {
6632
6722
  case 8:
6633
6723
  hasChanged = false;
6634
6724
  enrichedProducts = products.map(function (product) {
6635
- var productWithBundleSnapshots = _this17.withBundleCatalogSnapshots(product, snapshotMap);
6636
- var nextProduct = _this17.withProductCatalogSnapshots(productWithBundleSnapshots, snapshotMap);
6725
+ var productWithBundleSnapshots = _this18.withBundleCatalogSnapshots(product, snapshotMap);
6726
+ var nextProduct = _this18.withProductCatalogSnapshots(productWithBundleSnapshots, snapshotMap);
6637
6727
  if (nextProduct !== product) hasChanged = true;
6638
6728
  return nextProduct;
6639
6729
  });
@@ -6661,13 +6751,13 @@ var Server = /*#__PURE__*/function () {
6661
6751
  }, {
6662
6752
  key: "withPendingSyncProductTitles",
6663
6753
  value: function withPendingSyncProductTitles(order, productMap) {
6664
- var _this18 = this;
6754
+ var _this19 = this;
6665
6755
  var products = Array.isArray(order.products) ? order.products : null;
6666
6756
  if (!(products !== null && products !== void 0 && products.length)) return order;
6667
6757
  return _objectSpread(_objectSpread({}, order), {}, {
6668
6758
  products: products.map(function (product) {
6669
6759
  return _objectSpread(_objectSpread({}, product), {}, {
6670
- product_title: _this18.buildProductTitleSnapshot(product, productMap)
6760
+ product_title: _this19.buildProductTitleSnapshot(product, productMap)
6671
6761
  });
6672
6762
  })
6673
6763
  });
@@ -6678,7 +6768,7 @@ var Server = /*#__PURE__*/function () {
6678
6768
  var _product$product_id4,
6679
6769
  _product$product,
6680
6770
  _fallbackProduct$prod,
6681
- _this19 = this;
6771
+ _this20 = this;
6682
6772
  var productId = (_product$product_id4 = product.product_id) !== null && _product$product_id4 !== void 0 ? _product$product_id4 : product.id;
6683
6773
  var fallbackProduct = productId !== undefined && productId !== null ? productMap[productId] || productMap[String(productId)] : null;
6684
6774
  var ownTitle = product.product_title || product.title || product.name || ((_product$product = product.product) === null || _product$product === void 0 ? void 0 : _product$product.title);
@@ -6686,7 +6776,7 @@ var Server = /*#__PURE__*/function () {
6686
6776
  var currentLocale = this.getProductTitleSnapshotCurrentLocale();
6687
6777
  var autoTitle = this.resolveFirstProductTitleValue(ownTitle) || this.resolveFirstProductTitleValue(fallbackTitle);
6688
6778
  return PRODUCT_TITLE_SNAPSHOT_KEYS.reduce(function (snapshot, key) {
6689
- snapshot[key] = _this19.resolveProductTitleValue(ownTitle, key, currentLocale) || _this19.resolveProductTitleValue(fallbackTitle, key, currentLocale) || (key === 'auto' || key === 'original' ? autoTitle : null);
6779
+ snapshot[key] = _this20.resolveProductTitleValue(ownTitle, key, currentLocale) || _this20.resolveProductTitleValue(fallbackTitle, key, currentLocale) || (key === 'auto' || key === 'original' ? autoTitle : null);
6690
6780
  return snapshot;
6691
6781
  }, {});
6692
6782
  }
@@ -6748,8 +6838,8 @@ var Server = /*#__PURE__*/function () {
6748
6838
  if (value === undefined || value === null || value === '') return null;
6749
6839
  if (_typeof(value) !== 'object') return String(value);
6750
6840
  var preferredKeys = ['auto', 'en', 'original', 'zh-CN', 'zh_CN', 'zh-HK', 'zh_HK', 'kitchen', 'ja', 'pt', 'default'];
6751
- for (var _i2 = 0, _preferredKeys = preferredKeys; _i2 < _preferredKeys.length; _i2++) {
6752
- var _key6 = _preferredKeys[_i2];
6841
+ for (var _i4 = 0, _preferredKeys = preferredKeys; _i4 < _preferredKeys.length; _i4++) {
6842
+ var _key6 = _preferredKeys[_i4];
6753
6843
  var rawValue = value[_key6];
6754
6844
  if (rawValue !== undefined && rawValue !== null && rawValue !== '') return String(rawValue);
6755
6845
  }
@@ -6785,14 +6875,14 @@ var Server = /*#__PURE__*/function () {
6785
6875
  key: "enrichPaymentNamesByCode",
6786
6876
  value: function () {
6787
6877
  var _enrichPaymentNamesByCode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee69(order) {
6788
- var _this20 = this;
6878
+ var _this21 = this;
6789
6879
  var payments, hasMissingName, paymentModule, payMethods, nameByCode, _iterator12, _step12, method, codeKey, name, hasResolvedName, enrichedPayments;
6790
6880
  return _regeneratorRuntime().wrap(function _callee69$(_context69) {
6791
6881
  while (1) switch (_context69.prev = _context69.next) {
6792
6882
  case 0:
6793
6883
  payments = Array.isArray(order === null || order === void 0 ? void 0 : order.payments) ? order.payments : [];
6794
6884
  hasMissingName = payments.some(function (payment) {
6795
- return _this20.isBlankPaymentName(payment === null || payment === void 0 ? void 0 : payment.name) && _this20.shouldLookupPaymentMethodNameByCode(payment === null || payment === void 0 ? void 0 : payment.code);
6885
+ return _this21.isBlankPaymentName(payment === null || payment === void 0 ? void 0 : payment.name) && _this21.shouldLookupPaymentMethodNameByCode(payment === null || payment === void 0 ? void 0 : payment.code);
6796
6886
  });
6797
6887
  if (hasMissingName) {
6798
6888
  _context69.next = 4;
@@ -6825,9 +6915,9 @@ var Server = /*#__PURE__*/function () {
6825
6915
  }
6826
6916
  hasResolvedName = false;
6827
6917
  enrichedPayments = payments.map(function (payment) {
6828
- if (!_this20.isBlankPaymentName(payment === null || payment === void 0 ? void 0 : payment.name)) return payment;
6829
- if (!_this20.shouldLookupPaymentMethodNameByCode(payment === null || payment === void 0 ? void 0 : payment.code)) return payment;
6830
- var name = nameByCode.get(_this20.getPaymentCodeKey(payment === null || payment === void 0 ? void 0 : payment.code));
6918
+ if (!_this21.isBlankPaymentName(payment === null || payment === void 0 ? void 0 : payment.name)) return payment;
6919
+ if (!_this21.shouldLookupPaymentMethodNameByCode(payment === null || payment === void 0 ? void 0 : payment.code)) return payment;
6920
+ var name = nameByCode.get(_this21.getPaymentCodeKey(payment === null || payment === void 0 ? void 0 : payment.code));
6831
6921
  if (!name) return payment;
6832
6922
  hasResolvedName = true;
6833
6923
  return _objectSpread(_objectSpread({}, payment), {}, {
@@ -6965,8 +7055,8 @@ var Server = /*#__PURE__*/function () {
6965
7055
  pushRaw(this.extractQueryParam(url, 'order_ids'));
6966
7056
  var seen = new Set();
6967
7057
  var result = [];
6968
- for (var _i3 = 0, _collected = collected; _i3 < _collected.length; _i3++) {
6969
- var id = _collected[_i3];
7058
+ for (var _i5 = 0, _collected = collected; _i5 < _collected.length; _i5++) {
7059
+ var id = _collected[_i5];
6970
7060
  if (seen.has(id)) continue;
6971
7061
  seen.add(id);
6972
7062
  result.push(id);
@@ -7244,8 +7334,8 @@ var Server = /*#__PURE__*/function () {
7244
7334
  value: function extractOrderDataFromCheckoutResponse(response) {
7245
7335
  var _response$data6, _response$data7;
7246
7336
  var candidates = [response === null || response === void 0 || (_response$data6 = response.data) === null || _response$data6 === void 0 ? void 0 : _response$data6.order, response === null || response === void 0 || (_response$data7 = response.data) === null || _response$data7 === void 0 ? void 0 : _response$data7.sales, response === null || response === void 0 ? void 0 : response.data, response === null || response === void 0 ? void 0 : response.order, response === null || response === void 0 ? void 0 : response.sales, response];
7247
- for (var _i4 = 0, _candidates = candidates; _i4 < _candidates.length; _i4++) {
7248
- var candidate = _candidates[_i4];
7337
+ for (var _i6 = 0, _candidates2 = candidates; _i6 < _candidates2.length; _i6++) {
7338
+ var candidate = _candidates2[_i6];
7249
7339
  if (!candidate || _typeof(candidate) !== 'object') continue;
7250
7340
  if (candidate.order_id !== undefined && candidate.order_id !== null) {
7251
7341
  return candidate;
@@ -7409,10 +7499,10 @@ var Server = /*#__PURE__*/function () {
7409
7499
  value: function extractBackendErrorResponse(error) {
7410
7500
  var _error$response3,
7411
7501
  _error$response4,
7412
- _this21 = this;
7502
+ _this22 = this;
7413
7503
  var candidates = [error === null || error === void 0 || (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data, error === null || error === void 0 ? void 0 : error.data, error === null || error === void 0 || (_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.body, error === null || error === void 0 ? void 0 : error.body];
7414
7504
  return candidates.find(function (candidate) {
7415
- return _this21.isExplicitBackendErrorResponse(candidate);
7505
+ return _this22.isExplicitBackendErrorResponse(candidate);
7416
7506
  }) || null;
7417
7507
  }
7418
7508
  }, {
@@ -7772,7 +7862,7 @@ var Server = /*#__PURE__*/function () {
7772
7862
  value: (function () {
7773
7863
  var _computeProductQueryResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee75(context, options) {
7774
7864
  var _menu_list_ids$length3,
7775
- _this22 = this;
7865
+ _this23 = this;
7776
7866
  var tTotal, menu_list_ids, ids, schedule_date, schedule_datetime, customer_id, extension_type, product_id, strategy_context, queryIds, startupPreloadTask, formatterContext, uniqueIds, _tPrice, productsWithPrice, _filteredProducts, extensionFilteredProducts, _published$find, pid, _tPrice2, allProductsWithPrice, published, item, _tPrice3, _filteredProducts2, _tStatus, _beforeStatusCount, _tExtensionType, _beforeExtensionTypeCount, _tSort, activeMenuList, tMenu, getActiveMenus, tFilter, productScope, scopedProductIds, tPrice, filteredProducts, tStatus, beforeStatusCount, tExtensionType, beforeExtensionTypeCount, tSort;
7777
7867
  return _regeneratorRuntime().wrap(function _callee75$(_context75) {
7778
7868
  while (1) switch (_context75.prev = _context75.next) {
@@ -7985,9 +8075,9 @@ var Server = /*#__PURE__*/function () {
7985
8075
  }
7986
8076
  tMenu = performance.now();
7987
8077
  getActiveMenus = function getActiveMenus() {
7988
- return _this22.menu.getMenuByIds(menu_list_ids).filter(function (menu) {
7989
- var _this22$schedule;
7990
- return ((_this22$schedule = _this22.schedule) === null || _this22$schedule === void 0 ? void 0 : _this22$schedule.getDateIsInSchedule(schedule_datetime, menu.schedule)) || false;
8078
+ return _this23.menu.getMenuByIds(menu_list_ids).filter(function (menu) {
8079
+ var _this23$schedule;
8080
+ return ((_this23$schedule = _this23.schedule) === null || _this23$schedule === void 0 ? void 0 : _this23$schedule.getDateIsInSchedule(schedule_datetime, menu.schedule)) || false;
7991
8081
  });
7992
8082
  };
7993
8083
  activeMenuList = getActiveMenus();
@@ -8296,7 +8386,7 @@ var Server = /*#__PURE__*/function () {
8296
8386
  }, {
8297
8387
  key: "notifySalesSearchSubscribers",
8298
8388
  value: function notifySalesSearchSubscribers(payload) {
8299
- var _this23 = this;
8389
+ var _this24 = this;
8300
8390
  if (this.salesSearchSubscribers.size === 0) return;
8301
8391
  var changedOrders = this.extractChangedOrdersFromPayload(payload);
8302
8392
  if (changedOrders.length === 0) {
@@ -8314,21 +8404,21 @@ var Server = /*#__PURE__*/function () {
8314
8404
  subscriber = _step20$value[1];
8315
8405
  try {
8316
8406
  var changedVisibleOrders = changedOrders.filter(function (order) {
8317
- var orderId = _this23.getSalesSearchOrderId(order);
8407
+ var orderId = _this24.getSalesSearchOrderId(order);
8318
8408
  return !!orderId && subscriber.visibleOrderIds.has(orderId);
8319
8409
  });
8320
8410
  if (changedVisibleOrders.length === 0) {
8321
8411
  return 1; // continue
8322
8412
  }
8323
- subscriber.callback(_this23.buildSalesSearchDeltaResponse(subscriber, changedVisibleOrders));
8324
- _this23.logInfo('notifySalesSearchSubscribers: 已推送 delta', {
8413
+ subscriber.callback(_this24.buildSalesSearchDeltaResponse(subscriber, changedVisibleOrders));
8414
+ _this24.logInfo('notifySalesSearchSubscribers: 已推送 delta', {
8325
8415
  subscriberId: subscriberId,
8326
8416
  kind: subscriber.kind,
8327
8417
  count: changedVisibleOrders.length
8328
8418
  });
8329
8419
  } catch (error) {
8330
8420
  var errorMessage = error instanceof Error ? error.message : String(error);
8331
- _this23.logError('notifySalesSearchSubscribers: 推送失败', {
8421
+ _this24.logError('notifySalesSearchSubscribers: 推送失败', {
8332
8422
  subscriberId: subscriberId,
8333
8423
  error: errorMessage
8334
8424
  });
@@ -151,6 +151,9 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
151
151
  private getAuthoritativeBundleUnitPrice;
152
152
  private mergeProductForPriceQuery;
153
153
  protected getSubmitOrderSalesChannel(): string | undefined;
154
+ private getFulfillmentRefModeConfigs;
155
+ private getFulfillmentRefMode;
156
+ private buildSubmitPayloadEnhancerWithFulfillmentRefMode;
154
157
  /**
155
158
  * 工厂入口:根据子模块名实例化对应模块。
156
159
  * 默认使用 BookingByStep 公共 `createModule`。子类若需引入额外类型(如 customer),