@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.
- package/dist/modules/Order/index.js +17 -16
- package/dist/modules/Order/types.d.ts +1 -0
- package/dist/modules/ResourcePlanner/planner.js +54 -17
- package/dist/modules/ResourcePlanner/types.d.ts +3 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.js +154 -64
- package/dist/solution/BaseSales/index.d.ts +3 -0
- package/dist/solution/BaseSales/index.js +127 -82
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +5 -2
- package/dist/solution/UnifiedBookingSales/index.js +62 -32
- package/lib/modules/Order/index.js +8 -7
- package/lib/modules/Order/types.d.ts +1 -0
- package/lib/modules/ResourcePlanner/planner.js +48 -17
- package/lib/modules/ResourcePlanner/types.d.ts +3 -0
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.js +83 -2
- package/lib/solution/BaseSales/index.d.ts +3 -0
- package/lib/solution/BaseSales/index.js +35 -4
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +5 -2
- package/lib/solution/UnifiedBookingSales/index.js +37 -1
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -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
|
-
|
|
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 =
|
|
2477
|
+
_context31.next = 11;
|
|
2476
2478
|
break;
|
|
2477
2479
|
}
|
|
2478
2480
|
throw new Error('app.request 不可用');
|
|
2479
|
-
case
|
|
2480
|
-
_context31.next =
|
|
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
|
|
2487
|
+
case 13:
|
|
2486
2488
|
response = _context31.sent;
|
|
2487
2489
|
if (!this.isCheckoutResponseRejected(response)) {
|
|
2488
|
-
_context31.next =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
2526
|
+
_context31.next = 25;
|
|
2525
2527
|
break;
|
|
2526
2528
|
}
|
|
2527
|
-
_context31.next =
|
|
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
|
|
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
|
|
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
|
-
|
|
5962
|
-
|
|
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
|
|
6059
|
+
case 13:
|
|
5970
6060
|
pendingResult = _context60.sent;
|
|
5971
6061
|
if (!((pendingResult === null || pendingResult === void 0 ? void 0 : pendingResult.status) === true)) {
|
|
5972
|
-
_context60.next =
|
|
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 =
|
|
6067
|
+
_context60.next = 19;
|
|
5978
6068
|
break;
|
|
5979
6069
|
}
|
|
5980
|
-
_context60.next =
|
|
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
|
|
5988
|
-
_context60.next =
|
|
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
|
|
6084
|
+
case 21:
|
|
5995
6085
|
if (pendingResult.data.order_id) {
|
|
5996
|
-
_context60.next =
|
|
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
|
|
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 +
|
|
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
|
|
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 +
|
|
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
|
-
|
|
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
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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 =
|
|
6636
|
-
var nextProduct =
|
|
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
|
|
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:
|
|
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
|
-
|
|
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] =
|
|
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
|
|
6752
|
-
var _key6 = _preferredKeys[
|
|
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
|
|
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
|
|
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 (!
|
|
6829
|
-
if (!
|
|
6830
|
-
var name = nameByCode.get(
|
|
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
|
|
6969
|
-
var id = _collected[
|
|
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
|
|
7248
|
-
var candidate =
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
7989
|
-
var
|
|
7990
|
-
return ((
|
|
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
|
|
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 =
|
|
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(
|
|
8324
|
-
|
|
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
|
-
|
|
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),
|