@pisell/pisellos 2.2.263 → 2.2.264
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/model/strategy/adapter/index.d.ts +0 -4
- package/dist/model/strategy/adapter/index.js +1 -5
- package/dist/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/dist/model/strategy/adapter/promotion/adapter.js +23 -0
- package/dist/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/dist/model/strategy/adapter/promotion/evaluator.js +279 -6
- package/dist/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/dist/model/strategy/adapter/promotion/examples.js +99 -0
- package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/dist/model/strategy/adapter/promotion/index.js +0 -9
- package/dist/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/dist/model/strategy/adapter/promotion/type.js +45 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +10 -16
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -2
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +1 -32
- package/dist/modules/Discount/index.d.ts +2 -5
- package/dist/modules/Discount/index.js +7 -30
- package/dist/modules/Discount/types.d.ts +0 -4
- package/dist/modules/Order/index.d.ts +2 -14
- package/dist/modules/Order/index.js +736 -1035
- package/dist/modules/Order/types.d.ts +0 -16
- package/dist/modules/Order/utils.d.ts +3 -4
- package/dist/modules/Order/utils.js +61 -54
- package/dist/modules/Product/types.d.ts +0 -22
- package/dist/modules/ProductList/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +2 -4
- package/dist/modules/ProductList/types.d.ts +0 -2
- package/dist/modules/Rules/index.d.ts +9 -2
- package/dist/modules/Rules/index.js +43 -69
- package/dist/modules/Rules/types.d.ts +1 -10
- package/dist/server/index.d.ts +0 -55
- package/dist/server/index.js +753 -1173
- package/dist/server/modules/order/index.d.ts +4 -10
- package/dist/server/modules/order/index.js +399 -404
- package/dist/server/modules/order/types.d.ts +0 -4
- package/dist/server/modules/products/index.d.ts +8 -31
- package/dist/server/modules/products/index.js +390 -549
- package/dist/server/modules/products/types.d.ts +0 -18
- package/dist/solution/BaseSales/index.d.ts +1 -21
- package/dist/solution/BaseSales/index.js +789 -1136
- package/dist/solution/BaseSales/types.d.ts +1 -6
- package/dist/solution/BaseSales/types.js +1 -1
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/dist/solution/BaseSales/utils/cartPromotion.js +97 -50
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +3 -3
- package/dist/solution/BaseSales/utils/parseSalesResponse.js +8 -6
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +1 -14
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +25 -59
- package/dist/solution/BookingTicket/types.d.ts +0 -2
- package/dist/solution/ScanOrder/index.js +31 -20
- package/dist/solution/ShopDiscount/index.js +14 -15
- package/dist/solution/VenueBooking/index.js +30 -19
- package/lib/model/strategy/adapter/index.d.ts +0 -4
- package/lib/model/strategy/adapter/index.js +2 -13
- package/lib/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.js +20 -0
- package/lib/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +235 -0
- package/lib/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/lib/model/strategy/adapter/promotion/examples.js +91 -0
- package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/lib/model/strategy/adapter/promotion/index.js +51 -0
- package/lib/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/lib/model/strategy/adapter/promotion/type.js +2 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -5
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -1
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +2 -23
- package/lib/modules/Discount/index.d.ts +2 -5
- package/lib/modules/Discount/index.js +3 -23
- package/lib/modules/Discount/types.d.ts +0 -4
- package/lib/modules/Order/index.d.ts +2 -14
- package/lib/modules/Order/index.js +60 -326
- package/lib/modules/Order/types.d.ts +0 -16
- package/lib/modules/Order/utils.d.ts +3 -4
- package/lib/modules/Order/utils.js +23 -22
- package/lib/modules/Product/types.d.ts +0 -22
- package/lib/modules/ProductList/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +2 -4
- package/lib/modules/ProductList/types.d.ts +0 -2
- package/lib/modules/Rules/index.d.ts +9 -2
- package/lib/modules/Rules/index.js +29 -61
- package/lib/modules/Rules/types.d.ts +1 -10
- package/lib/server/index.d.ts +0 -55
- package/lib/server/index.js +34 -332
- package/lib/server/modules/order/index.d.ts +4 -10
- package/lib/server/modules/order/index.js +139 -198
- package/lib/server/modules/order/types.d.ts +0 -4
- package/lib/server/modules/products/index.d.ts +8 -31
- package/lib/server/modules/products/index.js +35 -134
- package/lib/server/modules/products/types.d.ts +0 -18
- package/lib/solution/BaseSales/index.d.ts +1 -21
- package/lib/solution/BaseSales/index.js +72 -313
- package/lib/solution/BaseSales/types.d.ts +1 -6
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.js +64 -25
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +3 -3
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +5 -4
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +0 -8
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +8 -33
- package/lib/solution/BookingTicket/types.d.ts +0 -2
- package/lib/solution/ScanOrder/index.js +8 -0
- package/lib/solution/ShopDiscount/index.js +1 -2
- package/lib/solution/VenueBooking/index.js +8 -0
- package/package.json +1 -1
- package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
- package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
- package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
- package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
- package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
- package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
- package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
- package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
- package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
- package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
- package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +0 -53
- package/dist/modules/Order/utils/orderCollectionIdentity.js +0 -405
- package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
- package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
- package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
- package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
- package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
- package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
- package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
- package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
- package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
- package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +0 -53
- package/lib/modules/Order/utils/orderCollectionIdentity.js +0 -415
|
@@ -33,7 +33,6 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
33
33
|
import { cloneDeep } from 'lodash-es';
|
|
34
34
|
import dayjs from 'dayjs';
|
|
35
35
|
import { BaseModule } from "../../../modules/BaseModule";
|
|
36
|
-
import { applyOrderCollectionUidRemaps, getOrderCollectionPersistentId, getOrderCollectionReferenceUid, getOrderCollectionUid, isSameOrderCollectionItem, mergeOrderCollectionItems, normalizeOrderCollections } from "../../../modules/Order/utils/orderCollectionIdentity";
|
|
37
36
|
import { OrderHooks } from "./types";
|
|
38
37
|
|
|
39
38
|
/**
|
|
@@ -56,12 +55,6 @@ var ORDER_BUSINESS_WRITE_SOURCES = new Set(['upsertOrdersFromRemote', 'upsertPen
|
|
|
56
55
|
* 仅用于排查增量身份索引是否遗漏了重复订单,不应在生产常开。
|
|
57
56
|
*/
|
|
58
57
|
var ORDER_MERGE_SELF_CHECK = false;
|
|
59
|
-
var ORDER_AUTHORITATIVE_COLLECTION_FIELDS = ['products', 'bookings', 'payments'];
|
|
60
|
-
var ORDER_COLLECTION_KIND_BY_FIELD = {
|
|
61
|
-
products: 'product',
|
|
62
|
-
bookings: 'booking',
|
|
63
|
-
payments: 'payment'
|
|
64
|
-
};
|
|
65
58
|
|
|
66
59
|
/**
|
|
67
60
|
* Order 模块 - 基础框架
|
|
@@ -240,104 +233,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
240
233
|
}
|
|
241
234
|
}
|
|
242
235
|
|
|
243
|
-
/**
|
|
244
|
-
* 在订单进入内存或 SQLite 前统一压缩子项强身份重复并补齐协议 UID。
|
|
245
|
-
* 仅记录计数与订单标识,不输出商品、预约、支付或客户明细。
|
|
246
|
-
*/
|
|
247
|
-
}, {
|
|
248
|
-
key: "normalizeOrderCollectionsForIngress",
|
|
249
|
-
value: function normalizeOrderCollectionsForIngress(order, source) {
|
|
250
|
-
var result = normalizeOrderCollections(order);
|
|
251
|
-
var kinds = ['product', 'booking', 'payment'];
|
|
252
|
-
var hasChanges = kinds.some(function (kind) {
|
|
253
|
-
var stats = result.stats[kind];
|
|
254
|
-
return stats.backfilledUidCount > 0 || stats.collapsedDuplicateCount > 0 || stats.uidConflictCount > 0 || stats.anonymousRowCount > 0;
|
|
255
|
-
});
|
|
256
|
-
if (hasChanges) {
|
|
257
|
-
var _order$order_id, _external_sale_number;
|
|
258
|
-
var summarize = function summarize(stats) {
|
|
259
|
-
return {
|
|
260
|
-
backfilled_uid_count: stats.backfilledUidCount,
|
|
261
|
-
collapsed_duplicate_count: stats.collapsedDuplicateCount,
|
|
262
|
-
uid_conflict_count: stats.uidConflictCount,
|
|
263
|
-
anonymous_row_count: stats.anonymousRowCount
|
|
264
|
-
};
|
|
265
|
-
};
|
|
266
|
-
var context = {
|
|
267
|
-
source: source,
|
|
268
|
-
order_id: (_order$order_id = order === null || order === void 0 ? void 0 : order.order_id) !== null && _order$order_id !== void 0 ? _order$order_id : null,
|
|
269
|
-
external_sale_number: (_external_sale_number = order === null || order === void 0 ? void 0 : order.external_sale_number) !== null && _external_sale_number !== void 0 ? _external_sale_number : null,
|
|
270
|
-
products: summarize(result.stats.product),
|
|
271
|
-
bookings: summarize(result.stats.booking),
|
|
272
|
-
payments: summarize(result.stats.payment)
|
|
273
|
-
};
|
|
274
|
-
var hasUnsafeIdentity = kinds.some(function (kind) {
|
|
275
|
-
var stats = result.stats[kind];
|
|
276
|
-
return stats.uidConflictCount > 0 || stats.anonymousRowCount > 0;
|
|
277
|
-
});
|
|
278
|
-
if (hasUnsafeIdentity) {
|
|
279
|
-
this.logWarning('订单子项身份存在冲突或匿名行', context);
|
|
280
|
-
} else {
|
|
281
|
-
this.logInfo('订单子项身份已规范化', context);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
return result.order;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* incoming 决定权威成员集合;同一持久化行仍从 existing 补齐 incoming 省略的本地展示字段。
|
|
289
|
-
*/
|
|
290
|
-
}, {
|
|
291
|
-
key: "mergeAuthoritativeOrderCollection",
|
|
292
|
-
value: function mergeAuthoritativeOrderCollection(field, existing, incoming) {
|
|
293
|
-
var uidRemaps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
294
|
-
var kind = ORDER_COLLECTION_KIND_BY_FIELD[field];
|
|
295
|
-
var existingItems = Array.isArray(existing) ? existing : [];
|
|
296
|
-
return incoming.map(function (incomingItem) {
|
|
297
|
-
var existingItem = existingItems.find(function (item) {
|
|
298
|
-
return isSameOrderCollectionItem(kind, item, incomingItem);
|
|
299
|
-
});
|
|
300
|
-
if (!existingItem) return cloneDeep(incomingItem);
|
|
301
|
-
var mergedItem = mergeOrderCollectionItems(kind, existingItem, incomingItem);
|
|
302
|
-
var mergedUid = getOrderCollectionUid(kind, mergedItem);
|
|
303
|
-
if (mergedUid) {
|
|
304
|
-
var _iterator = _createForOfIteratorHelper(new Set([getOrderCollectionReferenceUid(kind, existingItem), getOrderCollectionReferenceUid(kind, incomingItem)])),
|
|
305
|
-
_step;
|
|
306
|
-
try {
|
|
307
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
308
|
-
var from = _step.value;
|
|
309
|
-
if (!from || from === mergedUid) continue;
|
|
310
|
-
uidRemaps.push({
|
|
311
|
-
kind: kind,
|
|
312
|
-
from: from,
|
|
313
|
-
to: mergedUid,
|
|
314
|
-
persistentId: getOrderCollectionPersistentId(kind, incomingItem) || getOrderCollectionPersistentId(kind, existingItem)
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
} catch (err) {
|
|
318
|
-
_iterator.e(err);
|
|
319
|
-
} finally {
|
|
320
|
-
_iterator.f();
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
return mergedItem;
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
}, {
|
|
327
|
-
key: "reconcileOverwriteOrderCollections",
|
|
328
|
-
value: function reconcileOverwriteOrderCollections(existing, incoming) {
|
|
329
|
-
var reconciled = cloneDeep(incoming);
|
|
330
|
-
var existingRecord = existing;
|
|
331
|
-
var incomingRecord = incoming;
|
|
332
|
-
var uidRemaps = [];
|
|
333
|
-
for (var _i = 0, _ORDER_AUTHORITATIVE_ = ORDER_AUTHORITATIVE_COLLECTION_FIELDS; _i < _ORDER_AUTHORITATIVE_.length; _i++) {
|
|
334
|
-
var field = _ORDER_AUTHORITATIVE_[_i];
|
|
335
|
-
if (!Array.isArray(incomingRecord[field])) continue;
|
|
336
|
-
reconciled[field] = this.mergeAuthoritativeOrderCollection(field, existingRecord[field], incomingRecord[field], uidRemaps);
|
|
337
|
-
}
|
|
338
|
-
return this.normalizeOrderCollectionsForIngress(applyOrderCollectionUidRemaps(reconciled, uidRemaps), 'overwriteExistingOrder.reconciled');
|
|
339
|
-
}
|
|
340
|
-
|
|
341
236
|
/**
|
|
342
237
|
* 记录订单最近一次 SQLite 写入,供 pubsub 回声去重使用。
|
|
343
238
|
*
|
|
@@ -348,11 +243,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
348
243
|
key: "recordRecentSqliteWrite",
|
|
349
244
|
value: function recordRecentSqliteWrite(source, orders) {
|
|
350
245
|
var now = Date.now();
|
|
351
|
-
var
|
|
352
|
-
|
|
246
|
+
var _iterator = _createForOfIteratorHelper(orders),
|
|
247
|
+
_step;
|
|
353
248
|
try {
|
|
354
|
-
for (
|
|
355
|
-
var order =
|
|
249
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
250
|
+
var order = _step.value;
|
|
356
251
|
var storageKey = this.getOrderStorageKey(order);
|
|
357
252
|
if (!storageKey) continue;
|
|
358
253
|
this.recentSqliteWriteByStorageKey.set(storageKey, {
|
|
@@ -361,9 +256,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
361
256
|
});
|
|
362
257
|
}
|
|
363
258
|
} catch (err) {
|
|
364
|
-
|
|
259
|
+
_iterator.e(err);
|
|
365
260
|
} finally {
|
|
366
|
-
|
|
261
|
+
_iterator.f();
|
|
367
262
|
}
|
|
368
263
|
}
|
|
369
264
|
|
|
@@ -386,11 +281,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
386
281
|
var now = Date.now();
|
|
387
282
|
var toWrite = [];
|
|
388
283
|
var skipped = [];
|
|
389
|
-
var
|
|
390
|
-
|
|
284
|
+
var _iterator2 = _createForOfIteratorHelper(orders),
|
|
285
|
+
_step2;
|
|
391
286
|
try {
|
|
392
|
-
for (
|
|
393
|
-
var order =
|
|
287
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
288
|
+
var order = _step2.value;
|
|
394
289
|
var storageKey = this.getOrderStorageKey(order);
|
|
395
290
|
if (!storageKey) {
|
|
396
291
|
toWrite.push(order);
|
|
@@ -406,9 +301,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
406
301
|
}
|
|
407
302
|
var recent = this.recentSqliteWriteByStorageKey.get(storageKey);
|
|
408
303
|
if (recent && ORDER_BUSINESS_WRITE_SOURCES.has(recent.source) && now - recent.ts < ORDER_SQLITE_DEDUPE_MS) {
|
|
409
|
-
var _order$
|
|
304
|
+
var _order$order_id;
|
|
410
305
|
skipped.push({
|
|
411
|
-
orderId: (_order$
|
|
306
|
+
orderId: (_order$order_id = order.order_id) !== null && _order$order_id !== void 0 ? _order$order_id : null,
|
|
412
307
|
storageKey: storageKey,
|
|
413
308
|
reason: 'skip_pubsub_echo_after_business_write',
|
|
414
309
|
lastSource: recent.source,
|
|
@@ -419,9 +314,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
419
314
|
toWrite.push(order);
|
|
420
315
|
}
|
|
421
316
|
} catch (err) {
|
|
422
|
-
|
|
317
|
+
_iterator2.e(err);
|
|
423
318
|
} finally {
|
|
424
|
-
|
|
319
|
+
_iterator2.f();
|
|
425
320
|
}
|
|
426
321
|
return {
|
|
427
322
|
toWrite: toWrite,
|
|
@@ -441,11 +336,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
441
336
|
var now = Date.now();
|
|
442
337
|
var toFetch = [];
|
|
443
338
|
var skipped = [];
|
|
444
|
-
var
|
|
445
|
-
|
|
339
|
+
var _iterator3 = _createForOfIteratorHelper(ids),
|
|
340
|
+
_step3;
|
|
446
341
|
try {
|
|
447
|
-
for (
|
|
448
|
-
var id =
|
|
342
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
343
|
+
var id = _step3.value;
|
|
449
344
|
var existing = this.getOrderByOrderId(id);
|
|
450
345
|
if (!existing) {
|
|
451
346
|
toFetch.push(id);
|
|
@@ -464,9 +359,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
464
359
|
toFetch.push(id);
|
|
465
360
|
}
|
|
466
361
|
} catch (err) {
|
|
467
|
-
|
|
362
|
+
_iterator3.e(err);
|
|
468
363
|
} finally {
|
|
469
|
-
|
|
364
|
+
_iterator3.f();
|
|
470
365
|
}
|
|
471
366
|
return {
|
|
472
367
|
toFetch: toFetch,
|
|
@@ -886,16 +781,14 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
886
781
|
}, {
|
|
887
782
|
key: "normalizeOrderForMemoryList",
|
|
888
783
|
value: function normalizeOrderForMemoryList(order) {
|
|
889
|
-
var
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
if ((normalizedOrder === null || normalizedOrder === void 0 ? void 0 : normalizedOrder.order_id) !== undefined && (normalizedOrder === null || normalizedOrder === void 0 ? void 0 : normalizedOrder.order_id) !== null && (normalizedOrder === null || normalizedOrder === void 0 ? void 0 : normalizedOrder.order_id) !== '') {
|
|
893
|
-
return normalizedOrder;
|
|
784
|
+
var externalSaleNumber = order === null || order === void 0 ? void 0 : order.external_sale_number;
|
|
785
|
+
if ((order === null || order === void 0 ? void 0 : order.order_id) !== undefined && (order === null || order === void 0 ? void 0 : order.order_id) !== null && (order === null || order === void 0 ? void 0 : order.order_id) !== '') {
|
|
786
|
+
return order;
|
|
894
787
|
}
|
|
895
788
|
if (externalSaleNumber === undefined || externalSaleNumber === null || externalSaleNumber === '') {
|
|
896
|
-
return
|
|
789
|
+
return order;
|
|
897
790
|
}
|
|
898
|
-
return _objectSpread(_objectSpread({},
|
|
791
|
+
return _objectSpread(_objectSpread({}, order), {}, {
|
|
899
792
|
order_id: externalSaleNumber
|
|
900
793
|
});
|
|
901
794
|
}
|
|
@@ -909,7 +802,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
909
802
|
value: (function () {
|
|
910
803
|
var _overwriteExistingOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(fresh) {
|
|
911
804
|
var _this8 = this;
|
|
912
|
-
var orderId, key
|
|
805
|
+
var orderId, key;
|
|
913
806
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
914
807
|
while (1) switch (_context8.prev = _context8.next) {
|
|
915
808
|
case 0:
|
|
@@ -939,31 +832,26 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
939
832
|
orderId: orderId,
|
|
940
833
|
storeOrderCountBefore: this.store.list.length
|
|
941
834
|
});
|
|
942
|
-
normalizedFresh = this.normalizeOrderForMemoryList(fresh, 'overwriteExistingOrder.incoming');
|
|
943
|
-
existingOrder = this.store.map.get(key);
|
|
944
|
-
reconciledFresh = this.reconcileOverwriteOrderCollections(existingOrder, normalizedFresh);
|
|
945
835
|
this.store.list = this.store.list.map(function (order) {
|
|
946
836
|
var id = order === null || order === void 0 ? void 0 : order.order_id;
|
|
947
|
-
if (id === undefined || id === null)
|
|
948
|
-
|
|
949
|
-
}
|
|
950
|
-
return _this8.getIdKey(id) === key ? reconciledFresh : _this8.normalizeOrderForMemoryList(order, 'overwriteExistingOrder.existingMemory');
|
|
837
|
+
if (id === undefined || id === null) return order;
|
|
838
|
+
return _this8.getIdKey(id) === key ? fresh : order;
|
|
951
839
|
});
|
|
952
840
|
this.syncOrdersMap();
|
|
953
|
-
_context8.next =
|
|
954
|
-
return this.updateOrderInSQLite(
|
|
955
|
-
case
|
|
841
|
+
_context8.next = 13;
|
|
842
|
+
return this.updateOrderInSQLite(fresh, 'overwriteExistingOrder');
|
|
843
|
+
case 13:
|
|
956
844
|
this.logInfo('overwriteExistingOrder-结束', {
|
|
957
845
|
orderId: orderId,
|
|
958
846
|
storeOrderCountAfter: this.store.list.length
|
|
959
847
|
});
|
|
960
|
-
_context8.next =
|
|
961
|
-
return this.emitOrdersChanged([
|
|
962
|
-
case
|
|
848
|
+
_context8.next = 16;
|
|
849
|
+
return this.emitOrdersChanged([fresh], 'overwriteExistingOrder');
|
|
850
|
+
case 16:
|
|
963
851
|
return _context8.abrupt("return", {
|
|
964
852
|
overwritten: true
|
|
965
853
|
});
|
|
966
|
-
case
|
|
854
|
+
case 17:
|
|
967
855
|
case "end":
|
|
968
856
|
return _context8.stop();
|
|
969
857
|
}
|
|
@@ -1091,8 +979,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1091
979
|
key: "upsertPendingSyncOrders",
|
|
1092
980
|
value: (function () {
|
|
1093
981
|
var _upsertPendingSyncOrders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(pendingOrders) {
|
|
1094
|
-
var
|
|
1095
|
-
var pendingMap, memoryPendingMap, _iterator5, _step5, order, normalizedOrder, storageKey, mergeActions, updatedList, identityKeyToIndex, index, _iterator6, _step6, key, _iterator7, _step7, _step7$value, _storageKey, pendingOrder, matchIndex, existingOrder, mergedOrder, pendingSnapshot, insertIndex, patchedOrders;
|
|
982
|
+
var pendingMap, memoryPendingMap, _iterator4, _step4, order, storageKey, patchedOrders, mergeActions, updatedList, identityKeyToIndex, index, _iterator5, _step5, key, _iterator6, _step6, _step6$value, _storageKey, pendingOrder, matchIndex, mergedOrder, insertIndex;
|
|
1096
983
|
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
1097
984
|
while (1) switch (_context11.prev = _context11.next) {
|
|
1098
985
|
case 0:
|
|
@@ -1105,134 +992,129 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1105
992
|
case 3:
|
|
1106
993
|
pendingMap = new Map();
|
|
1107
994
|
memoryPendingMap = new Map();
|
|
1108
|
-
|
|
995
|
+
_iterator4 = _createForOfIteratorHelper(pendingOrders);
|
|
1109
996
|
_context11.prev = 6;
|
|
1110
|
-
|
|
997
|
+
_iterator4.s();
|
|
1111
998
|
case 8:
|
|
1112
|
-
if ((
|
|
1113
|
-
_context11.next =
|
|
999
|
+
if ((_step4 = _iterator4.n()).done) {
|
|
1000
|
+
_context11.next = 17;
|
|
1114
1001
|
break;
|
|
1115
1002
|
}
|
|
1116
|
-
order =
|
|
1117
|
-
|
|
1118
|
-
storageKey = this.getOrderStorageKey(normalizedOrder);
|
|
1003
|
+
order = _step4.value;
|
|
1004
|
+
storageKey = this.getOrderStorageKey(order);
|
|
1119
1005
|
if (storageKey) {
|
|
1120
|
-
_context11.next =
|
|
1006
|
+
_context11.next = 13;
|
|
1121
1007
|
break;
|
|
1122
1008
|
}
|
|
1123
|
-
return _context11.abrupt("continue",
|
|
1124
|
-
case
|
|
1125
|
-
pendingMap.set(storageKey,
|
|
1126
|
-
memoryPendingMap.set(storageKey, this.normalizeOrderForMemoryList(
|
|
1127
|
-
case
|
|
1009
|
+
return _context11.abrupt("continue", 15);
|
|
1010
|
+
case 13:
|
|
1011
|
+
pendingMap.set(storageKey, order);
|
|
1012
|
+
memoryPendingMap.set(storageKey, this.normalizeOrderForMemoryList(order));
|
|
1013
|
+
case 15:
|
|
1128
1014
|
_context11.next = 8;
|
|
1129
1015
|
break;
|
|
1130
|
-
case
|
|
1131
|
-
_context11.next =
|
|
1016
|
+
case 17:
|
|
1017
|
+
_context11.next = 22;
|
|
1132
1018
|
break;
|
|
1133
|
-
case
|
|
1134
|
-
_context11.prev =
|
|
1019
|
+
case 19:
|
|
1020
|
+
_context11.prev = 19;
|
|
1135
1021
|
_context11.t0 = _context11["catch"](6);
|
|
1136
|
-
|
|
1137
|
-
case
|
|
1138
|
-
_context11.prev =
|
|
1139
|
-
|
|
1140
|
-
return _context11.finish(
|
|
1141
|
-
case
|
|
1022
|
+
_iterator4.e(_context11.t0);
|
|
1023
|
+
case 22:
|
|
1024
|
+
_context11.prev = 22;
|
|
1025
|
+
_iterator4.f();
|
|
1026
|
+
return _context11.finish(22);
|
|
1027
|
+
case 25:
|
|
1142
1028
|
if (!(pendingMap.size === 0)) {
|
|
1143
|
-
_context11.next =
|
|
1029
|
+
_context11.next = 28;
|
|
1144
1030
|
break;
|
|
1145
1031
|
}
|
|
1146
1032
|
this.logError('upsertPendingSyncOrders-订单缺少可落库标识', {
|
|
1147
1033
|
count: pendingOrders.length
|
|
1148
1034
|
});
|
|
1149
1035
|
return _context11.abrupt("return");
|
|
1150
|
-
case
|
|
1036
|
+
case 28:
|
|
1151
1037
|
this.logInfo('upsertPendingSyncOrders-开始', {
|
|
1152
1038
|
count: pendingMap.size
|
|
1153
1039
|
});
|
|
1040
|
+
patchedOrders = _toConsumableArray(pendingMap.values());
|
|
1154
1041
|
mergeActions = {};
|
|
1155
|
-
updatedList = this.store.list
|
|
1156
|
-
return _this10.normalizeOrderForMemoryList(order, 'upsertPendingSyncOrders.existingMemory');
|
|
1157
|
-
}); // 与 mergeOrdersToStore 一致:基于身份键(field:value)建立索引,把「查找已存在订单」
|
|
1042
|
+
updatedList = _toConsumableArray(this.store.list); // 与 mergeOrdersToStore 一致:基于身份键(field:value)建立索引,把「查找已存在订单」
|
|
1158
1043
|
// 从 O(n) 线性扫描降为 O(1),整体复杂度由 O(n^2) 降为 O(n + m)。
|
|
1159
1044
|
identityKeyToIndex = new Map();
|
|
1160
1045
|
for (index = 0; index < updatedList.length; index += 1) {
|
|
1161
|
-
|
|
1046
|
+
_iterator5 = _createForOfIteratorHelper(this.getOrderIdentityMatchKeys(updatedList[index]));
|
|
1162
1047
|
try {
|
|
1163
|
-
for (
|
|
1164
|
-
key =
|
|
1048
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
1049
|
+
key = _step5.value;
|
|
1165
1050
|
// 同一 key 命中多张时保留最靠前的下标,与原 findIndex「取首个匹配」一致
|
|
1166
1051
|
if (!identityKeyToIndex.has(key)) identityKeyToIndex.set(key, index);
|
|
1167
1052
|
}
|
|
1168
1053
|
} catch (err) {
|
|
1169
|
-
|
|
1054
|
+
_iterator5.e(err);
|
|
1170
1055
|
} finally {
|
|
1171
|
-
|
|
1056
|
+
_iterator5.f();
|
|
1172
1057
|
}
|
|
1173
1058
|
}
|
|
1174
|
-
|
|
1059
|
+
_iterator6 = _createForOfIteratorHelper(memoryPendingMap.entries());
|
|
1175
1060
|
_context11.prev = 35;
|
|
1176
|
-
|
|
1061
|
+
_iterator6.s();
|
|
1177
1062
|
case 37:
|
|
1178
|
-
if ((
|
|
1179
|
-
_context11.next =
|
|
1063
|
+
if ((_step6 = _iterator6.n()).done) {
|
|
1064
|
+
_context11.next = 52;
|
|
1180
1065
|
break;
|
|
1181
1066
|
}
|
|
1182
|
-
|
|
1067
|
+
_step6$value = _slicedToArray(_step6.value, 2), _storageKey = _step6$value[0], pendingOrder = _step6$value[1];
|
|
1183
1068
|
matchIndex = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, this.getOrderIdentityMatchKeys(pendingOrder));
|
|
1184
1069
|
if (!(matchIndex >= 0)) {
|
|
1185
|
-
_context11.next =
|
|
1070
|
+
_context11.next = 46;
|
|
1186
1071
|
break;
|
|
1187
1072
|
}
|
|
1188
|
-
|
|
1189
|
-
|
|
1073
|
+
mergedOrder = this.mergeOrderRecords(updatedList[matchIndex], pendingOrder, {
|
|
1074
|
+
preferIncomingProducts: true
|
|
1075
|
+
});
|
|
1190
1076
|
updatedList[matchIndex] = mergedOrder;
|
|
1191
|
-
pendingSnapshot = pendingMap.get(_storageKey);
|
|
1192
|
-
if (pendingSnapshot) {
|
|
1193
|
-
pendingMap.set(_storageKey, this.reconcileOverwriteOrderCollections(existingOrder, pendingSnapshot));
|
|
1194
|
-
}
|
|
1195
1077
|
// 合并后身份字段可能新增(如挂单拿到 order_id),同步登记,供同批后续 pending 命中同一槽位
|
|
1196
1078
|
this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex);
|
|
1197
1079
|
mergeActions[_storageKey] = 'update';
|
|
1198
|
-
return _context11.abrupt("continue",
|
|
1199
|
-
case
|
|
1080
|
+
return _context11.abrupt("continue", 50);
|
|
1081
|
+
case 46:
|
|
1200
1082
|
insertIndex = updatedList.length;
|
|
1201
1083
|
updatedList.push(pendingOrder);
|
|
1202
1084
|
this.registerOrderIdentityKeys(identityKeyToIndex, pendingOrder, insertIndex);
|
|
1203
1085
|
mergeActions[_storageKey] = 'insert';
|
|
1204
|
-
case
|
|
1086
|
+
case 50:
|
|
1205
1087
|
_context11.next = 37;
|
|
1206
1088
|
break;
|
|
1207
|
-
case
|
|
1208
|
-
_context11.next =
|
|
1089
|
+
case 52:
|
|
1090
|
+
_context11.next = 57;
|
|
1209
1091
|
break;
|
|
1092
|
+
case 54:
|
|
1093
|
+
_context11.prev = 54;
|
|
1094
|
+
_context11.t1 = _context11["catch"](35);
|
|
1095
|
+
_iterator6.e(_context11.t1);
|
|
1210
1096
|
case 57:
|
|
1211
1097
|
_context11.prev = 57;
|
|
1212
|
-
|
|
1213
|
-
|
|
1098
|
+
_iterator6.f();
|
|
1099
|
+
return _context11.finish(57);
|
|
1214
1100
|
case 60:
|
|
1215
|
-
|
|
1216
|
-
_iterator7.f();
|
|
1217
|
-
return _context11.finish(60);
|
|
1218
|
-
case 63:
|
|
1219
|
-
patchedOrders = _toConsumableArray(pendingMap.values()); // 增量索引已保证 store 去重不变量,无需再对全表做 O(n^2) 压缩;仅自检开关开启时兜底。
|
|
1101
|
+
// 增量索引已保证 store 去重不变量,无需再对全表做 O(n^2) 压缩;仅自检开关开启时兜底。
|
|
1220
1102
|
this.store.list = this.runOrderStoreSelfCheck(updatedList, 'upsertPendingSyncOrders.store');
|
|
1221
1103
|
this.syncOrdersMap();
|
|
1222
|
-
_context11.next =
|
|
1104
|
+
_context11.next = 64;
|
|
1223
1105
|
return this.patchOrdersInSQLite(patchedOrders, 'upsertPendingSyncOrders', mergeActions);
|
|
1224
|
-
case
|
|
1106
|
+
case 64:
|
|
1225
1107
|
this.logInfo('upsertPendingSyncOrders-结束', {
|
|
1226
1108
|
count: patchedOrders.length,
|
|
1227
1109
|
storeOrderCountAfter: this.store.list.length
|
|
1228
1110
|
});
|
|
1229
|
-
_context11.next =
|
|
1111
|
+
_context11.next = 67;
|
|
1230
1112
|
return this.emitOrdersChanged(patchedOrders, 'upsertPendingSyncOrders');
|
|
1231
|
-
case
|
|
1113
|
+
case 67:
|
|
1232
1114
|
case "end":
|
|
1233
1115
|
return _context11.stop();
|
|
1234
1116
|
}
|
|
1235
|
-
}, _callee11, this, [[6,
|
|
1117
|
+
}, _callee11, this, [[6, 19, 22, 25], [35, 54, 57, 60]]);
|
|
1236
1118
|
}));
|
|
1237
1119
|
function upsertPendingSyncOrders(_x7) {
|
|
1238
1120
|
return _upsertPendingSyncOrders.apply(this, arguments);
|
|
@@ -1310,19 +1192,19 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1310
1192
|
key: "syncOrdersMap",
|
|
1311
1193
|
value: function syncOrdersMap() {
|
|
1312
1194
|
this.store.map.clear();
|
|
1313
|
-
var
|
|
1314
|
-
|
|
1195
|
+
var _iterator7 = _createForOfIteratorHelper(this.store.list),
|
|
1196
|
+
_step7;
|
|
1315
1197
|
try {
|
|
1316
|
-
for (
|
|
1317
|
-
var order =
|
|
1198
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
1199
|
+
var order = _step7.value;
|
|
1318
1200
|
var primaryIdentity = this.getOrderMapKey(order);
|
|
1319
1201
|
if (!primaryIdentity) continue;
|
|
1320
1202
|
this.store.map.set(primaryIdentity, order);
|
|
1321
1203
|
}
|
|
1322
1204
|
} catch (err) {
|
|
1323
|
-
|
|
1205
|
+
_iterator7.e(err);
|
|
1324
1206
|
} finally {
|
|
1325
|
-
|
|
1207
|
+
_iterator7.f();
|
|
1326
1208
|
}
|
|
1327
1209
|
}
|
|
1328
1210
|
}, {
|
|
@@ -1346,7 +1228,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1346
1228
|
}, {
|
|
1347
1229
|
key: "getOrderIdentityEntries",
|
|
1348
1230
|
value: function getOrderIdentityEntries(order) {
|
|
1349
|
-
var
|
|
1231
|
+
var _this10 = this;
|
|
1350
1232
|
if (!order) return [];
|
|
1351
1233
|
var record = order;
|
|
1352
1234
|
var candidates = [{
|
|
@@ -1364,9 +1246,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1364
1246
|
}];
|
|
1365
1247
|
var entries = [];
|
|
1366
1248
|
var _loop = function _loop() {
|
|
1367
|
-
var candidate = _candidates[
|
|
1368
|
-
if (
|
|
1369
|
-
var key =
|
|
1249
|
+
var candidate = _candidates[_i];
|
|
1250
|
+
if (_this10.isBlankIdentityValue(candidate.value)) return 0; // continue
|
|
1251
|
+
var key = _this10.getIdKey(candidate.value);
|
|
1370
1252
|
if (entries.some(function (entry) {
|
|
1371
1253
|
return entry.field === candidate.field && entry.key === key;
|
|
1372
1254
|
})) return 0; // continue
|
|
@@ -1376,7 +1258,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1376
1258
|
});
|
|
1377
1259
|
},
|
|
1378
1260
|
_ret;
|
|
1379
|
-
for (var
|
|
1261
|
+
for (var _i = 0, _candidates = candidates; _i < _candidates.length; _i++) {
|
|
1380
1262
|
_ret = _loop();
|
|
1381
1263
|
if (_ret === 0) continue;
|
|
1382
1264
|
}
|
|
@@ -1386,17 +1268,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1386
1268
|
key: "getOrderIdentityKeys",
|
|
1387
1269
|
value: function getOrderIdentityKeys(order) {
|
|
1388
1270
|
var keys = [];
|
|
1389
|
-
var
|
|
1390
|
-
|
|
1271
|
+
var _iterator8 = _createForOfIteratorHelper(this.getOrderIdentityEntries(order)),
|
|
1272
|
+
_step8;
|
|
1391
1273
|
try {
|
|
1392
|
-
for (
|
|
1393
|
-
var entry =
|
|
1274
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
1275
|
+
var entry = _step8.value;
|
|
1394
1276
|
if (!keys.includes(entry.key)) keys.push(entry.key);
|
|
1395
1277
|
}
|
|
1396
1278
|
} catch (err) {
|
|
1397
|
-
|
|
1279
|
+
_iterator8.e(err);
|
|
1398
1280
|
} finally {
|
|
1399
|
-
|
|
1281
|
+
_iterator8.f();
|
|
1400
1282
|
}
|
|
1401
1283
|
return keys;
|
|
1402
1284
|
}
|
|
@@ -1405,8 +1287,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1405
1287
|
value: function getOrderDateKey(order) {
|
|
1406
1288
|
var _order$bookings, _order$bookings2;
|
|
1407
1289
|
var candidates = [order === null || order === void 0 ? void 0 : order.schedule_date, order === null || order === void 0 ? void 0 : order.create_date, order === null || order === void 0 ? void 0 : order.created_at, order === null || order === void 0 || (_order$bookings = order.bookings) === null || _order$bookings === void 0 || (_order$bookings = _order$bookings[0]) === null || _order$bookings === void 0 ? void 0 : _order$bookings.start_date, order === null || order === void 0 || (_order$bookings2 = order.bookings) === null || _order$bookings2 === void 0 || (_order$bookings2 = _order$bookings2[0]) === null || _order$bookings2 === void 0 ? void 0 : _order$bookings2.select_date];
|
|
1408
|
-
for (var
|
|
1409
|
-
var v = _candidates2[
|
|
1290
|
+
for (var _i2 = 0, _candidates2 = candidates; _i2 < _candidates2.length; _i2++) {
|
|
1291
|
+
var v = _candidates2[_i2];
|
|
1410
1292
|
if (!v) continue;
|
|
1411
1293
|
var text = String(v);
|
|
1412
1294
|
if (!text) continue;
|
|
@@ -1433,7 +1315,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1433
1315
|
}, {
|
|
1434
1316
|
key: "setupOrderSync",
|
|
1435
1317
|
value: function setupOrderSync() {
|
|
1436
|
-
var
|
|
1318
|
+
var _this11 = this;
|
|
1437
1319
|
if (!this.orderDataSource) return;
|
|
1438
1320
|
this.orderDataSource.run({
|
|
1439
1321
|
pubsub: {
|
|
@@ -1441,22 +1323,22 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1441
1323
|
var _message$id, _message$order_id, _message$type;
|
|
1442
1324
|
console.log('orderDataSource', res);
|
|
1443
1325
|
var pubsubReceivedAt = Date.now();
|
|
1444
|
-
var message =
|
|
1326
|
+
var message = _this11.normalizeOrderSyncMessage(res);
|
|
1445
1327
|
if (!message) return;
|
|
1446
1328
|
message._pubsubReceivedAt = pubsubReceivedAt;
|
|
1447
|
-
|
|
1448
|
-
var throttleMs =
|
|
1449
|
-
var routeInfo =
|
|
1450
|
-
|
|
1329
|
+
_this11.pendingSyncMessages.push(message);
|
|
1330
|
+
var throttleMs = _this11.getOrderSyncThrottleMs();
|
|
1331
|
+
var routeInfo = _this11.resolveSyncMessageRoute(message);
|
|
1332
|
+
_this11.logInfo('orderSync-收到消息并入队', {
|
|
1451
1333
|
id: (_message$id = message.id) !== null && _message$id !== void 0 ? _message$id : null,
|
|
1452
1334
|
order_id: (_message$order_id = message.order_id) !== null && _message$order_id !== void 0 ? _message$order_id : null,
|
|
1453
1335
|
type: (_message$type = message.type) !== null && _message$type !== void 0 ? _message$type : null,
|
|
1454
|
-
pendingCount:
|
|
1336
|
+
pendingCount: _this11.pendingSyncMessages.length,
|
|
1455
1337
|
throttleMs: throttleMs,
|
|
1456
1338
|
pubsubReceivedAt: new Date(pubsubReceivedAt).toISOString(),
|
|
1457
1339
|
fullMessage: JSON.stringify(message)
|
|
1458
1340
|
});
|
|
1459
|
-
|
|
1341
|
+
_this11.scheduleOrderSyncThrottle();
|
|
1460
1342
|
}
|
|
1461
1343
|
}
|
|
1462
1344
|
}).catch(function () {
|
|
@@ -1473,7 +1355,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1473
1355
|
}, {
|
|
1474
1356
|
key: "scheduleOrderSyncThrottle",
|
|
1475
1357
|
value: function scheduleOrderSyncThrottle() {
|
|
1476
|
-
var
|
|
1358
|
+
var _this12 = this;
|
|
1477
1359
|
if (this.isProcessingSyncBatch) return;
|
|
1478
1360
|
if (this.isIdlePhase) {
|
|
1479
1361
|
this.isIdlePhase = false;
|
|
@@ -1484,8 +1366,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1484
1366
|
if (this.syncTimer) return;
|
|
1485
1367
|
var throttleMs = this.getOrderSyncThrottleMs();
|
|
1486
1368
|
this.syncTimer = setTimeout(function () {
|
|
1487
|
-
|
|
1488
|
-
void
|
|
1369
|
+
_this12.syncTimer = undefined;
|
|
1370
|
+
void _this12.flushOrderSyncMessagesByThrottle();
|
|
1489
1371
|
}, throttleMs);
|
|
1490
1372
|
}
|
|
1491
1373
|
|
|
@@ -1553,7 +1435,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1553
1435
|
key: "processOrderSyncMessages",
|
|
1554
1436
|
value: (function () {
|
|
1555
1437
|
var _processOrderSyncMessages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
|
|
1556
|
-
var
|
|
1438
|
+
var _this13 = this;
|
|
1557
1439
|
var messages, batchProcessStartAt, earliestReceivedAt, upsertOrders, refreshIds, uniqueRefreshIds, upsertList, _this$filterRedundant, toFetch, skipped, freshOrders, batchProcessEndAt;
|
|
1558
1440
|
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
1559
1441
|
while (1) switch (_context14.prev = _context14.next) {
|
|
@@ -1580,13 +1462,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1580
1462
|
upsertOrders = new Map();
|
|
1581
1463
|
refreshIds = [];
|
|
1582
1464
|
messages.forEach(function (msg, msgIndex) {
|
|
1583
|
-
var routeInfo =
|
|
1465
|
+
var routeInfo = _this13.resolveSyncMessageRoute(msg);
|
|
1584
1466
|
var hasBatchIds = routeInfo.hasBatchIds;
|
|
1585
1467
|
var singleId = routeInfo.singleId;
|
|
1586
1468
|
var hasSingleId = routeInfo.hasSingleId;
|
|
1587
|
-
var normalizedBody =
|
|
1469
|
+
var normalizedBody = _this13.normalizeOrderSyncPayload(msg.body || msg.data);
|
|
1588
1470
|
if (routeInfo.route === 'bodyUpsert' && normalizedBody) {
|
|
1589
|
-
upsertOrders.set(
|
|
1471
|
+
upsertOrders.set(_this13.getIdKey(normalizedBody.order_id), normalizedBody);
|
|
1590
1472
|
return;
|
|
1591
1473
|
}
|
|
1592
1474
|
if (hasBatchIds) refreshIds.push.apply(refreshIds, _toConsumableArray(routeInfo.batchIds));else if (routeInfo.route === 'httpRefresh.singleId' && singleId !== null) refreshIds.push(singleId);else if (routeInfo.route === 'httpRefresh.relationIds') refreshIds.push.apply(refreshIds, _toConsumableArray(routeInfo.batchIds));
|
|
@@ -1724,8 +1606,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1724
1606
|
key: "mergeOrdersToStore",
|
|
1725
1607
|
value: (function () {
|
|
1726
1608
|
var _mergeOrdersToStore = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(freshOrders, source) {
|
|
1727
|
-
var
|
|
1728
|
-
var storeOrderCountBefore, normalizedFreshOrders, _iterator10, _step10, order, id, uniqueFreshOrders, uniqueFreshCount, patchedOrders, mergeActions, updatedList, identityKeyToIndex, index, identityKeys, _iterator11, _step11, key, _iterator12, _step12, fresh, freshIdentityKeys, matchIndex, storageKey, mergeKey, existingOrder, _ref2, _existingOrder$order_, _ref3, _external_sale_number2, _existingOrder$paymen, _fresh$payment_status, _existingOrder$need_s, _fresh$need_sync, mergedOrder, insertIndex, insertCount, updateCount;
|
|
1609
|
+
var storeOrderCountBefore, normalizedFreshOrders, _iterator9, _step9, order, id, uniqueFreshOrders, uniqueFreshCount, patchedOrders, mergeActions, updatedList, identityKeyToIndex, index, identityKeys, _iterator10, _step10, key, _iterator11, _step11, fresh, freshIdentityKeys, matchIndex, storageKey, mergeKey, existingOrder, _ref2, _existingOrder$order_, _ref3, _external_sale_number, _existingOrder$paymen, _fresh$payment_status, _existingOrder$need_s, _fresh$need_sync, mergedOrder, insertIndex, insertCount, updateCount;
|
|
1729
1610
|
return _regeneratorRuntime().wrap(function _callee16$(_context16) {
|
|
1730
1611
|
while (1) switch (_context16.prev = _context16.next) {
|
|
1731
1612
|
case 0:
|
|
@@ -1737,15 +1618,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1737
1618
|
});
|
|
1738
1619
|
this.logDuplicateOrders("".concat(source, ".beforeMerge"), this.store.list);
|
|
1739
1620
|
normalizedFreshOrders = [];
|
|
1740
|
-
|
|
1621
|
+
_iterator9 = _createForOfIteratorHelper(freshOrders);
|
|
1741
1622
|
_context16.prev = 5;
|
|
1742
|
-
|
|
1623
|
+
_iterator9.s();
|
|
1743
1624
|
case 7:
|
|
1744
|
-
if ((
|
|
1625
|
+
if ((_step9 = _iterator9.n()).done) {
|
|
1745
1626
|
_context16.next = 15;
|
|
1746
1627
|
break;
|
|
1747
1628
|
}
|
|
1748
|
-
order =
|
|
1629
|
+
order = _step9.value;
|
|
1749
1630
|
id = order === null || order === void 0 ? void 0 : order.order_id;
|
|
1750
1631
|
if (!(id === undefined || id === null)) {
|
|
1751
1632
|
_context16.next = 12;
|
|
@@ -1763,10 +1644,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1763
1644
|
case 17:
|
|
1764
1645
|
_context16.prev = 17;
|
|
1765
1646
|
_context16.t0 = _context16["catch"](5);
|
|
1766
|
-
|
|
1647
|
+
_iterator9.e(_context16.t0);
|
|
1767
1648
|
case 20:
|
|
1768
1649
|
_context16.prev = 20;
|
|
1769
|
-
|
|
1650
|
+
_iterator9.f();
|
|
1770
1651
|
return _context16.finish(20);
|
|
1771
1652
|
case 23:
|
|
1772
1653
|
// 先对本批新单做去重(批内规模 m 很小),保证每条 fresh 身份唯一
|
|
@@ -1774,36 +1655,34 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1774
1655
|
uniqueFreshCount = uniqueFreshOrders.length;
|
|
1775
1656
|
patchedOrders = [];
|
|
1776
1657
|
mergeActions = {};
|
|
1777
|
-
updatedList = this.store.list
|
|
1778
|
-
return _this15.normalizeOrderForMemoryList(order, "".concat(source, ".existingMemory"));
|
|
1779
|
-
}); // 基于身份键(field:value)建立索引,把「查找已存在订单」从 O(n) 线性扫描降为 O(1),
|
|
1658
|
+
updatedList = _toConsumableArray(this.store.list); // 基于身份键(field:value)建立索引,把「查找已存在订单」从 O(n) 线性扫描降为 O(1),
|
|
1780
1659
|
// 整体合并复杂度由 O(n^2) 降为 O(n + m)。索引语义与 doOrdersShareIdentity 完全一致:
|
|
1781
1660
|
// 任一身份字段(order_id/external_sale_number/order_number/shop_order_number)同值即同一单。
|
|
1782
1661
|
identityKeyToIndex = new Map();
|
|
1783
1662
|
for (index = 0; index < updatedList.length; index += 1) {
|
|
1784
1663
|
identityKeys = this.getOrderIdentityMatchKeys(updatedList[index]);
|
|
1785
|
-
|
|
1664
|
+
_iterator10 = _createForOfIteratorHelper(identityKeys);
|
|
1786
1665
|
try {
|
|
1787
|
-
for (
|
|
1788
|
-
key =
|
|
1666
|
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
|
1667
|
+
key = _step10.value;
|
|
1789
1668
|
// 同一 key 命中多张时保留最靠前的下标,与原 findIndex「取首个匹配」一致
|
|
1790
1669
|
if (!identityKeyToIndex.has(key)) identityKeyToIndex.set(key, index);
|
|
1791
1670
|
}
|
|
1792
1671
|
} catch (err) {
|
|
1793
|
-
|
|
1672
|
+
_iterator10.e(err);
|
|
1794
1673
|
} finally {
|
|
1795
|
-
|
|
1674
|
+
_iterator10.f();
|
|
1796
1675
|
}
|
|
1797
1676
|
}
|
|
1798
|
-
|
|
1677
|
+
_iterator11 = _createForOfIteratorHelper(uniqueFreshOrders);
|
|
1799
1678
|
_context16.prev = 31;
|
|
1800
|
-
|
|
1679
|
+
_iterator11.s();
|
|
1801
1680
|
case 33:
|
|
1802
|
-
if ((
|
|
1681
|
+
if ((_step11 = _iterator11.n()).done) {
|
|
1803
1682
|
_context16.next = 57;
|
|
1804
1683
|
break;
|
|
1805
1684
|
}
|
|
1806
|
-
fresh =
|
|
1685
|
+
fresh = _step11.value;
|
|
1807
1686
|
freshIdentityKeys = this.getOrderIdentityMatchKeys(fresh);
|
|
1808
1687
|
matchIndex = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, freshIdentityKeys);
|
|
1809
1688
|
storageKey = this.getOrderStorageKey(fresh);
|
|
@@ -1820,7 +1699,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1820
1699
|
this.logInfo('mergeOrdersToStore-跳过 pending 订单远端覆盖', {
|
|
1821
1700
|
source: source,
|
|
1822
1701
|
order_id: (_ref2 = (_existingOrder$order_ = existingOrder.order_id) !== null && _existingOrder$order_ !== void 0 ? _existingOrder$order_ : fresh.order_id) !== null && _ref2 !== void 0 ? _ref2 : null,
|
|
1823
|
-
external_sale_number: (_ref3 = (
|
|
1702
|
+
external_sale_number: (_ref3 = (_external_sale_number = existingOrder.external_sale_number) !== null && _external_sale_number !== void 0 ? _external_sale_number : fresh.external_sale_number) !== null && _ref3 !== void 0 ? _ref3 : null,
|
|
1824
1703
|
local_payment_status: (_existingOrder$paymen = existingOrder.payment_status) !== null && _existingOrder$paymen !== void 0 ? _existingOrder$paymen : null,
|
|
1825
1704
|
remote_payment_status: (_fresh$payment_status = fresh.payment_status) !== null && _fresh$payment_status !== void 0 ? _fresh$payment_status : null,
|
|
1826
1705
|
local_need_sync: (_existingOrder$need_s = existingOrder.need_sync) !== null && _existingOrder$need_s !== void 0 ? _existingOrder$need_s : null,
|
|
@@ -1852,10 +1731,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1852
1731
|
case 59:
|
|
1853
1732
|
_context16.prev = 59;
|
|
1854
1733
|
_context16.t1 = _context16["catch"](31);
|
|
1855
|
-
|
|
1734
|
+
_iterator11.e(_context16.t1);
|
|
1856
1735
|
case 62:
|
|
1857
1736
|
_context16.prev = 62;
|
|
1858
|
-
|
|
1737
|
+
_iterator11.f();
|
|
1859
1738
|
return _context16.finish(62);
|
|
1860
1739
|
case 65:
|
|
1861
1740
|
insertCount = Object.values(mergeActions).filter(function (v) {
|
|
@@ -1907,19 +1786,19 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1907
1786
|
key: "lookupOrderIndexByIdentityKeys",
|
|
1908
1787
|
value: function lookupOrderIndexByIdentityKeys(identityKeyToIndex, identityKeys) {
|
|
1909
1788
|
var matchIndex = -1;
|
|
1910
|
-
var
|
|
1911
|
-
|
|
1789
|
+
var _iterator12 = _createForOfIteratorHelper(identityKeys),
|
|
1790
|
+
_step12;
|
|
1912
1791
|
try {
|
|
1913
|
-
for (
|
|
1914
|
-
var key =
|
|
1792
|
+
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
|
1793
|
+
var key = _step12.value;
|
|
1915
1794
|
var index = identityKeyToIndex.get(key);
|
|
1916
1795
|
if (index === undefined) continue;
|
|
1917
1796
|
if (matchIndex < 0 || index < matchIndex) matchIndex = index;
|
|
1918
1797
|
}
|
|
1919
1798
|
} catch (err) {
|
|
1920
|
-
|
|
1799
|
+
_iterator12.e(err);
|
|
1921
1800
|
} finally {
|
|
1922
|
-
|
|
1801
|
+
_iterator12.f();
|
|
1923
1802
|
}
|
|
1924
1803
|
return matchIndex;
|
|
1925
1804
|
}
|
|
@@ -1940,17 +1819,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1940
1819
|
key: "registerOrderIdentityKeys",
|
|
1941
1820
|
value: function registerOrderIdentityKeys(identityKeyToIndex, order, index) {
|
|
1942
1821
|
var identityKeys = this.getOrderIdentityMatchKeys(order);
|
|
1943
|
-
var
|
|
1944
|
-
|
|
1822
|
+
var _iterator13 = _createForOfIteratorHelper(identityKeys),
|
|
1823
|
+
_step13;
|
|
1945
1824
|
try {
|
|
1946
|
-
for (
|
|
1947
|
-
var key =
|
|
1825
|
+
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
|
1826
|
+
var key = _step13.value;
|
|
1948
1827
|
identityKeyToIndex.set(key, index);
|
|
1949
1828
|
}
|
|
1950
1829
|
} catch (err) {
|
|
1951
|
-
|
|
1830
|
+
_iterator13.e(err);
|
|
1952
1831
|
} finally {
|
|
1953
|
-
|
|
1832
|
+
_iterator13.f();
|
|
1954
1833
|
}
|
|
1955
1834
|
}
|
|
1956
1835
|
|
|
@@ -2005,17 +1884,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2005
1884
|
key: "uniqueOrderIds",
|
|
2006
1885
|
value: function uniqueOrderIds(ids) {
|
|
2007
1886
|
var idMap = new Map();
|
|
2008
|
-
var
|
|
2009
|
-
|
|
1887
|
+
var _iterator14 = _createForOfIteratorHelper(ids),
|
|
1888
|
+
_step14;
|
|
2010
1889
|
try {
|
|
2011
|
-
for (
|
|
2012
|
-
var id =
|
|
1890
|
+
for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
|
|
1891
|
+
var id = _step14.value;
|
|
2013
1892
|
idMap.set(this.getIdKey(id), id);
|
|
2014
1893
|
}
|
|
2015
1894
|
} catch (err) {
|
|
2016
|
-
|
|
1895
|
+
_iterator14.e(err);
|
|
2017
1896
|
} finally {
|
|
2018
|
-
|
|
1897
|
+
_iterator14.f();
|
|
2019
1898
|
}
|
|
2020
1899
|
return _toConsumableArray(idMap.values());
|
|
2021
1900
|
}
|
|
@@ -2027,12 +1906,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2027
1906
|
}, {
|
|
2028
1907
|
key: "isOrderLookupMatch",
|
|
2029
1908
|
value: function isOrderLookupMatch(order, lookupKey) {
|
|
2030
|
-
var
|
|
1909
|
+
var _this14 = this;
|
|
2031
1910
|
if (!order || !lookupKey) return false;
|
|
2032
1911
|
var candidates = [order.order_id, order.external_sale_number, order.order_number, order.shop_order_number, order.shop_full_order_number];
|
|
2033
1912
|
return candidates.some(function (value) {
|
|
2034
1913
|
if (value === undefined || value === null || value === '') return false;
|
|
2035
|
-
return
|
|
1914
|
+
return _this14.getIdKey(value) === lookupKey;
|
|
2036
1915
|
});
|
|
2037
1916
|
}
|
|
2038
1917
|
|
|
@@ -2075,10 +1954,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2075
1954
|
}, {
|
|
2076
1955
|
key: "findOrderIndexByIdentity",
|
|
2077
1956
|
value: function findOrderIndexByIdentity(orders, target) {
|
|
2078
|
-
var
|
|
1957
|
+
var _this15 = this;
|
|
2079
1958
|
if (this.getOrderIdentityMatchKeys(target).length === 0) return -1;
|
|
2080
1959
|
return orders.findIndex(function (order) {
|
|
2081
|
-
return
|
|
1960
|
+
return _this15.doOrdersShareIdentity(order, target);
|
|
2082
1961
|
});
|
|
2083
1962
|
}
|
|
2084
1963
|
}, {
|
|
@@ -2102,22 +1981,153 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2102
1981
|
if (rightScore >= leftScore) return right;
|
|
2103
1982
|
return left;
|
|
2104
1983
|
}
|
|
1984
|
+
}, {
|
|
1985
|
+
key: "getProductIdentityKeys",
|
|
1986
|
+
value: function getProductIdentityKeys(product) {
|
|
1987
|
+
var _record$metadata;
|
|
1988
|
+
var record = product;
|
|
1989
|
+
if (!record) return [];
|
|
1990
|
+
var keys = [];
|
|
1991
|
+
var metadataUid = (_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.unique_identification_number;
|
|
1992
|
+
if (!this.isBlankIdentityValue(metadataUid)) keys.push("uid:".concat(String(metadataUid)));
|
|
1993
|
+
var topLevelUid = record.unique_identification_number;
|
|
1994
|
+
if (!this.isBlankIdentityValue(topLevelUid)) keys.push("uid:".concat(String(topLevelUid)));
|
|
1995
|
+
var orderDetailId = record.order_detail_id;
|
|
1996
|
+
if (!this.isBlankIdentityValue(orderDetailId)) keys.push("detail:".concat(String(orderDetailId)));
|
|
1997
|
+
var bookingUid = record.booking_uid;
|
|
1998
|
+
if (!this.isBlankIdentityValue(bookingUid)) keys.push("booking:".concat(String(bookingUid)));
|
|
1999
|
+
return keys;
|
|
2000
|
+
}
|
|
2001
|
+
}, {
|
|
2002
|
+
key: "mergeOrderProductLists",
|
|
2003
|
+
value: function mergeOrderProductLists(preferred, secondary) {
|
|
2004
|
+
var preferredList = Array.isArray(preferred) ? preferred : [];
|
|
2005
|
+
var secondaryList = Array.isArray(secondary) ? secondary : [];
|
|
2006
|
+
if (secondaryList.length === 0) return preferredList;
|
|
2007
|
+
if (preferredList.length === 0) return secondaryList;
|
|
2008
|
+
var seenKeys = new Set();
|
|
2009
|
+
var _iterator15 = _createForOfIteratorHelper(preferredList),
|
|
2010
|
+
_step15;
|
|
2011
|
+
try {
|
|
2012
|
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
|
2013
|
+
var item = _step15.value;
|
|
2014
|
+
var keys = this.getProductIdentityKeys(item);
|
|
2015
|
+
var _iterator17 = _createForOfIteratorHelper(keys),
|
|
2016
|
+
_step17;
|
|
2017
|
+
try {
|
|
2018
|
+
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
|
|
2019
|
+
var key = _step17.value;
|
|
2020
|
+
seenKeys.add(key);
|
|
2021
|
+
}
|
|
2022
|
+
} catch (err) {
|
|
2023
|
+
_iterator17.e(err);
|
|
2024
|
+
} finally {
|
|
2025
|
+
_iterator17.f();
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
} catch (err) {
|
|
2029
|
+
_iterator15.e(err);
|
|
2030
|
+
} finally {
|
|
2031
|
+
_iterator15.f();
|
|
2032
|
+
}
|
|
2033
|
+
var result = _toConsumableArray(preferredList);
|
|
2034
|
+
var _iterator16 = _createForOfIteratorHelper(secondaryList),
|
|
2035
|
+
_step16;
|
|
2036
|
+
try {
|
|
2037
|
+
for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
|
|
2038
|
+
var _item = _step16.value;
|
|
2039
|
+
var _keys = this.getProductIdentityKeys(_item);
|
|
2040
|
+
if (_keys.length === 0 || _keys.some(function (key) {
|
|
2041
|
+
return seenKeys.has(key);
|
|
2042
|
+
})) continue;
|
|
2043
|
+
var _iterator18 = _createForOfIteratorHelper(_keys),
|
|
2044
|
+
_step18;
|
|
2045
|
+
try {
|
|
2046
|
+
for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
|
|
2047
|
+
var _key = _step18.value;
|
|
2048
|
+
seenKeys.add(_key);
|
|
2049
|
+
}
|
|
2050
|
+
} catch (err) {
|
|
2051
|
+
_iterator18.e(err);
|
|
2052
|
+
} finally {
|
|
2053
|
+
_iterator18.f();
|
|
2054
|
+
}
|
|
2055
|
+
result.push(cloneDeep(_item));
|
|
2056
|
+
}
|
|
2057
|
+
} catch (err) {
|
|
2058
|
+
_iterator16.e(err);
|
|
2059
|
+
} finally {
|
|
2060
|
+
_iterator16.f();
|
|
2061
|
+
}
|
|
2062
|
+
return result;
|
|
2063
|
+
}
|
|
2064
|
+
}, {
|
|
2065
|
+
key: "getPaymentMergeKey",
|
|
2066
|
+
value: function getPaymentMergeKey(payment) {
|
|
2067
|
+
var _record$metadata2;
|
|
2068
|
+
var record = payment;
|
|
2069
|
+
if (!record) return '';
|
|
2070
|
+
var uniquePaymentNumber = (_record$metadata2 = record.metadata) === null || _record$metadata2 === void 0 ? void 0 : _record$metadata2.unique_payment_number;
|
|
2071
|
+
if (!this.isBlankIdentityValue(uniquePaymentNumber)) {
|
|
2072
|
+
return "unique:".concat(String(uniquePaymentNumber));
|
|
2073
|
+
}
|
|
2074
|
+
var orderPaymentId = record.order_payment_id;
|
|
2075
|
+
if (!this.isBlankIdentityValue(orderPaymentId)) return "order_payment:".concat(String(orderPaymentId));
|
|
2076
|
+
var code = record.code;
|
|
2077
|
+
var customPaymentId = record.custom_payment_id;
|
|
2078
|
+
if (!this.isBlankIdentityValue(code) && !this.isBlankIdentityValue(customPaymentId)) {
|
|
2079
|
+
return "custom:".concat(String(code), "#").concat(String(customPaymentId));
|
|
2080
|
+
}
|
|
2081
|
+
return '';
|
|
2082
|
+
}
|
|
2083
|
+
}, {
|
|
2084
|
+
key: "mergeOrderPaymentLists",
|
|
2085
|
+
value: function mergeOrderPaymentLists(existing, incoming) {
|
|
2086
|
+
var _this16 = this;
|
|
2087
|
+
var existingList = Array.isArray(existing) ? existing : [];
|
|
2088
|
+
var incomingList = Array.isArray(incoming) ? incoming : [];
|
|
2089
|
+
if (incomingList.length === 0) return cloneDeep(existingList);
|
|
2090
|
+
if (existingList.length === 0) return cloneDeep(incomingList);
|
|
2091
|
+
var existingByKey = new Map();
|
|
2092
|
+
var _iterator19 = _createForOfIteratorHelper(existingList),
|
|
2093
|
+
_step19;
|
|
2094
|
+
try {
|
|
2095
|
+
for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
|
|
2096
|
+
var payment = _step19.value;
|
|
2097
|
+
var key = this.getPaymentMergeKey(payment);
|
|
2098
|
+
if (!key) continue;
|
|
2099
|
+
existingByKey.set(key, payment);
|
|
2100
|
+
}
|
|
2101
|
+
} catch (err) {
|
|
2102
|
+
_iterator19.e(err);
|
|
2103
|
+
} finally {
|
|
2104
|
+
_iterator19.f();
|
|
2105
|
+
}
|
|
2106
|
+
return incomingList.map(function (payment) {
|
|
2107
|
+
var incomingPayment = payment;
|
|
2108
|
+
var key = _this16.getPaymentMergeKey(incomingPayment);
|
|
2109
|
+
var existingPayment = key ? existingByKey.get(key) : undefined;
|
|
2110
|
+
if (!existingPayment) return cloneDeep(incomingPayment);
|
|
2111
|
+
return _objectSpread(_objectSpread(_objectSpread({}, cloneDeep(existingPayment)), cloneDeep(incomingPayment)), {}, {
|
|
2112
|
+
metadata: _objectSpread(_objectSpread({}, cloneDeep(existingPayment.metadata || {})), cloneDeep(incomingPayment.metadata || {}))
|
|
2113
|
+
});
|
|
2114
|
+
});
|
|
2115
|
+
}
|
|
2105
2116
|
}, {
|
|
2106
2117
|
key: "mergeOrderRecords",
|
|
2107
|
-
value: function mergeOrderRecords(existing, incoming) {
|
|
2118
|
+
value: function mergeOrderRecords(existing, incoming, options) {
|
|
2108
2119
|
var preferred = this.pickPreferredOrder(existing, incoming);
|
|
2109
2120
|
var secondary = preferred === existing ? incoming : existing;
|
|
2110
2121
|
var merged = _objectSpread(_objectSpread({}, secondary), preferred);
|
|
2111
2122
|
var fieldsToPreserve = ['order_id', 'external_sale_number', 'order_number', 'shop_order_number', 'shop_full_order_number'];
|
|
2112
|
-
var incomingPatchFields = ['payment_status', 'status', 'shipping_status', 'updated_at', 'shop_discount', 'summary', 'note', 'customer_id', 'customer_name', 'customer', 'holder', 'contacts_info', 'phone', 'email', 'relation_forms'];
|
|
2123
|
+
var incomingPatchFields = ['payment_status', 'status', 'shipping_status', 'updated_at', 'shop_discount', 'summary', 'products', 'bookings', 'note', 'customer_id', 'customer_name', 'customer', 'holder', 'contacts_info', 'phone', 'email', 'relation_forms'];
|
|
2113
2124
|
var mergedRecord = merged;
|
|
2114
2125
|
var preferredRecord = preferred;
|
|
2115
2126
|
var secondaryRecord = secondary;
|
|
2116
|
-
var existingRecord = existing;
|
|
2117
2127
|
var incomingRecord = incoming;
|
|
2118
|
-
var
|
|
2119
|
-
for (var
|
|
2120
|
-
var field = _fieldsToPreserve[
|
|
2128
|
+
var previousRecord = preferred === incoming ? secondaryRecord : preferredRecord;
|
|
2129
|
+
for (var _i3 = 0, _fieldsToPreserve = fieldsToPreserve; _i3 < _fieldsToPreserve.length; _i3++) {
|
|
2130
|
+
var field = _fieldsToPreserve[_i3];
|
|
2121
2131
|
if (!this.isBlankIdentityValue(preferredRecord[field])) {
|
|
2122
2132
|
mergedRecord[field] = preferredRecord[field];
|
|
2123
2133
|
continue;
|
|
@@ -2126,61 +2136,56 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2126
2136
|
mergedRecord[field] = secondaryRecord[field];
|
|
2127
2137
|
}
|
|
2128
2138
|
}
|
|
2129
|
-
|
|
2130
|
-
|
|
2139
|
+
var hasIncomingProducts = Object.prototype.hasOwnProperty.call(incomingRecord, 'products');
|
|
2140
|
+
var shouldUseIncomingProductsSnapshot = (options === null || options === void 0 ? void 0 : options.preferIncomingProducts) === true && hasIncomingProducts && incomingRecord.products !== undefined && incomingRecord.products !== null;
|
|
2141
|
+
for (var _i4 = 0, _incomingPatchFields = incomingPatchFields; _i4 < _incomingPatchFields.length; _i4++) {
|
|
2142
|
+
var _field = _incomingPatchFields[_i4];
|
|
2131
2143
|
if (!Object.prototype.hasOwnProperty.call(incomingRecord, _field)) continue;
|
|
2132
2144
|
if (incomingRecord[_field] === undefined || incomingRecord[_field] === null) continue;
|
|
2133
2145
|
if (typeof incomingRecord[_field] === 'string' && incomingRecord[_field] === '') continue;
|
|
2134
2146
|
mergedRecord[_field] = cloneDeep(incomingRecord[_field]);
|
|
2135
2147
|
}
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
mergedRecord[_field2] = this.mergeAuthoritativeOrderCollection(_field2, existingRecord[_field2], incomingRecord[_field2], childUidRemaps);
|
|
2143
|
-
continue;
|
|
2144
|
-
}
|
|
2145
|
-
if (Object.prototype.hasOwnProperty.call(existingRecord, _field2)) {
|
|
2146
|
-
mergedRecord[_field2] = cloneDeep(existingRecord[_field2]);
|
|
2147
|
-
} else {
|
|
2148
|
-
delete mergedRecord[_field2];
|
|
2148
|
+
mergedRecord.products = shouldUseIncomingProductsSnapshot ? cloneDeep(incomingRecord.products) : this.mergeOrderProductLists(preferredRecord.products, secondaryRecord.products);
|
|
2149
|
+
if (Object.prototype.hasOwnProperty.call(incomingRecord, 'payments')) {
|
|
2150
|
+
if (Array.isArray(incomingRecord.payments)) {
|
|
2151
|
+
mergedRecord.payments = this.mergeOrderPaymentLists(previousRecord.payments, incomingRecord.payments);
|
|
2152
|
+
} else if (incomingRecord.payments !== undefined && incomingRecord.payments !== null) {
|
|
2153
|
+
mergedRecord.payments = cloneDeep(incomingRecord.payments);
|
|
2149
2154
|
}
|
|
2150
2155
|
}
|
|
2151
2156
|
if (!this.isPendingSyncOrder(preferred) || !this.isPendingSyncOrder(secondary)) {
|
|
2152
2157
|
merged.need_sync = 0;
|
|
2153
2158
|
}
|
|
2154
|
-
return
|
|
2159
|
+
return merged;
|
|
2155
2160
|
}
|
|
2156
2161
|
}, {
|
|
2157
2162
|
key: "summarizeDuplicateOrders",
|
|
2158
2163
|
value: function summarizeDuplicateOrders(orders) {
|
|
2159
2164
|
var groups = new Map();
|
|
2160
|
-
var
|
|
2161
|
-
|
|
2165
|
+
var _iterator20 = _createForOfIteratorHelper(orders),
|
|
2166
|
+
_step20;
|
|
2162
2167
|
try {
|
|
2163
|
-
for (
|
|
2164
|
-
var order =
|
|
2165
|
-
var
|
|
2166
|
-
|
|
2168
|
+
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
|
|
2169
|
+
var order = _step20.value;
|
|
2170
|
+
var _iterator21 = _createForOfIteratorHelper(this.getOrderIdentityMatchKeys(order)),
|
|
2171
|
+
_step21;
|
|
2167
2172
|
try {
|
|
2168
|
-
for (
|
|
2169
|
-
var key =
|
|
2173
|
+
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
|
|
2174
|
+
var key = _step21.value;
|
|
2170
2175
|
var group = groups.get(key) || [];
|
|
2171
2176
|
group.push(order);
|
|
2172
2177
|
groups.set(key, group);
|
|
2173
2178
|
}
|
|
2174
2179
|
} catch (err) {
|
|
2175
|
-
|
|
2180
|
+
_iterator21.e(err);
|
|
2176
2181
|
} finally {
|
|
2177
|
-
|
|
2182
|
+
_iterator21.f();
|
|
2178
2183
|
}
|
|
2179
2184
|
}
|
|
2180
2185
|
} catch (err) {
|
|
2181
|
-
|
|
2186
|
+
_iterator20.e(err);
|
|
2182
2187
|
} finally {
|
|
2183
|
-
|
|
2188
|
+
_iterator20.f();
|
|
2184
2189
|
}
|
|
2185
2190
|
return _toConsumableArray(groups.entries()).filter(function (_ref4) {
|
|
2186
2191
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
@@ -2194,10 +2199,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2194
2199
|
key: key,
|
|
2195
2200
|
count: group.length,
|
|
2196
2201
|
orders: group.map(function (order) {
|
|
2197
|
-
var _order$
|
|
2202
|
+
var _order$order_id2, _external_sale_number2, _shop_order_number, _shop_full_order_numb, _order$need_sync;
|
|
2198
2203
|
return {
|
|
2199
|
-
order_id: (_order$
|
|
2200
|
-
external_sale_number: (
|
|
2204
|
+
order_id: (_order$order_id2 = order.order_id) !== null && _order$order_id2 !== void 0 ? _order$order_id2 : null,
|
|
2205
|
+
external_sale_number: (_external_sale_number2 = order.external_sale_number) !== null && _external_sale_number2 !== void 0 ? _external_sale_number2 : null,
|
|
2201
2206
|
shop_order_number: (_shop_order_number = order.shop_order_number) !== null && _shop_order_number !== void 0 ? _shop_order_number : null,
|
|
2202
2207
|
shop_full_order_number: (_shop_full_order_numb = order.shop_full_order_number) !== null && _shop_full_order_numb !== void 0 ? _shop_full_order_numb : null,
|
|
2203
2208
|
need_sync: (_order$need_sync = order.need_sync) !== null && _order$need_sync !== void 0 ? _order$need_sync : null
|
|
@@ -2222,24 +2227,23 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2222
2227
|
value: function compactOrderListByIdentity(orders, source) {
|
|
2223
2228
|
var list = [];
|
|
2224
2229
|
var removedCount = 0;
|
|
2225
|
-
var
|
|
2226
|
-
|
|
2230
|
+
var _iterator22 = _createForOfIteratorHelper(orders),
|
|
2231
|
+
_step22;
|
|
2227
2232
|
try {
|
|
2228
|
-
for (
|
|
2229
|
-
var order =
|
|
2230
|
-
var
|
|
2231
|
-
var matchIndex = this.findOrderIndexByIdentity(list, normalizedOrder);
|
|
2233
|
+
for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
|
|
2234
|
+
var order = _step22.value;
|
|
2235
|
+
var matchIndex = this.findOrderIndexByIdentity(list, order);
|
|
2232
2236
|
if (matchIndex < 0) {
|
|
2233
|
-
list.push(
|
|
2237
|
+
list.push(order);
|
|
2234
2238
|
continue;
|
|
2235
2239
|
}
|
|
2236
|
-
list[matchIndex] = this.mergeOrderRecords(list[matchIndex],
|
|
2240
|
+
list[matchIndex] = this.mergeOrderRecords(list[matchIndex], order);
|
|
2237
2241
|
removedCount += 1;
|
|
2238
2242
|
}
|
|
2239
2243
|
} catch (err) {
|
|
2240
|
-
|
|
2244
|
+
_iterator22.e(err);
|
|
2241
2245
|
} finally {
|
|
2242
|
-
|
|
2246
|
+
_iterator22.f();
|
|
2243
2247
|
}
|
|
2244
2248
|
if (removedCount > 0) {
|
|
2245
2249
|
this.logWarning('订单列表重复项已压缩', {
|
|
@@ -2338,7 +2342,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2338
2342
|
key: "loadOrdersFromSQLite",
|
|
2339
2343
|
value: function () {
|
|
2340
2344
|
var _loadOrdersFromSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {
|
|
2341
|
-
var _this18 = this;
|
|
2342
2345
|
var orders;
|
|
2343
2346
|
return _regeneratorRuntime().wrap(function _callee17$(_context17) {
|
|
2344
2347
|
while (1) switch (_context17.prev = _context17.next) {
|
|
@@ -2354,9 +2357,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2354
2357
|
return this.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
2355
2358
|
case 5:
|
|
2356
2359
|
orders = _context17.sent;
|
|
2357
|
-
return _context17.abrupt("return",
|
|
2358
|
-
return _this18.normalizeOrderCollectionsForIngress(order, 'loadOrdersFromSQLite');
|
|
2359
|
-
}));
|
|
2360
|
+
return _context17.abrupt("return", orders || []);
|
|
2360
2361
|
case 9:
|
|
2361
2362
|
_context17.prev = 9;
|
|
2362
2363
|
_context17.t0 = _context17["catch"](2);
|
|
@@ -2380,25 +2381,23 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2380
2381
|
}, {
|
|
2381
2382
|
key: "normalizeRemoteSyncedOrder",
|
|
2382
2383
|
value: function normalizeRemoteSyncedOrder(order) {
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
return _objectSpread(_objectSpread({}, normalizedOrder), {}, {
|
|
2384
|
+
if (this.isPendingSyncOrder(order)) return order;
|
|
2385
|
+
return _objectSpread(_objectSpread({}, order), {}, {
|
|
2386
2386
|
need_sync: 0
|
|
2387
2387
|
});
|
|
2388
2388
|
}
|
|
2389
2389
|
}, {
|
|
2390
2390
|
key: "mergeRemoteSnapshotWithPendingOrders",
|
|
2391
2391
|
value: function mergeRemoteSnapshotWithPendingOrders(remoteOrders, existingOrders) {
|
|
2392
|
-
var
|
|
2392
|
+
var _this17 = this;
|
|
2393
2393
|
var merged = remoteOrders.map(function (order) {
|
|
2394
|
-
return
|
|
2394
|
+
return _this17.normalizeRemoteSyncedOrder(order);
|
|
2395
2395
|
});
|
|
2396
|
-
var
|
|
2397
|
-
|
|
2396
|
+
var _iterator23 = _createForOfIteratorHelper(existingOrders),
|
|
2397
|
+
_step23;
|
|
2398
2398
|
try {
|
|
2399
|
-
for (
|
|
2400
|
-
var
|
|
2401
|
-
var order = this.normalizeOrderCollectionsForIngress(rawOrder, 'mergeRemoteSnapshotWithPendingOrders.existingSQLite');
|
|
2399
|
+
for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
|
|
2400
|
+
var order = _step23.value;
|
|
2402
2401
|
if (!this.isPendingSyncOrder(order)) continue;
|
|
2403
2402
|
var matchIndex = this.findOrderIndexByIdentity(merged, order);
|
|
2404
2403
|
if (matchIndex >= 0) {
|
|
@@ -2409,9 +2408,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2409
2408
|
merged.push(order);
|
|
2410
2409
|
}
|
|
2411
2410
|
} catch (err) {
|
|
2412
|
-
|
|
2411
|
+
_iterator23.e(err);
|
|
2413
2412
|
} finally {
|
|
2414
|
-
|
|
2413
|
+
_iterator23.f();
|
|
2415
2414
|
}
|
|
2416
2415
|
return this.compactOrderListByIdentity(merged, 'mergeRemoteSnapshotWithPendingOrders').list;
|
|
2417
2416
|
}
|
|
@@ -2461,7 +2460,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2461
2460
|
key: "patchOrdersInSQLite",
|
|
2462
2461
|
value: (function () {
|
|
2463
2462
|
var _patchOrdersInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20(orders, source) {
|
|
2464
|
-
var
|
|
2463
|
+
var _this18 = this;
|
|
2465
2464
|
var mergeActions,
|
|
2466
2465
|
ordersSnapshot,
|
|
2467
2466
|
_this$filterRedundant2,
|
|
@@ -2479,10 +2478,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2479
2478
|
}
|
|
2480
2479
|
return _context20.abrupt("return");
|
|
2481
2480
|
case 3:
|
|
2482
|
-
ordersSnapshot = cloneDeep(orders).
|
|
2483
|
-
return
|
|
2484
|
-
}).filter(function (order) {
|
|
2485
|
-
return _this20.getOrderStorageKey(order);
|
|
2481
|
+
ordersSnapshot = cloneDeep(orders).filter(function (order) {
|
|
2482
|
+
return _this18.getOrderStorageKey(order);
|
|
2486
2483
|
});
|
|
2487
2484
|
if (!(ordersSnapshot.length === 0)) {
|
|
2488
2485
|
_context20.next = 6;
|
|
@@ -2507,54 +2504,54 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2507
2504
|
_context20.prev = 12;
|
|
2508
2505
|
_context20.next = 15;
|
|
2509
2506
|
return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {
|
|
2510
|
-
var writeMethod,
|
|
2507
|
+
var writeMethod, _iterator24, _step24, order;
|
|
2511
2508
|
return _regeneratorRuntime().wrap(function _callee19$(_context19) {
|
|
2512
2509
|
while (1) switch (_context19.prev = _context19.next) {
|
|
2513
2510
|
case 0:
|
|
2514
2511
|
writeMethod = 'none';
|
|
2515
|
-
|
|
2512
|
+
_this18.logInfo('patchOrdersInSQLite-开始', {
|
|
2516
2513
|
source: source,
|
|
2517
2514
|
count: compactedToWrite.length,
|
|
2518
2515
|
dedupedCount: skipped.length
|
|
2519
2516
|
});
|
|
2520
|
-
if (!(typeof
|
|
2517
|
+
if (!(typeof _this18.dbManager.bulkUpdate === 'function')) {
|
|
2521
2518
|
_context19.next = 8;
|
|
2522
2519
|
break;
|
|
2523
2520
|
}
|
|
2524
2521
|
writeMethod = 'bulkUpdate';
|
|
2525
2522
|
_context19.next = 6;
|
|
2526
|
-
return
|
|
2523
|
+
return _this18.dbManager.bulkUpdate(INDEXDB_STORE_NAME, compactedToWrite);
|
|
2527
2524
|
case 6:
|
|
2528
2525
|
_context19.next = 33;
|
|
2529
2526
|
break;
|
|
2530
2527
|
case 8:
|
|
2531
|
-
if (!(typeof
|
|
2528
|
+
if (!(typeof _this18.dbManager.bulkAdd === 'function')) {
|
|
2532
2529
|
_context19.next = 14;
|
|
2533
2530
|
break;
|
|
2534
2531
|
}
|
|
2535
2532
|
writeMethod = 'bulkAdd';
|
|
2536
2533
|
_context19.next = 12;
|
|
2537
|
-
return
|
|
2534
|
+
return _this18.dbManager.bulkAdd(INDEXDB_STORE_NAME, compactedToWrite);
|
|
2538
2535
|
case 12:
|
|
2539
2536
|
_context19.next = 33;
|
|
2540
2537
|
break;
|
|
2541
2538
|
case 14:
|
|
2542
|
-
if (!(typeof
|
|
2539
|
+
if (!(typeof _this18.dbManager.update === 'function')) {
|
|
2543
2540
|
_context19.next = 33;
|
|
2544
2541
|
break;
|
|
2545
2542
|
}
|
|
2546
2543
|
writeMethod = 'update';
|
|
2547
|
-
|
|
2544
|
+
_iterator24 = _createForOfIteratorHelper(compactedToWrite);
|
|
2548
2545
|
_context19.prev = 17;
|
|
2549
|
-
|
|
2546
|
+
_iterator24.s();
|
|
2550
2547
|
case 19:
|
|
2551
|
-
if ((
|
|
2548
|
+
if ((_step24 = _iterator24.n()).done) {
|
|
2552
2549
|
_context19.next = 25;
|
|
2553
2550
|
break;
|
|
2554
2551
|
}
|
|
2555
|
-
order =
|
|
2552
|
+
order = _step24.value;
|
|
2556
2553
|
_context19.next = 23;
|
|
2557
|
-
return
|
|
2554
|
+
return _this18.dbManager.update(INDEXDB_STORE_NAME, order);
|
|
2558
2555
|
case 23:
|
|
2559
2556
|
_context19.next = 19;
|
|
2560
2557
|
break;
|
|
@@ -2564,14 +2561,14 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2564
2561
|
case 27:
|
|
2565
2562
|
_context19.prev = 27;
|
|
2566
2563
|
_context19.t0 = _context19["catch"](17);
|
|
2567
|
-
|
|
2564
|
+
_iterator24.e(_context19.t0);
|
|
2568
2565
|
case 30:
|
|
2569
2566
|
_context19.prev = 30;
|
|
2570
|
-
|
|
2567
|
+
_iterator24.f();
|
|
2571
2568
|
return _context19.finish(30);
|
|
2572
2569
|
case 33:
|
|
2573
|
-
|
|
2574
|
-
|
|
2570
|
+
_this18.recordRecentSqliteWrite(source, compactedToWrite);
|
|
2571
|
+
_this18.logInfo('patchOrdersInSQLite-完成', {
|
|
2575
2572
|
source: source,
|
|
2576
2573
|
count: compactedToWrite.length,
|
|
2577
2574
|
writeMethod: writeMethod,
|
|
@@ -2615,7 +2612,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2615
2612
|
key: "updateOrderInSQLite",
|
|
2616
2613
|
value: (function () {
|
|
2617
2614
|
var _updateOrderInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(order, source) {
|
|
2618
|
-
var
|
|
2615
|
+
var _this19 = this;
|
|
2619
2616
|
var orderSnapshot, _orderSnapshot$order_3;
|
|
2620
2617
|
return _regeneratorRuntime().wrap(function _callee22$(_context22) {
|
|
2621
2618
|
while (1) switch (_context22.prev = _context22.next) {
|
|
@@ -2626,7 +2623,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2626
2623
|
}
|
|
2627
2624
|
return _context22.abrupt("return");
|
|
2628
2625
|
case 2:
|
|
2629
|
-
orderSnapshot =
|
|
2626
|
+
orderSnapshot = cloneDeep(order);
|
|
2630
2627
|
_context22.prev = 3;
|
|
2631
2628
|
_context22.next = 6;
|
|
2632
2629
|
return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {
|
|
@@ -2636,43 +2633,43 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2636
2633
|
while (1) switch (_context21.prev = _context21.next) {
|
|
2637
2634
|
case 0:
|
|
2638
2635
|
writeMethod = 'none';
|
|
2639
|
-
|
|
2636
|
+
_this19.logInfo('updateOrderInSQLite-开始', {
|
|
2640
2637
|
source: source,
|
|
2641
2638
|
orderId: (_orderSnapshot$order_ = orderSnapshot.order_id) !== null && _orderSnapshot$order_ !== void 0 ? _orderSnapshot$order_ : null,
|
|
2642
|
-
storageKey:
|
|
2639
|
+
storageKey: _this19.getOrderStorageKey(orderSnapshot)
|
|
2643
2640
|
});
|
|
2644
|
-
if (!(typeof
|
|
2641
|
+
if (!(typeof _this19.dbManager.update === 'function')) {
|
|
2645
2642
|
_context21.next = 8;
|
|
2646
2643
|
break;
|
|
2647
2644
|
}
|
|
2648
2645
|
writeMethod = 'update';
|
|
2649
2646
|
_context21.next = 6;
|
|
2650
|
-
return
|
|
2647
|
+
return _this19.dbManager.update(INDEXDB_STORE_NAME, orderSnapshot);
|
|
2651
2648
|
case 6:
|
|
2652
2649
|
_context21.next = 18;
|
|
2653
2650
|
break;
|
|
2654
2651
|
case 8:
|
|
2655
|
-
if (!(typeof
|
|
2652
|
+
if (!(typeof _this19.dbManager.bulkUpdate === 'function')) {
|
|
2656
2653
|
_context21.next = 14;
|
|
2657
2654
|
break;
|
|
2658
2655
|
}
|
|
2659
2656
|
writeMethod = 'bulkUpdate';
|
|
2660
2657
|
_context21.next = 12;
|
|
2661
|
-
return
|
|
2658
|
+
return _this19.dbManager.bulkUpdate(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
2662
2659
|
case 12:
|
|
2663
2660
|
_context21.next = 18;
|
|
2664
2661
|
break;
|
|
2665
2662
|
case 14:
|
|
2666
|
-
if (!(typeof
|
|
2663
|
+
if (!(typeof _this19.dbManager.bulkAdd === 'function')) {
|
|
2667
2664
|
_context21.next = 18;
|
|
2668
2665
|
break;
|
|
2669
2666
|
}
|
|
2670
2667
|
writeMethod = 'bulkAdd';
|
|
2671
2668
|
_context21.next = 18;
|
|
2672
|
-
return
|
|
2669
|
+
return _this19.dbManager.bulkAdd(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
2673
2670
|
case 18:
|
|
2674
|
-
|
|
2675
|
-
|
|
2671
|
+
_this19.recordRecentSqliteWrite(source, [orderSnapshot]);
|
|
2672
|
+
_this19.logInfo('updateOrderInSQLite-完成', {
|
|
2676
2673
|
source: source,
|
|
2677
2674
|
orderId: (_orderSnapshot$order_2 = orderSnapshot.order_id) !== null && _orderSnapshot$order_2 !== void 0 ? _orderSnapshot$order_2 : null,
|
|
2678
2675
|
writeMethod: writeMethod
|
|
@@ -2715,7 +2712,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2715
2712
|
key: "replaceOrdersSnapshotInSQLite",
|
|
2716
2713
|
value: (function () {
|
|
2717
2714
|
var _replaceOrdersSnapshotInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24(orderList, source) {
|
|
2718
|
-
var
|
|
2715
|
+
var _this20 = this;
|
|
2719
2716
|
var remoteSnapshot, mergedSnapshot;
|
|
2720
2717
|
return _regeneratorRuntime().wrap(function _callee24$(_context24) {
|
|
2721
2718
|
while (1) switch (_context24.prev = _context24.next) {
|
|
@@ -2725,14 +2722,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2725
2722
|
break;
|
|
2726
2723
|
}
|
|
2727
2724
|
return _context24.abrupt("return", this.compactOrderListByIdentity(orderList.map(function (order) {
|
|
2728
|
-
return
|
|
2725
|
+
return _this20.normalizeRemoteSyncedOrder(order);
|
|
2729
2726
|
}), "".concat(source, ".snapshotNoDb")).list);
|
|
2730
2727
|
case 2:
|
|
2731
|
-
remoteSnapshot = cloneDeep(orderList)
|
|
2732
|
-
return _this22.normalizeOrderCollectionsForIngress(order, "".concat(source, ".remoteIngress"));
|
|
2733
|
-
});
|
|
2728
|
+
remoteSnapshot = cloneDeep(orderList);
|
|
2734
2729
|
mergedSnapshot = this.compactOrderListByIdentity(remoteSnapshot.map(function (order) {
|
|
2735
|
-
return
|
|
2730
|
+
return _this20.normalizeRemoteSyncedOrder(order);
|
|
2736
2731
|
}), "".concat(source, ".remoteSnapshot")).list;
|
|
2737
2732
|
_context24.prev = 4;
|
|
2738
2733
|
_context24.next = 7;
|
|
@@ -2741,12 +2736,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2741
2736
|
return _regeneratorRuntime().wrap(function _callee23$(_context23) {
|
|
2742
2737
|
while (1) switch (_context23.prev = _context23.next) {
|
|
2743
2738
|
case 0:
|
|
2744
|
-
if (!(typeof
|
|
2739
|
+
if (!(typeof _this20.dbManager.getAll === 'function')) {
|
|
2745
2740
|
_context23.next = 6;
|
|
2746
2741
|
break;
|
|
2747
2742
|
}
|
|
2748
2743
|
_context23.next = 3;
|
|
2749
|
-
return
|
|
2744
|
+
return _this20.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
2750
2745
|
case 3:
|
|
2751
2746
|
_context23.t0 = _context23.sent;
|
|
2752
2747
|
_context23.next = 7;
|
|
@@ -2755,18 +2750,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2755
2750
|
_context23.t0 = [];
|
|
2756
2751
|
case 7:
|
|
2757
2752
|
existingOrders = _context23.t0;
|
|
2758
|
-
orderListSnapshot =
|
|
2759
|
-
mergedSnapshot =
|
|
2760
|
-
|
|
2753
|
+
orderListSnapshot = _this20.mergeRemoteSnapshotWithPendingOrders(remoteSnapshot, existingOrders || []);
|
|
2754
|
+
mergedSnapshot = _this20.compactOrderListByIdentity(orderListSnapshot, "".concat(source, ".sqliteSnapshot")).list;
|
|
2755
|
+
_this20.logInfo('replaceOrdersSnapshotInSQLite-开始', {
|
|
2761
2756
|
source: source,
|
|
2762
2757
|
count: mergedSnapshot.length,
|
|
2763
2758
|
remoteCount: remoteSnapshot.length,
|
|
2764
2759
|
preservedPendingCount: mergedSnapshot.length - remoteSnapshot.length
|
|
2765
2760
|
});
|
|
2766
2761
|
_context23.next = 13;
|
|
2767
|
-
return
|
|
2762
|
+
return _this20.dbManager.clear(INDEXDB_STORE_NAME);
|
|
2768
2763
|
case 13:
|
|
2769
|
-
|
|
2764
|
+
_this20.logInfo('replaceOrdersSnapshotInSQLite-clear完成', {
|
|
2770
2765
|
count: mergedSnapshot.length
|
|
2771
2766
|
});
|
|
2772
2767
|
if (!(mergedSnapshot.length === 0)) {
|
|
@@ -2776,10 +2771,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2776
2771
|
return _context23.abrupt("return");
|
|
2777
2772
|
case 16:
|
|
2778
2773
|
_context23.next = 18;
|
|
2779
|
-
return
|
|
2774
|
+
return _this20.dbManager.bulkAdd(INDEXDB_STORE_NAME, mergedSnapshot);
|
|
2780
2775
|
case 18:
|
|
2781
|
-
|
|
2782
|
-
|
|
2776
|
+
_this20.recordRecentSqliteWrite(source, mergedSnapshot);
|
|
2777
|
+
_this20.logInfo('replaceOrdersSnapshotInSQLite-bulkAdd完成', {
|
|
2783
2778
|
source: source,
|
|
2784
2779
|
count: mergedSnapshot.length
|
|
2785
2780
|
});
|
|
@@ -2823,7 +2818,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2823
2818
|
key: "clear",
|
|
2824
2819
|
value: (function () {
|
|
2825
2820
|
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
|
|
2826
|
-
var
|
|
2821
|
+
var _this21 = this;
|
|
2827
2822
|
return _regeneratorRuntime().wrap(function _callee26$(_context26) {
|
|
2828
2823
|
while (1) switch (_context26.prev = _context26.next) {
|
|
2829
2824
|
case 0:
|
|
@@ -2839,7 +2834,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2839
2834
|
while (1) switch (_context25.prev = _context25.next) {
|
|
2840
2835
|
case 0:
|
|
2841
2836
|
_context25.next = 2;
|
|
2842
|
-
return
|
|
2837
|
+
return _this21.dbManager.clear(INDEXDB_STORE_NAME);
|
|
2843
2838
|
case 2:
|
|
2844
2839
|
case "end":
|
|
2845
2840
|
return _context25.stop();
|