@pisell/pisellos 2.2.285 → 2.2.286
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/server/index.d.ts +4 -0
- package/dist/server/index.js +154 -64
- package/dist/server/modules/order/index.d.ts +8 -0
- package/dist/server/modules/order/index.js +251 -215
- package/dist/solution/BaseSales/index.d.ts +3 -0
- package/dist/solution/BaseSales/index.js +127 -82
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- package/dist/solution/BookingTicket/index.d.ts +14 -2
- package/lib/modules/Order/index.js +8 -7
- package/lib/modules/Order/types.d.ts +1 -0
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.js +83 -2
- package/lib/server/modules/order/index.d.ts +8 -0
- package/lib/server/modules/order/index.js +23 -0
- package/lib/solution/BaseSales/index.d.ts +3 -0
- package/lib/solution/BaseSales/index.js +35 -4
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- package/lib/solution/BookingTicket/index.d.ts +14 -2
- package/package.json +1 -1
|
@@ -5468,7 +5468,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5468
5468
|
var _syncPaymentsToOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee34(params) {
|
|
5469
5469
|
var _this32 = this,
|
|
5470
5470
|
_params$confirmPendin;
|
|
5471
|
-
var tempOrder, needsPaymentNumber, devicePrefix, mappedPayments, shouldConfirmPendingVoucherPayments, effectivePayments, completion, orderPaidPaymentTotal, paymentStatus, paymentSyncIdempotencyToken, submitParams, submitResult;
|
|
5471
|
+
var tempOrder, needsPaymentNumber, devicePrefix, mappedPayments, shouldConfirmPendingVoucherPayments, effectivePayments, completion, orderPaidPaymentTotal, paymentStatus, paymentSyncIdempotencyToken, enhancePayload, submitParams, submitResult;
|
|
5472
5472
|
return _regeneratorRuntime().wrap(function _callee34$(_context37) {
|
|
5473
5473
|
while (1) switch (_context37.prev = _context37.next) {
|
|
5474
5474
|
case 0:
|
|
@@ -5521,6 +5521,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5521
5521
|
case 25:
|
|
5522
5522
|
this.store.syncState = 'submitting';
|
|
5523
5523
|
paymentSyncIdempotencyToken = this.buildPaymentSyncIdempotencyToken(tempOrder, effectivePayments);
|
|
5524
|
+
enhancePayload = function enhancePayload(payload, ctx) {
|
|
5525
|
+
var enhancedPayload = params.enhancePayload ? params.enhancePayload(payload, ctx) : payload;
|
|
5526
|
+
return _objectSpread(_objectSpread({}, enhancedPayload), {}, {
|
|
5527
|
+
request_unique_idempotency_token: paymentSyncIdempotencyToken
|
|
5528
|
+
});
|
|
5529
|
+
};
|
|
5524
5530
|
submitParams = {
|
|
5525
5531
|
payments: effectivePayments,
|
|
5526
5532
|
paymentStatus: paymentStatus,
|
|
@@ -5528,34 +5534,29 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5528
5534
|
businessCode: params.businessCode,
|
|
5529
5535
|
channel: params.channel,
|
|
5530
5536
|
confirmPendingVoucherPayments: true,
|
|
5531
|
-
enhancePayload:
|
|
5532
|
-
var nextPayload = _objectSpread(_objectSpread({}, payload), {}, {
|
|
5533
|
-
request_unique_idempotency_token: paymentSyncIdempotencyToken
|
|
5534
|
-
});
|
|
5535
|
-
return nextPayload;
|
|
5536
|
-
}
|
|
5537
|
+
enhancePayload: enhancePayload
|
|
5537
5538
|
};
|
|
5538
5539
|
if (!(params.checkoutSyncTaskEnabled === false)) {
|
|
5539
|
-
_context37.next =
|
|
5540
|
+
_context37.next = 35;
|
|
5540
5541
|
break;
|
|
5541
5542
|
}
|
|
5542
|
-
_context37.next =
|
|
5543
|
+
_context37.next = 32;
|
|
5543
5544
|
return this.submitTempOrderAsync(submitParams);
|
|
5544
|
-
case
|
|
5545
|
+
case 32:
|
|
5545
5546
|
_context37.t1 = _context37.sent;
|
|
5546
|
-
_context37.next =
|
|
5547
|
+
_context37.next = 38;
|
|
5547
5548
|
break;
|
|
5548
|
-
case
|
|
5549
|
-
_context37.next =
|
|
5549
|
+
case 35:
|
|
5550
|
+
_context37.next = 37;
|
|
5550
5551
|
return this.submitTempOrder(submitParams);
|
|
5551
|
-
case 36:
|
|
5552
|
-
_context37.t1 = _context37.sent;
|
|
5553
5552
|
case 37:
|
|
5553
|
+
_context37.t1 = _context37.sent;
|
|
5554
|
+
case 38:
|
|
5554
5555
|
submitResult = _context37.t1;
|
|
5555
5556
|
return _context37.abrupt("return", _objectSpread(_objectSpread({}, completion), {}, {
|
|
5556
5557
|
submitResult: submitResult
|
|
5557
5558
|
}));
|
|
5558
|
-
case
|
|
5559
|
+
case 40:
|
|
5559
5560
|
case "end":
|
|
5560
5561
|
return _context37.stop();
|
|
5561
5562
|
}
|
|
@@ -608,6 +608,7 @@ export interface SyncPaymentsToOrderParams {
|
|
|
608
608
|
businessCode?: string;
|
|
609
609
|
channel?: string;
|
|
610
610
|
confirmPendingVoucherPayments?: boolean;
|
|
611
|
+
enhancePayload?: SubmitPayloadEnhancer;
|
|
611
612
|
}
|
|
612
613
|
export interface SyncPaymentsToOrderResult<T = any> {
|
|
613
614
|
isFullyPaid: boolean;
|
package/dist/server/index.d.ts
CHANGED
|
@@ -505,6 +505,10 @@ declare class Server {
|
|
|
505
505
|
private buildCheckoutTaskIdempotencyKey;
|
|
506
506
|
private isBlankCheckoutValue;
|
|
507
507
|
private isLocalCheckoutOrderId;
|
|
508
|
+
private applyCheckoutFulfillmentBuzzer;
|
|
509
|
+
private buildCheckoutResourceIdentifierBuzzer;
|
|
510
|
+
private getCheckoutResourceIdentifier;
|
|
511
|
+
private stringifyCheckoutResourceIdentifier;
|
|
508
512
|
private normalizeCheckoutSubmitData;
|
|
509
513
|
private ensureCheckoutOrderNumbers;
|
|
510
514
|
private dispatchCheckoutSyncTask;
|
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
|
|
|
@@ -2445,7 +2446,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
2445
2446
|
value: function () {
|
|
2446
2447
|
var _runCheckoutSync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31(params) {
|
|
2447
2448
|
var _this$app6;
|
|
2448
|
-
var backendPath, title, normalizedData, checkoutData, remoteCheckoutData, response, fresh, externalSaleNumber, syncedOrder, printableSyncedOrder;
|
|
2449
|
+
var backendPath, title, normalizedData, numberedData, checkoutData, remoteCheckoutData, response, fresh, externalSaleNumber, syncedOrder, printableSyncedOrder;
|
|
2449
2450
|
return _regeneratorRuntime().wrap(function _callee31$(_context31) {
|
|
2450
2451
|
while (1) switch (_context31.prev = _context31.next) {
|
|
2451
2452
|
case 0:
|
|
@@ -2457,23 +2458,24 @@ var Server = /*#__PURE__*/function () {
|
|
|
2457
2458
|
_context31.next = 6;
|
|
2458
2459
|
return this.ensureCheckoutOrderNumbers(normalizedData, title);
|
|
2459
2460
|
case 6:
|
|
2460
|
-
|
|
2461
|
+
numberedData = _context31.sent;
|
|
2462
|
+
checkoutData = this.applyCheckoutFulfillmentBuzzer(numberedData, title);
|
|
2461
2463
|
remoteCheckoutData = this.buildRemoteCheckoutData(checkoutData, title);
|
|
2462
2464
|
if ((_this$app6 = this.app) !== null && _this$app6 !== void 0 && (_this$app6 = _this$app6.request) !== null && _this$app6 !== void 0 && _this$app6.post) {
|
|
2463
|
-
_context31.next =
|
|
2465
|
+
_context31.next = 11;
|
|
2464
2466
|
break;
|
|
2465
2467
|
}
|
|
2466
2468
|
throw new Error('app.request 不可用');
|
|
2467
|
-
case
|
|
2468
|
-
_context31.next =
|
|
2469
|
+
case 11:
|
|
2470
|
+
_context31.next = 13;
|
|
2469
2471
|
return this.app.request.post(backendPath, remoteCheckoutData, {
|
|
2470
2472
|
isShopApi: true,
|
|
2471
2473
|
customToast: function customToast() {}
|
|
2472
2474
|
});
|
|
2473
|
-
case
|
|
2475
|
+
case 13:
|
|
2474
2476
|
response = _context31.sent;
|
|
2475
2477
|
if (!this.isCheckoutResponseRejected(response)) {
|
|
2476
|
-
_context31.next =
|
|
2478
|
+
_context31.next = 16;
|
|
2477
2479
|
break;
|
|
2478
2480
|
}
|
|
2479
2481
|
return _context31.abrupt("return", {
|
|
@@ -2484,13 +2486,13 @@ var Server = /*#__PURE__*/function () {
|
|
|
2484
2486
|
normalizedResponse: this.normalizeCheckoutResponse(response),
|
|
2485
2487
|
checkoutData: checkoutData
|
|
2486
2488
|
});
|
|
2487
|
-
case
|
|
2489
|
+
case 16:
|
|
2488
2490
|
fresh = this.extractOrderDataFromCheckoutResponse(response);
|
|
2489
2491
|
externalSaleNumber = this.getCheckoutExternalSaleNumber(checkoutData, {
|
|
2490
2492
|
external_sale_number: params.externalSaleNumber,
|
|
2491
2493
|
data: checkoutData
|
|
2492
2494
|
});
|
|
2493
|
-
_context31.next =
|
|
2495
|
+
_context31.next = 20;
|
|
2494
2496
|
return this.persistSyncedCheckoutOrder({
|
|
2495
2497
|
backendPath: backendPath,
|
|
2496
2498
|
checkoutData: checkoutData,
|
|
@@ -2499,7 +2501,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
2499
2501
|
title: title,
|
|
2500
2502
|
persistCheckoutDataWithResponse: params.persistCheckoutDataWithResponse === true
|
|
2501
2503
|
});
|
|
2502
|
-
case
|
|
2504
|
+
case 20:
|
|
2503
2505
|
syncedOrder = _context31.sent;
|
|
2504
2506
|
printableSyncedOrder = syncedOrder ? this.buildSyncedOrderForPrint({
|
|
2505
2507
|
syncedOrder: syncedOrder,
|
|
@@ -2509,17 +2511,17 @@ var Server = /*#__PURE__*/function () {
|
|
|
2509
2511
|
checkoutData: checkoutData,
|
|
2510
2512
|
syncedOrder: printableSyncedOrder
|
|
2511
2513
|
}))) {
|
|
2512
|
-
_context31.next =
|
|
2514
|
+
_context31.next = 25;
|
|
2513
2515
|
break;
|
|
2514
2516
|
}
|
|
2515
|
-
_context31.next =
|
|
2517
|
+
_context31.next = 25;
|
|
2516
2518
|
return this.dispatchPrintOtherReceiptTask({
|
|
2517
2519
|
checkoutData: checkoutData,
|
|
2518
2520
|
syncedOrder: printableSyncedOrder,
|
|
2519
2521
|
response: response,
|
|
2520
2522
|
deviceId: params.deviceId
|
|
2521
2523
|
});
|
|
2522
|
-
case
|
|
2524
|
+
case 25:
|
|
2523
2525
|
return _context31.abrupt("return", {
|
|
2524
2526
|
rejected: false,
|
|
2525
2527
|
response: response,
|
|
@@ -2528,7 +2530,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
2528
2530
|
syncedOrder: syncedOrder,
|
|
2529
2531
|
fresh: fresh
|
|
2530
2532
|
});
|
|
2531
|
-
case
|
|
2533
|
+
case 26:
|
|
2532
2534
|
case "end":
|
|
2533
2535
|
return _context31.stop();
|
|
2534
2536
|
}
|
|
@@ -2554,6 +2556,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
2554
2556
|
var next = cloneDeep(this.omitCheckoutSyncMode(data));
|
|
2555
2557
|
if (!next || _typeof(next) !== 'object') return next;
|
|
2556
2558
|
var record = next;
|
|
2559
|
+
delete record[OS_FULFILLMENT_REF_MODE_FIELD];
|
|
2557
2560
|
if (!Array.isArray(record.payments)) return next;
|
|
2558
2561
|
var originalPayments = record.payments;
|
|
2559
2562
|
var filteredPayments = originalPayments.filter(function (payment) {
|
|
@@ -5315,6 +5318,92 @@ var Server = /*#__PURE__*/function () {
|
|
|
5315
5318
|
value: function isLocalCheckoutOrderId(orderId) {
|
|
5316
5319
|
return typeof orderId === 'string' && orderId.startsWith('LOCAL_');
|
|
5317
5320
|
}
|
|
5321
|
+
}, {
|
|
5322
|
+
key: "applyCheckoutFulfillmentBuzzer",
|
|
5323
|
+
value: function applyCheckoutFulfillmentBuzzer(data, title) {
|
|
5324
|
+
if (!data || _typeof(data) !== 'object') return data;
|
|
5325
|
+
var next = _objectSpread({}, data);
|
|
5326
|
+
var refMode = String(next[OS_FULFILLMENT_REF_MODE_FIELD] || '').trim();
|
|
5327
|
+
delete next[OS_FULFILLMENT_REF_MODE_FIELD];
|
|
5328
|
+
if (!refMode) return next;
|
|
5329
|
+
if (refMode === 'manual_input') {
|
|
5330
|
+
this.logInfo("".concat(title, ": fulfillment ref mode \u4FDD\u7559\u624B\u52A8 buzzer"), {
|
|
5331
|
+
fulfillment_ref_mode: refMode,
|
|
5332
|
+
has_buzzer: !this.isBlankCheckoutValue(next.buzzer)
|
|
5333
|
+
});
|
|
5334
|
+
return next;
|
|
5335
|
+
}
|
|
5336
|
+
if (refMode === 'resource_identifier') {
|
|
5337
|
+
next.buzzer = this.buildCheckoutResourceIdentifierBuzzer(next.bookings);
|
|
5338
|
+
} else if (refMode === 'sale_number') {
|
|
5339
|
+
next.buzzer = this.isBlankCheckoutValue(next.shop_order_number) ? '' : String(next.shop_order_number);
|
|
5340
|
+
} else if (refMode === 'short_number') {
|
|
5341
|
+
next.buzzer = this.isBlankCheckoutValue(next.shop_full_order_number) ? '' : String(next.shop_full_order_number);
|
|
5342
|
+
} else {
|
|
5343
|
+
this.logWarning("".concat(title, ": \u672A\u8BC6\u522B\u7684 fulfillment ref mode\uFF0C\u8DF3\u8FC7 buzzer \u81EA\u52A8\u586B\u5145"), {
|
|
5344
|
+
fulfillment_ref_mode: refMode
|
|
5345
|
+
});
|
|
5346
|
+
return next;
|
|
5347
|
+
}
|
|
5348
|
+
this.logInfo("".concat(title, ": fulfillment ref mode \u5DF2\u586B\u5145 buzzer"), {
|
|
5349
|
+
fulfillment_ref_mode: refMode,
|
|
5350
|
+
buzzer: next.buzzer
|
|
5351
|
+
});
|
|
5352
|
+
return next;
|
|
5353
|
+
}
|
|
5354
|
+
}, {
|
|
5355
|
+
key: "buildCheckoutResourceIdentifierBuzzer",
|
|
5356
|
+
value: function buildCheckoutResourceIdentifierBuzzer(bookings) {
|
|
5357
|
+
var _this13 = this;
|
|
5358
|
+
if (!Array.isArray(bookings)) return '';
|
|
5359
|
+
var values = [];
|
|
5360
|
+
var seen = new Set();
|
|
5361
|
+
var visitResource = function visitResource(resource) {
|
|
5362
|
+
var identifier = _this13.getCheckoutResourceIdentifier(resource);
|
|
5363
|
+
if (identifier && !seen.has(identifier)) {
|
|
5364
|
+
seen.add(identifier);
|
|
5365
|
+
values.push(identifier);
|
|
5366
|
+
}
|
|
5367
|
+
if (Array.isArray(resource === null || resource === void 0 ? void 0 : resource.children)) {
|
|
5368
|
+
resource.children.forEach(visitResource);
|
|
5369
|
+
}
|
|
5370
|
+
};
|
|
5371
|
+
bookings.forEach(function (booking) {
|
|
5372
|
+
if (Array.isArray(booking === null || booking === void 0 ? void 0 : booking.resources)) {
|
|
5373
|
+
booking.resources.forEach(visitResource);
|
|
5374
|
+
}
|
|
5375
|
+
});
|
|
5376
|
+
return values.join(',');
|
|
5377
|
+
}
|
|
5378
|
+
}, {
|
|
5379
|
+
key: "getCheckoutResourceIdentifier",
|
|
5380
|
+
value: function getCheckoutResourceIdentifier(resource) {
|
|
5381
|
+
var _resource$metadata, _resource$metadata2;
|
|
5382
|
+
if (!resource || _typeof(resource) !== 'object') return '';
|
|
5383
|
+
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];
|
|
5384
|
+
for (var _i2 = 0, _candidates = candidates; _i2 < _candidates.length; _i2++) {
|
|
5385
|
+
var candidate = _candidates[_i2];
|
|
5386
|
+
var value = this.stringifyCheckoutResourceIdentifier(candidate);
|
|
5387
|
+
if (value) return value;
|
|
5388
|
+
}
|
|
5389
|
+
return '';
|
|
5390
|
+
}
|
|
5391
|
+
}, {
|
|
5392
|
+
key: "stringifyCheckoutResourceIdentifier",
|
|
5393
|
+
value: function stringifyCheckoutResourceIdentifier(value) {
|
|
5394
|
+
if (value === undefined || value === null) return '';
|
|
5395
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
5396
|
+
return String(value).trim();
|
|
5397
|
+
}
|
|
5398
|
+
if (_typeof(value) !== 'object' || Array.isArray(value)) return '';
|
|
5399
|
+
var localeCandidates = [value.original, value.auto, value.en, value['zh-CN'], value.zh_CN, value['zh-HK'], value.zh_HK];
|
|
5400
|
+
for (var _i3 = 0, _localeCandidates = localeCandidates; _i3 < _localeCandidates.length; _i3++) {
|
|
5401
|
+
var candidate = _localeCandidates[_i3];
|
|
5402
|
+
var normalized = this.stringifyCheckoutResourceIdentifier(candidate);
|
|
5403
|
+
if (normalized) return normalized;
|
|
5404
|
+
}
|
|
5405
|
+
return '';
|
|
5406
|
+
}
|
|
5318
5407
|
}, {
|
|
5319
5408
|
key: "normalizeCheckoutSubmitData",
|
|
5320
5409
|
value: function () {
|
|
@@ -5877,7 +5966,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
5877
5966
|
key: "handleOrderCheckoutSubmit",
|
|
5878
5967
|
value: function () {
|
|
5879
5968
|
var _handleOrderCheckoutSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee60(params) {
|
|
5880
|
-
var backendPath, data, title, normalizedData, checkoutData, pendingResult, pendingOrder;
|
|
5969
|
+
var backendPath, data, title, normalizedData, numberedData, checkoutData, pendingResult, pendingOrder;
|
|
5881
5970
|
return _regeneratorRuntime().wrap(function _callee60$(_context60) {
|
|
5882
5971
|
while (1) switch (_context60.prev = _context60.next) {
|
|
5883
5972
|
case 0:
|
|
@@ -5905,42 +5994,43 @@ var Server = /*#__PURE__*/function () {
|
|
|
5905
5994
|
_context60.next = 9;
|
|
5906
5995
|
return this.ensureCheckoutOrderNumbers(normalizedData, title);
|
|
5907
5996
|
case 9:
|
|
5908
|
-
|
|
5909
|
-
|
|
5997
|
+
numberedData = _context60.sent;
|
|
5998
|
+
checkoutData = this.applyCheckoutFulfillmentBuzzer(numberedData, title);
|
|
5999
|
+
_context60.next = 13;
|
|
5910
6000
|
return this.handlePendingSyncCheckoutOrder({
|
|
5911
6001
|
backendPath: backendPath,
|
|
5912
6002
|
data: checkoutData,
|
|
5913
6003
|
title: title,
|
|
5914
6004
|
reason: 'checkout 已转入设备任务同步'
|
|
5915
6005
|
});
|
|
5916
|
-
case
|
|
6006
|
+
case 13:
|
|
5917
6007
|
pendingResult = _context60.sent;
|
|
5918
6008
|
if (!((pendingResult === null || pendingResult === void 0 ? void 0 : pendingResult.status) === true)) {
|
|
5919
|
-
_context60.next =
|
|
6009
|
+
_context60.next = 21;
|
|
5920
6010
|
break;
|
|
5921
6011
|
}
|
|
5922
6012
|
pendingOrder = pendingResult.data;
|
|
5923
6013
|
if (!(pendingOrder && this.shouldBuildSmallTicketData(checkoutData) && this.isSalesOrderFullyPaid(pendingOrder) && this.shouldAutoPrintCheckoutReceipt())) {
|
|
5924
|
-
_context60.next =
|
|
6014
|
+
_context60.next = 19;
|
|
5925
6015
|
break;
|
|
5926
6016
|
}
|
|
5927
|
-
_context60.next =
|
|
6017
|
+
_context60.next = 19;
|
|
5928
6018
|
return this.dispatchLocalReceiptPrint({
|
|
5929
6019
|
checkoutData: checkoutData,
|
|
5930
6020
|
order: pendingOrder,
|
|
5931
6021
|
response: pendingResult,
|
|
5932
6022
|
requireFullyPaid: true
|
|
5933
6023
|
});
|
|
5934
|
-
case
|
|
5935
|
-
_context60.next =
|
|
6024
|
+
case 19:
|
|
6025
|
+
_context60.next = 21;
|
|
5936
6026
|
return this.dispatchCheckoutSyncTask({
|
|
5937
6027
|
backendPath: backendPath,
|
|
5938
6028
|
data: checkoutData,
|
|
5939
6029
|
title: title
|
|
5940
6030
|
});
|
|
5941
|
-
case
|
|
6031
|
+
case 21:
|
|
5942
6032
|
if (pendingResult.data.order_id) {
|
|
5943
|
-
_context60.next =
|
|
6033
|
+
_context60.next = 23;
|
|
5944
6034
|
break;
|
|
5945
6035
|
}
|
|
5946
6036
|
return _context60.abrupt("return", _objectSpread(_objectSpread({}, pendingResult), {}, {
|
|
@@ -5948,9 +6038,9 @@ var Server = /*#__PURE__*/function () {
|
|
|
5948
6038
|
order_id: pendingResult.data.external_sale_number
|
|
5949
6039
|
})
|
|
5950
6040
|
}));
|
|
5951
|
-
case 22:
|
|
5952
|
-
return _context60.abrupt("return", pendingResult);
|
|
5953
6041
|
case 23:
|
|
6042
|
+
return _context60.abrupt("return", pendingResult);
|
|
6043
|
+
case 24:
|
|
5954
6044
|
case "end":
|
|
5955
6045
|
return _context60.stop();
|
|
5956
6046
|
}
|
|
@@ -6143,7 +6233,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
6143
6233
|
key: "handlePendingSyncCheckoutOrder",
|
|
6144
6234
|
value: function () {
|
|
6145
6235
|
var _handlePendingSyncCheckoutOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee63(params) {
|
|
6146
|
-
var
|
|
6236
|
+
var _this14 = this;
|
|
6147
6237
|
var backendPath, data, title, reason, pendingOrder, _pendingOrder$payment, _pendingOrder$summary, _pendingOrder$summary2, _pendingOrder$summary3, changeGivenAmount, errorMessage;
|
|
6148
6238
|
return _regeneratorRuntime().wrap(function _callee63$(_context63) {
|
|
6149
6239
|
while (1) switch (_context63.prev = _context63.next) {
|
|
@@ -6196,7 +6286,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
6196
6286
|
});
|
|
6197
6287
|
changeGivenAmount = pendingOrder === null || pendingOrder === void 0 || (_pendingOrder$payment = pendingOrder.payments) === null || _pendingOrder$payment === void 0 ? void 0 : _pendingOrder$payment.reduce(function (sum, payment) {
|
|
6198
6288
|
var _payment$metadata;
|
|
6199
|
-
return sum +
|
|
6289
|
+
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);
|
|
6200
6290
|
}, 0);
|
|
6201
6291
|
return _context63.abrupt("return", {
|
|
6202
6292
|
code: 200,
|
|
@@ -6336,13 +6426,13 @@ var Server = /*#__PURE__*/function () {
|
|
|
6336
6426
|
}, {
|
|
6337
6427
|
key: "sumPaidOrderPayments",
|
|
6338
6428
|
value: function sumPaidOrderPayments(payments) {
|
|
6339
|
-
var
|
|
6429
|
+
var _this15 = this;
|
|
6340
6430
|
if (!Array.isArray(payments)) return 0;
|
|
6341
6431
|
return payments.reduce(function (sum, payment) {
|
|
6342
6432
|
var _payment$amount;
|
|
6343
6433
|
var status = String((payment === null || payment === void 0 ? void 0 : payment.status) || '').toLowerCase();
|
|
6344
6434
|
if (status !== 'paid') return sum;
|
|
6345
|
-
return sum +
|
|
6435
|
+
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);
|
|
6346
6436
|
}, 0);
|
|
6347
6437
|
}
|
|
6348
6438
|
}, {
|
|
@@ -6358,7 +6448,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
6358
6448
|
value: function () {
|
|
6359
6449
|
var _buildSmallTicketProductMap = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee66(order) {
|
|
6360
6450
|
var _this$products3,
|
|
6361
|
-
|
|
6451
|
+
_this16 = this;
|
|
6362
6452
|
var products, productIdSet, productIds, entries;
|
|
6363
6453
|
return _regeneratorRuntime().wrap(function _callee66$(_context66) {
|
|
6364
6454
|
while (1) switch (_context66.prev = _context66.next) {
|
|
@@ -6391,20 +6481,20 @@ var Server = /*#__PURE__*/function () {
|
|
|
6391
6481
|
_context66.next = 8;
|
|
6392
6482
|
return Promise.all(productIds.map( /*#__PURE__*/function () {
|
|
6393
6483
|
var _ref68 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee65(id) {
|
|
6394
|
-
var
|
|
6484
|
+
var _this16$products, _this16$products$getP, product;
|
|
6395
6485
|
return _regeneratorRuntime().wrap(function _callee65$(_context65) {
|
|
6396
6486
|
while (1) switch (_context65.prev = _context65.next) {
|
|
6397
6487
|
case 0:
|
|
6398
6488
|
_context65.prev = 0;
|
|
6399
6489
|
_context65.next = 3;
|
|
6400
|
-
return (
|
|
6490
|
+
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));
|
|
6401
6491
|
case 3:
|
|
6402
6492
|
product = _context65.sent;
|
|
6403
6493
|
return _context65.abrupt("return", product ? [String(id), product] : null);
|
|
6404
6494
|
case 7:
|
|
6405
6495
|
_context65.prev = 7;
|
|
6406
6496
|
_context65.t0 = _context65["catch"](0);
|
|
6407
|
-
|
|
6497
|
+
_this16.logWarning('buildSmallTicketProductMap: 查询本地商品失败', {
|
|
6408
6498
|
product_id: id,
|
|
6409
6499
|
error: _context65.t0 instanceof Error ? _context65.t0.message : String(_context65.t0)
|
|
6410
6500
|
});
|
|
@@ -6555,7 +6645,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
6555
6645
|
key: "withSalesDetailProductSnapshots",
|
|
6556
6646
|
value: function () {
|
|
6557
6647
|
var _withSalesDetailProductSnapshots = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee68(order) {
|
|
6558
|
-
var
|
|
6648
|
+
var _this17 = this;
|
|
6559
6649
|
var products, snapshotMap, hasChanged, enrichedProducts, enrichedOrder;
|
|
6560
6650
|
return _regeneratorRuntime().wrap(function _callee68$(_context68) {
|
|
6561
6651
|
while (1) switch (_context68.prev = _context68.next) {
|
|
@@ -6579,8 +6669,8 @@ var Server = /*#__PURE__*/function () {
|
|
|
6579
6669
|
case 8:
|
|
6580
6670
|
hasChanged = false;
|
|
6581
6671
|
enrichedProducts = products.map(function (product) {
|
|
6582
|
-
var productWithBundleSnapshots =
|
|
6583
|
-
var nextProduct =
|
|
6672
|
+
var productWithBundleSnapshots = _this17.withBundleCatalogSnapshots(product, snapshotMap);
|
|
6673
|
+
var nextProduct = _this17.withProductCatalogSnapshots(productWithBundleSnapshots, snapshotMap);
|
|
6584
6674
|
if (nextProduct !== product) hasChanged = true;
|
|
6585
6675
|
return nextProduct;
|
|
6586
6676
|
});
|
|
@@ -6608,13 +6698,13 @@ var Server = /*#__PURE__*/function () {
|
|
|
6608
6698
|
}, {
|
|
6609
6699
|
key: "withPendingSyncProductTitles",
|
|
6610
6700
|
value: function withPendingSyncProductTitles(order, productMap) {
|
|
6611
|
-
var
|
|
6701
|
+
var _this18 = this;
|
|
6612
6702
|
var products = Array.isArray(order.products) ? order.products : null;
|
|
6613
6703
|
if (!(products !== null && products !== void 0 && products.length)) return order;
|
|
6614
6704
|
return _objectSpread(_objectSpread({}, order), {}, {
|
|
6615
6705
|
products: products.map(function (product) {
|
|
6616
6706
|
return _objectSpread(_objectSpread({}, product), {}, {
|
|
6617
|
-
product_title:
|
|
6707
|
+
product_title: _this18.buildProductTitleSnapshot(product, productMap)
|
|
6618
6708
|
});
|
|
6619
6709
|
})
|
|
6620
6710
|
});
|
|
@@ -6625,7 +6715,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
6625
6715
|
var _product$product_id4,
|
|
6626
6716
|
_product$product,
|
|
6627
6717
|
_fallbackProduct$prod,
|
|
6628
|
-
|
|
6718
|
+
_this19 = this;
|
|
6629
6719
|
var productId = (_product$product_id4 = product.product_id) !== null && _product$product_id4 !== void 0 ? _product$product_id4 : product.id;
|
|
6630
6720
|
var fallbackProduct = productId !== undefined && productId !== null ? productMap[productId] || productMap[String(productId)] : null;
|
|
6631
6721
|
var ownTitle = product.product_title || product.title || product.name || ((_product$product = product.product) === null || _product$product === void 0 ? void 0 : _product$product.title);
|
|
@@ -6633,7 +6723,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
6633
6723
|
var currentLocale = this.getProductTitleSnapshotCurrentLocale();
|
|
6634
6724
|
var autoTitle = this.resolveFirstProductTitleValue(ownTitle) || this.resolveFirstProductTitleValue(fallbackTitle);
|
|
6635
6725
|
return PRODUCT_TITLE_SNAPSHOT_KEYS.reduce(function (snapshot, key) {
|
|
6636
|
-
snapshot[key] =
|
|
6726
|
+
snapshot[key] = _this19.resolveProductTitleValue(ownTitle, key, currentLocale) || _this19.resolveProductTitleValue(fallbackTitle, key, currentLocale) || (key === 'auto' || key === 'original' ? autoTitle : null);
|
|
6637
6727
|
return snapshot;
|
|
6638
6728
|
}, {});
|
|
6639
6729
|
}
|
|
@@ -6695,8 +6785,8 @@ var Server = /*#__PURE__*/function () {
|
|
|
6695
6785
|
if (value === undefined || value === null || value === '') return null;
|
|
6696
6786
|
if (_typeof(value) !== 'object') return String(value);
|
|
6697
6787
|
var preferredKeys = ['auto', 'en', 'original', 'zh-CN', 'zh_CN', 'zh-HK', 'zh_HK', 'kitchen', 'ja', 'pt', 'default'];
|
|
6698
|
-
for (var
|
|
6699
|
-
var _key6 = _preferredKeys[
|
|
6788
|
+
for (var _i4 = 0, _preferredKeys = preferredKeys; _i4 < _preferredKeys.length; _i4++) {
|
|
6789
|
+
var _key6 = _preferredKeys[_i4];
|
|
6700
6790
|
var rawValue = value[_key6];
|
|
6701
6791
|
if (rawValue !== undefined && rawValue !== null && rawValue !== '') return String(rawValue);
|
|
6702
6792
|
}
|
|
@@ -6732,14 +6822,14 @@ var Server = /*#__PURE__*/function () {
|
|
|
6732
6822
|
key: "enrichPaymentNamesByCode",
|
|
6733
6823
|
value: function () {
|
|
6734
6824
|
var _enrichPaymentNamesByCode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee69(order) {
|
|
6735
|
-
var
|
|
6825
|
+
var _this20 = this;
|
|
6736
6826
|
var payments, hasMissingName, paymentModule, payMethods, nameByCode, _iterator12, _step12, method, codeKey, name, hasResolvedName, enrichedPayments;
|
|
6737
6827
|
return _regeneratorRuntime().wrap(function _callee69$(_context69) {
|
|
6738
6828
|
while (1) switch (_context69.prev = _context69.next) {
|
|
6739
6829
|
case 0:
|
|
6740
6830
|
payments = Array.isArray(order === null || order === void 0 ? void 0 : order.payments) ? order.payments : [];
|
|
6741
6831
|
hasMissingName = payments.some(function (payment) {
|
|
6742
|
-
return
|
|
6832
|
+
return _this20.isBlankPaymentName(payment === null || payment === void 0 ? void 0 : payment.name) && _this20.shouldLookupPaymentMethodNameByCode(payment === null || payment === void 0 ? void 0 : payment.code);
|
|
6743
6833
|
});
|
|
6744
6834
|
if (hasMissingName) {
|
|
6745
6835
|
_context69.next = 4;
|
|
@@ -6772,9 +6862,9 @@ var Server = /*#__PURE__*/function () {
|
|
|
6772
6862
|
}
|
|
6773
6863
|
hasResolvedName = false;
|
|
6774
6864
|
enrichedPayments = payments.map(function (payment) {
|
|
6775
|
-
if (!
|
|
6776
|
-
if (!
|
|
6777
|
-
var name = nameByCode.get(
|
|
6865
|
+
if (!_this20.isBlankPaymentName(payment === null || payment === void 0 ? void 0 : payment.name)) return payment;
|
|
6866
|
+
if (!_this20.shouldLookupPaymentMethodNameByCode(payment === null || payment === void 0 ? void 0 : payment.code)) return payment;
|
|
6867
|
+
var name = nameByCode.get(_this20.getPaymentCodeKey(payment === null || payment === void 0 ? void 0 : payment.code));
|
|
6778
6868
|
if (!name) return payment;
|
|
6779
6869
|
hasResolvedName = true;
|
|
6780
6870
|
return _objectSpread(_objectSpread({}, payment), {}, {
|
|
@@ -6912,8 +7002,8 @@ var Server = /*#__PURE__*/function () {
|
|
|
6912
7002
|
pushRaw(this.extractQueryParam(url, 'order_ids'));
|
|
6913
7003
|
var seen = new Set();
|
|
6914
7004
|
var result = [];
|
|
6915
|
-
for (var
|
|
6916
|
-
var id = _collected[
|
|
7005
|
+
for (var _i5 = 0, _collected = collected; _i5 < _collected.length; _i5++) {
|
|
7006
|
+
var id = _collected[_i5];
|
|
6917
7007
|
if (seen.has(id)) continue;
|
|
6918
7008
|
seen.add(id);
|
|
6919
7009
|
result.push(id);
|
|
@@ -7191,8 +7281,8 @@ var Server = /*#__PURE__*/function () {
|
|
|
7191
7281
|
value: function extractOrderDataFromCheckoutResponse(response) {
|
|
7192
7282
|
var _response$data6, _response$data7;
|
|
7193
7283
|
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];
|
|
7194
|
-
for (var
|
|
7195
|
-
var candidate =
|
|
7284
|
+
for (var _i6 = 0, _candidates2 = candidates; _i6 < _candidates2.length; _i6++) {
|
|
7285
|
+
var candidate = _candidates2[_i6];
|
|
7196
7286
|
if (!candidate || _typeof(candidate) !== 'object') continue;
|
|
7197
7287
|
if (candidate.order_id !== undefined && candidate.order_id !== null) {
|
|
7198
7288
|
return candidate;
|
|
@@ -7356,10 +7446,10 @@ var Server = /*#__PURE__*/function () {
|
|
|
7356
7446
|
value: function extractBackendErrorResponse(error) {
|
|
7357
7447
|
var _error$response3,
|
|
7358
7448
|
_error$response4,
|
|
7359
|
-
|
|
7449
|
+
_this21 = this;
|
|
7360
7450
|
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];
|
|
7361
7451
|
return candidates.find(function (candidate) {
|
|
7362
|
-
return
|
|
7452
|
+
return _this21.isExplicitBackendErrorResponse(candidate);
|
|
7363
7453
|
}) || null;
|
|
7364
7454
|
}
|
|
7365
7455
|
}, {
|
|
@@ -7719,7 +7809,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
7719
7809
|
value: (function () {
|
|
7720
7810
|
var _computeProductQueryResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee75(context, options) {
|
|
7721
7811
|
var _menu_list_ids$length3,
|
|
7722
|
-
|
|
7812
|
+
_this22 = this;
|
|
7723
7813
|
var tTotal, menu_list_ids, ids, schedule_date, schedule_datetime, customer_id, extension_type, product_id, strategy_context, queryIds, 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;
|
|
7724
7814
|
return _regeneratorRuntime().wrap(function _callee75$(_context75) {
|
|
7725
7815
|
while (1) switch (_context75.prev = _context75.next) {
|
|
@@ -7918,9 +8008,9 @@ var Server = /*#__PURE__*/function () {
|
|
|
7918
8008
|
}
|
|
7919
8009
|
tMenu = performance.now();
|
|
7920
8010
|
getActiveMenus = function getActiveMenus() {
|
|
7921
|
-
return
|
|
7922
|
-
var
|
|
7923
|
-
return ((
|
|
8011
|
+
return _this22.menu.getMenuByIds(menu_list_ids).filter(function (menu) {
|
|
8012
|
+
var _this22$schedule;
|
|
8013
|
+
return ((_this22$schedule = _this22.schedule) === null || _this22$schedule === void 0 ? void 0 : _this22$schedule.getDateIsInSchedule(schedule_datetime, menu.schedule)) || false;
|
|
7924
8014
|
});
|
|
7925
8015
|
};
|
|
7926
8016
|
activeMenuList = getActiveMenus();
|
|
@@ -8229,7 +8319,7 @@ var Server = /*#__PURE__*/function () {
|
|
|
8229
8319
|
}, {
|
|
8230
8320
|
key: "notifySalesSearchSubscribers",
|
|
8231
8321
|
value: function notifySalesSearchSubscribers(payload) {
|
|
8232
|
-
var
|
|
8322
|
+
var _this23 = this;
|
|
8233
8323
|
if (this.salesSearchSubscribers.size === 0) return;
|
|
8234
8324
|
var changedOrders = this.extractChangedOrdersFromPayload(payload);
|
|
8235
8325
|
if (changedOrders.length === 0) {
|
|
@@ -8247,21 +8337,21 @@ var Server = /*#__PURE__*/function () {
|
|
|
8247
8337
|
subscriber = _step20$value[1];
|
|
8248
8338
|
try {
|
|
8249
8339
|
var changedVisibleOrders = changedOrders.filter(function (order) {
|
|
8250
|
-
var orderId =
|
|
8340
|
+
var orderId = _this23.getSalesSearchOrderId(order);
|
|
8251
8341
|
return !!orderId && subscriber.visibleOrderIds.has(orderId);
|
|
8252
8342
|
});
|
|
8253
8343
|
if (changedVisibleOrders.length === 0) {
|
|
8254
8344
|
return 1; // continue
|
|
8255
8345
|
}
|
|
8256
|
-
subscriber.callback(
|
|
8257
|
-
|
|
8346
|
+
subscriber.callback(_this23.buildSalesSearchDeltaResponse(subscriber, changedVisibleOrders));
|
|
8347
|
+
_this23.logInfo('notifySalesSearchSubscribers: 已推送 delta', {
|
|
8258
8348
|
subscriberId: subscriberId,
|
|
8259
8349
|
kind: subscriber.kind,
|
|
8260
8350
|
count: changedVisibleOrders.length
|
|
8261
8351
|
});
|
|
8262
8352
|
} catch (error) {
|
|
8263
8353
|
var errorMessage = error instanceof Error ? error.message : String(error);
|
|
8264
|
-
|
|
8354
|
+
_this23.logError('notifySalesSearchSubscribers: 推送失败', {
|
|
8265
8355
|
subscriberId: subscriberId,
|
|
8266
8356
|
error: errorMessage
|
|
8267
8357
|
});
|
|
@@ -20,6 +20,8 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
20
20
|
private storage;
|
|
21
21
|
private orderSQLiteSaveQueue; /** 按 storageKey 记录最近一次 SQLite 写入来源与时间,用于去重 */
|
|
22
22
|
private recentSqliteWriteByStorageKey;
|
|
23
|
+
/** 最近一次清理过期 SQLite 去重记录的时间,避免每次写入都遍历 Map */
|
|
24
|
+
private lastRecentSqliteWriteCleanupAtMs;
|
|
23
25
|
/** 最近一次 SSE 全量拉取完成时间 */
|
|
24
26
|
private lastServerFullFetchAtMs;
|
|
25
27
|
constructor(name?: string, version?: string);
|
|
@@ -58,6 +60,12 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
58
60
|
*/
|
|
59
61
|
private mergeAuthoritativeOrderCollection;
|
|
60
62
|
private reconcileOverwriteOrderCollections;
|
|
63
|
+
/**
|
|
64
|
+
* 惰性清理已经超过去重窗口的 SQLite 写入记录。
|
|
65
|
+
*
|
|
66
|
+
* 清理频率与去重窗口一致,既限制 Map 长期增长,也不会移除仍参与去重的记录。
|
|
67
|
+
*/
|
|
68
|
+
private cleanupExpiredRecentSqliteWrites;
|
|
61
69
|
/**
|
|
62
70
|
* 记录订单最近一次 SQLite 写入,供 pubsub 回声去重使用。
|
|
63
71
|
*
|