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