@pisell/pisellos 2.2.259 → 2.2.260

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.
Files changed (103) hide show
  1. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +49 -0
  2. package/dist/model/strategy/adapter/dataVariant/adapter.js +152 -0
  3. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +87 -0
  4. package/dist/model/strategy/adapter/dataVariant/evaluator.js +755 -0
  5. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
  6. package/dist/model/strategy/adapter/dataVariant/examples.js +282 -0
  7. package/dist/model/strategy/adapter/dataVariant/index.d.ts +4 -0
  8. package/dist/model/strategy/adapter/dataVariant/index.js +4 -0
  9. package/dist/model/strategy/adapter/dataVariant/type.d.ts +146 -0
  10. package/dist/model/strategy/adapter/dataVariant/type.js +54 -0
  11. package/dist/model/strategy/adapter/index.d.ts +4 -0
  12. package/dist/model/strategy/adapter/index.js +5 -1
  13. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +13 -17
  14. package/dist/modules/Order/index.d.ts +1 -32
  15. package/dist/modules/Order/index.js +288 -615
  16. package/dist/modules/Order/types.d.ts +2 -20
  17. package/dist/modules/Order/utils.d.ts +0 -4
  18. package/dist/modules/Order/utils.js +28 -114
  19. package/dist/modules/Product/index.d.ts +1 -1
  20. package/dist/modules/Product/types.d.ts +22 -0
  21. package/dist/modules/ProductList/index.d.ts +1 -1
  22. package/dist/modules/ProductList/index.js +4 -2
  23. package/dist/modules/ProductList/types.d.ts +2 -0
  24. package/dist/modules/Rules/index.d.ts +3 -3
  25. package/dist/modules/Rules/index.js +3 -8
  26. package/dist/modules/Rules/types.d.ts +1 -2
  27. package/dist/modules/SalesSummary/index.d.ts +3 -7
  28. package/dist/modules/SalesSummary/index.js +39 -67
  29. package/dist/modules/SalesSummary/types.d.ts +0 -1
  30. package/dist/modules/SalesSummary/utils.js +1 -2
  31. package/dist/modules/SurchargeList/index.d.ts +4 -6
  32. package/dist/modules/SurchargeList/index.js +39 -62
  33. package/dist/modules/SurchargeList/types.d.ts +2 -6
  34. package/dist/server/index.d.ts +50 -3
  35. package/dist/server/index.js +1040 -1075
  36. package/dist/server/modules/order/index.d.ts +3 -22
  37. package/dist/server/modules/order/index.js +316 -398
  38. package/dist/server/modules/products/index.d.ts +26 -7
  39. package/dist/server/modules/products/index.js +166 -76
  40. package/dist/server/modules/products/types.d.ts +14 -0
  41. package/dist/solution/BaseSales/index.d.ts +2 -22
  42. package/dist/solution/BaseSales/index.js +701 -995
  43. package/dist/solution/BaseSales/types.d.ts +0 -1
  44. package/dist/solution/BaseSales/types.js +1 -2
  45. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +3 -6
  46. package/dist/solution/BookingByStep/index.d.ts +1 -1
  47. package/dist/solution/BookingTicket/index.d.ts +0 -8
  48. package/dist/solution/BookingTicket/index.js +6 -153
  49. package/dist/solution/BookingTicket/types.d.ts +2 -0
  50. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +49 -0
  51. package/lib/model/strategy/adapter/dataVariant/adapter.js +139 -0
  52. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +87 -0
  53. package/lib/model/strategy/adapter/dataVariant/evaluator.js +564 -0
  54. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
  55. package/lib/model/strategy/adapter/dataVariant/examples.js +295 -0
  56. package/lib/model/strategy/adapter/dataVariant/index.d.ts +4 -0
  57. package/lib/model/strategy/adapter/dataVariant/index.js +38 -0
  58. package/lib/model/strategy/adapter/dataVariant/type.d.ts +146 -0
  59. package/lib/model/strategy/adapter/dataVariant/type.js +31 -0
  60. package/lib/model/strategy/adapter/index.d.ts +4 -0
  61. package/lib/model/strategy/adapter/index.js +13 -2
  62. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +1 -11
  63. package/lib/modules/Order/index.d.ts +1 -32
  64. package/lib/modules/Order/index.js +64 -402
  65. package/lib/modules/Order/types.d.ts +2 -20
  66. package/lib/modules/Order/utils.d.ts +0 -4
  67. package/lib/modules/Order/utils.js +2 -84
  68. package/lib/modules/Product/index.d.ts +1 -1
  69. package/lib/modules/Product/types.d.ts +22 -0
  70. package/lib/modules/ProductList/index.d.ts +1 -1
  71. package/lib/modules/ProductList/index.js +4 -2
  72. package/lib/modules/ProductList/types.d.ts +2 -0
  73. package/lib/modules/Rules/index.d.ts +3 -3
  74. package/lib/modules/Rules/index.js +3 -4
  75. package/lib/modules/Rules/types.d.ts +1 -2
  76. package/lib/modules/SalesSummary/index.d.ts +3 -7
  77. package/lib/modules/SalesSummary/index.js +11 -28
  78. package/lib/modules/SalesSummary/types.d.ts +0 -1
  79. package/lib/modules/SalesSummary/utils.js +0 -2
  80. package/lib/modules/SurchargeList/index.d.ts +4 -6
  81. package/lib/modules/SurchargeList/index.js +21 -41
  82. package/lib/modules/SurchargeList/types.d.ts +2 -6
  83. package/lib/server/index.d.ts +50 -3
  84. package/lib/server/index.js +215 -244
  85. package/lib/server/modules/order/index.d.ts +3 -22
  86. package/lib/server/modules/order/index.js +53 -103
  87. package/lib/server/modules/products/index.d.ts +26 -7
  88. package/lib/server/modules/products/index.js +113 -35
  89. package/lib/server/modules/products/types.d.ts +14 -0
  90. package/lib/solution/BaseSales/index.d.ts +2 -22
  91. package/lib/solution/BaseSales/index.js +60 -246
  92. package/lib/solution/BaseSales/types.d.ts +0 -1
  93. package/lib/solution/BaseSales/types.js +1 -2
  94. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +6 -6
  95. package/lib/solution/BookingByStep/index.d.ts +1 -1
  96. package/lib/solution/BookingTicket/index.d.ts +0 -8
  97. package/lib/solution/BookingTicket/index.js +0 -101
  98. package/lib/solution/BookingTicket/types.d.ts +2 -0
  99. package/package.json +1 -1
  100. package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +0 -5
  101. package/dist/modules/Order/utils/bundleDiscountHydration.js +0 -144
  102. package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +0 -5
  103. package/lib/modules/Order/utils/bundleDiscountHydration.js +0 -139
@@ -49,13 +49,6 @@ var ORDER_SILENT_REFRESH_MIN_INTERVAL_MS = 30000;
49
49
  /** 视为「业务侧刚写入」的来源,pubsub 回声可跳过 SQLite */
50
50
  var ORDER_BUSINESS_WRITE_SOURCES = new Set(['upsertOrdersFromRemote', 'upsertPendingSyncOrders', 'overwriteExistingOrder', 'markOrderSyncedByExternalSaleNumber']);
51
51
 
52
- /**
53
- * 合并热路径全表去重自检开关:默认关闭。
54
- * 开启后每次合并会额外对整张 store 做一次 O(n^2) 重复检测并告警,
55
- * 仅用于排查增量身份索引是否遗漏了重复订单,不应在生产常开。
56
- */
57
- var ORDER_MERGE_SELF_CHECK = false;
58
-
59
52
  /**
60
53
  * Order 模块 - 基础框架
61
54
  */
@@ -75,6 +68,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
75
68
  _defineProperty(_assertThisInitialized(_this), "syncTimer", void 0);
76
69
  _defineProperty(_assertThisInitialized(_this), "isProcessingSyncBatch", false);
77
70
  _defineProperty(_assertThisInitialized(_this), "isIdlePhase", true);
71
+ // Map<resource_id, OrderId[]> 资源到订单的倒排索引
72
+ _defineProperty(_assertThisInitialized(_this), "resourceIdIndex", new Map());
78
73
  _defineProperty(_assertThisInitialized(_this), "logger", void 0);
79
74
  // LoggerManager 实例
80
75
  _defineProperty(_assertThisInitialized(_this), "storage", void 0);
@@ -448,8 +443,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
448
443
  var appPlugin = this.core.getPlugin('app');
449
444
  var app = appPlugin === null || appPlugin === void 0 ? void 0 : appPlugin.getApp();
450
445
  if (app) {
446
+ var _this$store$createdAt;
451
447
  var coreData = app.data.store.getStore().getDataByModel('core');
452
- if (coreData !== null && coreData !== void 0 && coreData.core) {
448
+ if (!((_this$store$createdAt = this.store.createdAtQuery) !== null && _this$store$createdAt !== void 0 && _this$store$createdAt.sales_time_between) && coreData !== null && coreData !== void 0 && coreData.core) {
453
449
  var today = dayjs();
454
450
  if (coreData !== null && coreData !== void 0 && coreData.core.operating_day_boundary) {
455
451
  var operatingDayBoundary = coreData.core.operating_day_boundary;
@@ -778,6 +774,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
778
774
  }
779
775
  return silentRefresh;
780
776
  }())
777
+ }, {
778
+ key: "getOrdersByResourceId",
779
+ value: function getOrdersByResourceId(resourceId) {
780
+ var _this8 = this;
781
+ var ids = this.resourceIdIndex.get(String(resourceId)) || [];
782
+ return ids.map(function (id) {
783
+ return _this8.store.map.get(id);
784
+ }).filter(function (order) {
785
+ return !!order;
786
+ });
787
+ }
781
788
  }, {
782
789
  key: "normalizeOrderForMemoryList",
783
790
  value: function normalizeOrderForMemoryList(order) {
@@ -801,7 +808,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
801
808
  key: "overwriteExistingOrder",
802
809
  value: (function () {
803
810
  var _overwriteExistingOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(fresh) {
804
- var _this8 = this;
811
+ var _this9 = this;
805
812
  var orderId, key;
806
813
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
807
814
  while (1) switch (_context8.prev = _context8.next) {
@@ -835,7 +842,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
835
842
  this.store.list = this.store.list.map(function (order) {
836
843
  var id = order === null || order === void 0 ? void 0 : order.order_id;
837
844
  if (id === undefined || id === null) return order;
838
- return _this8.getIdKey(id) === key ? fresh : order;
845
+ return _this9.getIdKey(id) === key ? fresh : order;
839
846
  });
840
847
  this.syncOrdersMap();
841
848
  _context8.next = 13;
@@ -901,7 +908,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
901
908
  key: "markOrderSyncedByExternalSaleNumber",
902
909
  value: function () {
903
910
  var _markOrderSyncedByExternalSaleNumber = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(params) {
904
- var _this9 = this,
911
+ var _this10 = this,
905
912
  _existing$external_sa,
906
913
  _nextOrder$order_id;
907
914
  var externalSaleNumber, key, targetIndex, existing, nextOrder, storageKey;
@@ -922,7 +929,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
922
929
  targetIndex = this.store.list.findIndex(function (order) {
923
930
  var value = order === null || order === void 0 ? void 0 : order.external_sale_number;
924
931
  if (value === undefined || value === null || value === '') return false;
925
- return _this9.getIdKey(value) === key;
932
+ return _this10.getIdKey(value) === key;
926
933
  });
927
934
  if (!(targetIndex < 0)) {
928
935
  _context10.next = 9;
@@ -979,7 +986,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
979
986
  key: "upsertPendingSyncOrders",
980
987
  value: (function () {
981
988
  var _upsertPendingSyncOrders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(pendingOrders) {
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;
989
+ var pendingMap, memoryPendingMap, _iterator4, _step4, order, storageKey, patchedOrders, mergeActions, updatedList, _iterator5, _step5, _step5$value, _storageKey, pendingOrder, matchIndex, _iterator6, _step6, _step6$value, _storageKey2, _order;
983
990
  return _regeneratorRuntime().wrap(function _callee11$(_context11) {
984
991
  while (1) switch (_context11.prev = _context11.next) {
985
992
  case 0:
@@ -1039,82 +1046,72 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1039
1046
  });
1040
1047
  patchedOrders = _toConsumableArray(pendingMap.values());
1041
1048
  mergeActions = {};
1042
- updatedList = _toConsumableArray(this.store.list); // 与 mergeOrdersToStore 一致:基于身份键(field:value)建立索引,把「查找已存在订单」
1043
- // O(n) 线性扫描降为 O(1),整体复杂度由 O(n^2) 降为 O(n + m)。
1044
- identityKeyToIndex = new Map();
1045
- for (index = 0; index < updatedList.length; index += 1) {
1046
- _iterator5 = _createForOfIteratorHelper(this.getOrderIdentityMatchKeys(updatedList[index]));
1047
- try {
1048
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
1049
- key = _step5.value;
1050
- // 同一 key 命中多张时保留最靠前的下标,与原 findIndex「取首个匹配」一致
1051
- if (!identityKeyToIndex.has(key)) identityKeyToIndex.set(key, index);
1052
- }
1053
- } catch (err) {
1054
- _iterator5.e(err);
1055
- } finally {
1056
- _iterator5.f();
1057
- }
1058
- }
1059
- _iterator6 = _createForOfIteratorHelper(memoryPendingMap.entries());
1060
- _context11.prev = 35;
1061
- _iterator6.s();
1062
- case 37:
1063
- if ((_step6 = _iterator6.n()).done) {
1064
- _context11.next = 52;
1049
+ updatedList = _toConsumableArray(this.store.list);
1050
+ _iterator5 = _createForOfIteratorHelper(memoryPendingMap.entries());
1051
+ _context11.prev = 33;
1052
+ _iterator5.s();
1053
+ case 35:
1054
+ if ((_step5 = _iterator5.n()).done) {
1055
+ _context11.next = 46;
1065
1056
  break;
1066
1057
  }
1067
- _step6$value = _slicedToArray(_step6.value, 2), _storageKey = _step6$value[0], pendingOrder = _step6$value[1];
1068
- matchIndex = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, this.getOrderIdentityMatchKeys(pendingOrder));
1069
- if (!(matchIndex >= 0)) {
1070
- _context11.next = 46;
1058
+ _step5$value = _slicedToArray(_step5.value, 2), _storageKey = _step5$value[0], pendingOrder = _step5$value[1];
1059
+ matchIndex = this.findOrderIndexByIdentity(updatedList, pendingOrder);
1060
+ if (!(matchIndex < 0)) {
1061
+ _context11.next = 40;
1071
1062
  break;
1072
1063
  }
1073
- mergedOrder = this.mergeOrderRecords(updatedList[matchIndex], pendingOrder, {
1064
+ return _context11.abrupt("continue", 44);
1065
+ case 40:
1066
+ updatedList[matchIndex] = this.mergeOrderRecords(updatedList[matchIndex], pendingOrder, {
1074
1067
  preferIncomingProducts: true
1075
1068
  });
1076
- updatedList[matchIndex] = mergedOrder;
1077
- // 合并后身份字段可能新增(如挂单拿到 order_id),同步登记,供同批后续 pending 命中同一槽位
1078
- this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex);
1069
+ pendingMap.delete(_storageKey);
1070
+ memoryPendingMap.delete(_storageKey);
1079
1071
  mergeActions[_storageKey] = 'update';
1080
- return _context11.abrupt("continue", 50);
1081
- case 46:
1082
- insertIndex = updatedList.length;
1083
- updatedList.push(pendingOrder);
1084
- this.registerOrderIdentityKeys(identityKeyToIndex, pendingOrder, insertIndex);
1085
- mergeActions[_storageKey] = 'insert';
1086
- case 50:
1087
- _context11.next = 37;
1072
+ case 44:
1073
+ _context11.next = 35;
1088
1074
  break;
1089
- case 52:
1090
- _context11.next = 57;
1075
+ case 46:
1076
+ _context11.next = 51;
1091
1077
  break;
1078
+ case 48:
1079
+ _context11.prev = 48;
1080
+ _context11.t1 = _context11["catch"](33);
1081
+ _iterator5.e(_context11.t1);
1082
+ case 51:
1083
+ _context11.prev = 51;
1084
+ _iterator5.f();
1085
+ return _context11.finish(51);
1092
1086
  case 54:
1093
- _context11.prev = 54;
1094
- _context11.t1 = _context11["catch"](35);
1095
- _iterator6.e(_context11.t1);
1096
- case 57:
1097
- _context11.prev = 57;
1098
- _iterator6.f();
1099
- return _context11.finish(57);
1100
- case 60:
1101
- // 增量索引已保证 store 去重不变量,无需再对全表做 O(n^2) 压缩;仅自检开关开启时兜底。
1102
- this.store.list = this.runOrderStoreSelfCheck(updatedList, 'upsertPendingSyncOrders.store');
1087
+ _iterator6 = _createForOfIteratorHelper(memoryPendingMap.entries());
1088
+ try {
1089
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
1090
+ _step6$value = _slicedToArray(_step6.value, 2), _storageKey2 = _step6$value[0], _order = _step6$value[1];
1091
+ mergeActions[_storageKey2] = 'insert';
1092
+ updatedList.push(_order);
1093
+ }
1094
+ } catch (err) {
1095
+ _iterator6.e(err);
1096
+ } finally {
1097
+ _iterator6.f();
1098
+ }
1099
+ this.store.list = this.compactOrderListByIdentity(updatedList, 'upsertPendingSyncOrders.store').list;
1103
1100
  this.syncOrdersMap();
1104
- _context11.next = 64;
1101
+ _context11.next = 60;
1105
1102
  return this.patchOrdersInSQLite(patchedOrders, 'upsertPendingSyncOrders', mergeActions);
1106
- case 64:
1103
+ case 60:
1107
1104
  this.logInfo('upsertPendingSyncOrders-结束', {
1108
1105
  count: patchedOrders.length,
1109
1106
  storeOrderCountAfter: this.store.list.length
1110
1107
  });
1111
- _context11.next = 67;
1108
+ _context11.next = 63;
1112
1109
  return this.emitOrdersChanged(patchedOrders, 'upsertPendingSyncOrders');
1113
- case 67:
1110
+ case 63:
1114
1111
  case "end":
1115
1112
  return _context11.stop();
1116
1113
  }
1117
- }, _callee11, this, [[6, 19, 22, 25], [35, 54, 57, 60]]);
1114
+ }, _callee11, this, [[6, 19, 22, 25], [33, 48, 51, 54]]);
1118
1115
  }));
1119
1116
  function upsertPendingSyncOrders(_x7) {
1120
1117
  return _upsertPendingSyncOrders.apply(this, arguments);
@@ -1191,15 +1188,39 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1191
1188
  }, {
1192
1189
  key: "syncOrdersMap",
1193
1190
  value: function syncOrdersMap() {
1191
+ var _this11 = this;
1194
1192
  this.store.map.clear();
1193
+ this.resourceIdIndex.clear();
1195
1194
  var _iterator7 = _createForOfIteratorHelper(this.store.list),
1196
1195
  _step7;
1197
1196
  try {
1198
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
1197
+ var _loop = function _loop() {
1199
1198
  var order = _step7.value;
1200
- var primaryIdentity = this.getOrderMapKey(order);
1201
- if (!primaryIdentity) continue;
1202
- this.store.map.set(primaryIdentity, order);
1199
+ var primaryIdentity = _this11.getOrderMapKey(order);
1200
+ if (!primaryIdentity) return 1; // continue
1201
+ _this11.store.map.set(primaryIdentity, order);
1202
+ var resourceIds = _this11.extractResourceIds(order);
1203
+ var _iterator8 = _createForOfIteratorHelper(resourceIds),
1204
+ _step8;
1205
+ try {
1206
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
1207
+ var resourceId = _step8.value;
1208
+ var key = String(resourceId);
1209
+ var existing = _this11.resourceIdIndex.get(key) || [];
1210
+ if (existing.some(function (eid) {
1211
+ return _this11.getIdKey(eid) === primaryIdentity;
1212
+ })) continue;
1213
+ existing.push(primaryIdentity);
1214
+ _this11.resourceIdIndex.set(key, existing);
1215
+ }
1216
+ } catch (err) {
1217
+ _iterator8.e(err);
1218
+ } finally {
1219
+ _iterator8.f();
1220
+ }
1221
+ };
1222
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
1223
+ if (_loop()) continue;
1203
1224
  }
1204
1225
  } catch (err) {
1205
1226
  _iterator7.e(err);
@@ -1228,7 +1249,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1228
1249
  }, {
1229
1250
  key: "getOrderIdentityEntries",
1230
1251
  value: function getOrderIdentityEntries(order) {
1231
- var _this10 = this;
1252
+ var _this12 = this;
1232
1253
  if (!order) return [];
1233
1254
  var record = order;
1234
1255
  var candidates = [{
@@ -1245,10 +1266,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1245
1266
  value: record.shop_order_number
1246
1267
  }];
1247
1268
  var entries = [];
1248
- var _loop = function _loop() {
1269
+ var _loop2 = function _loop2() {
1249
1270
  var candidate = _candidates[_i];
1250
- if (_this10.isBlankIdentityValue(candidate.value)) return 0; // continue
1251
- var key = _this10.getIdKey(candidate.value);
1271
+ if (_this12.isBlankIdentityValue(candidate.value)) return 0; // continue
1272
+ var key = _this12.getIdKey(candidate.value);
1252
1273
  if (entries.some(function (entry) {
1253
1274
  return entry.field === candidate.field && entry.key === key;
1254
1275
  })) return 0; // continue
@@ -1259,7 +1280,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1259
1280
  },
1260
1281
  _ret;
1261
1282
  for (var _i = 0, _candidates = candidates; _i < _candidates.length; _i++) {
1262
- _ret = _loop();
1283
+ _ret = _loop2();
1263
1284
  if (_ret === 0) continue;
1264
1285
  }
1265
1286
  return entries;
@@ -1268,20 +1289,39 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1268
1289
  key: "getOrderIdentityKeys",
1269
1290
  value: function getOrderIdentityKeys(order) {
1270
1291
  var keys = [];
1271
- var _iterator8 = _createForOfIteratorHelper(this.getOrderIdentityEntries(order)),
1272
- _step8;
1292
+ var _iterator9 = _createForOfIteratorHelper(this.getOrderIdentityEntries(order)),
1293
+ _step9;
1273
1294
  try {
1274
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
1275
- var entry = _step8.value;
1295
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
1296
+ var entry = _step9.value;
1276
1297
  if (!keys.includes(entry.key)) keys.push(entry.key);
1277
1298
  }
1278
1299
  } catch (err) {
1279
- _iterator8.e(err);
1300
+ _iterator9.e(err);
1280
1301
  } finally {
1281
- _iterator8.f();
1302
+ _iterator9.f();
1282
1303
  }
1283
1304
  return keys;
1284
1305
  }
1306
+ }, {
1307
+ key: "extractResourceIds",
1308
+ value: function extractResourceIds(order) {
1309
+ var ids = new Set();
1310
+ var visitResources = function visitResources(resources) {
1311
+ if (!Array.isArray(resources)) return;
1312
+ resources.forEach(function (resource) {
1313
+ var rid = resource === null || resource === void 0 ? void 0 : resource.relation_id;
1314
+ if (rid !== undefined && rid !== null && rid !== '') ids.add(String(rid));
1315
+ if (Array.isArray(resource === null || resource === void 0 ? void 0 : resource.children)) visitResources(resource.children);
1316
+ });
1317
+ };
1318
+ if (Array.isArray(order === null || order === void 0 ? void 0 : order.bookings)) {
1319
+ order.bookings.forEach(function (booking) {
1320
+ return visitResources((booking === null || booking === void 0 ? void 0 : booking.resources) || []);
1321
+ });
1322
+ }
1323
+ return _toConsumableArray(ids);
1324
+ }
1285
1325
  }, {
1286
1326
  key: "getOrderDateKey",
1287
1327
  value: function getOrderDateKey(order) {
@@ -1315,7 +1355,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1315
1355
  }, {
1316
1356
  key: "setupOrderSync",
1317
1357
  value: function setupOrderSync() {
1318
- var _this11 = this;
1358
+ var _this13 = this;
1319
1359
  if (!this.orderDataSource) return;
1320
1360
  this.orderDataSource.run({
1321
1361
  pubsub: {
@@ -1323,22 +1363,22 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1323
1363
  var _message$id, _message$order_id, _message$type;
1324
1364
  console.log('orderDataSource', res);
1325
1365
  var pubsubReceivedAt = Date.now();
1326
- var message = _this11.normalizeOrderSyncMessage(res);
1366
+ var message = _this13.normalizeOrderSyncMessage(res);
1327
1367
  if (!message) return;
1328
1368
  message._pubsubReceivedAt = pubsubReceivedAt;
1329
- _this11.pendingSyncMessages.push(message);
1330
- var throttleMs = _this11.getOrderSyncThrottleMs();
1331
- var routeInfo = _this11.resolveSyncMessageRoute(message);
1332
- _this11.logInfo('orderSync-收到消息并入队', {
1369
+ _this13.pendingSyncMessages.push(message);
1370
+ var throttleMs = _this13.getOrderSyncThrottleMs();
1371
+ var routeInfo = _this13.resolveSyncMessageRoute(message);
1372
+ _this13.logInfo('orderSync-收到消息并入队', {
1333
1373
  id: (_message$id = message.id) !== null && _message$id !== void 0 ? _message$id : null,
1334
1374
  order_id: (_message$order_id = message.order_id) !== null && _message$order_id !== void 0 ? _message$order_id : null,
1335
1375
  type: (_message$type = message.type) !== null && _message$type !== void 0 ? _message$type : null,
1336
- pendingCount: _this11.pendingSyncMessages.length,
1376
+ pendingCount: _this13.pendingSyncMessages.length,
1337
1377
  throttleMs: throttleMs,
1338
1378
  pubsubReceivedAt: new Date(pubsubReceivedAt).toISOString(),
1339
1379
  fullMessage: JSON.stringify(message)
1340
1380
  });
1341
- _this11.scheduleOrderSyncThrottle();
1381
+ _this13.scheduleOrderSyncThrottle();
1342
1382
  }
1343
1383
  }
1344
1384
  }).catch(function () {
@@ -1355,7 +1395,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1355
1395
  }, {
1356
1396
  key: "scheduleOrderSyncThrottle",
1357
1397
  value: function scheduleOrderSyncThrottle() {
1358
- var _this12 = this;
1398
+ var _this14 = this;
1359
1399
  if (this.isProcessingSyncBatch) return;
1360
1400
  if (this.isIdlePhase) {
1361
1401
  this.isIdlePhase = false;
@@ -1366,8 +1406,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1366
1406
  if (this.syncTimer) return;
1367
1407
  var throttleMs = this.getOrderSyncThrottleMs();
1368
1408
  this.syncTimer = setTimeout(function () {
1369
- _this12.syncTimer = undefined;
1370
- void _this12.flushOrderSyncMessagesByThrottle();
1409
+ _this14.syncTimer = undefined;
1410
+ void _this14.flushOrderSyncMessagesByThrottle();
1371
1411
  }, throttleMs);
1372
1412
  }
1373
1413
 
@@ -1435,7 +1475,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1435
1475
  key: "processOrderSyncMessages",
1436
1476
  value: (function () {
1437
1477
  var _processOrderSyncMessages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
1438
- var _this13 = this;
1478
+ var _this15 = this;
1439
1479
  var messages, batchProcessStartAt, earliestReceivedAt, upsertOrders, refreshIds, uniqueRefreshIds, upsertList, _this$filterRedundant, toFetch, skipped, freshOrders, batchProcessEndAt;
1440
1480
  return _regeneratorRuntime().wrap(function _callee14$(_context14) {
1441
1481
  while (1) switch (_context14.prev = _context14.next) {
@@ -1462,13 +1502,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1462
1502
  upsertOrders = new Map();
1463
1503
  refreshIds = [];
1464
1504
  messages.forEach(function (msg, msgIndex) {
1465
- var routeInfo = _this13.resolveSyncMessageRoute(msg);
1505
+ var routeInfo = _this15.resolveSyncMessageRoute(msg);
1466
1506
  var hasBatchIds = routeInfo.hasBatchIds;
1467
1507
  var singleId = routeInfo.singleId;
1468
1508
  var hasSingleId = routeInfo.hasSingleId;
1469
- var normalizedBody = _this13.normalizeOrderSyncPayload(msg.body || msg.data);
1509
+ var normalizedBody = _this15.normalizeOrderSyncPayload(msg.body || msg.data);
1470
1510
  if (routeInfo.route === 'bodyUpsert' && normalizedBody) {
1471
- upsertOrders.set(_this13.getIdKey(normalizedBody.order_id), normalizedBody);
1511
+ upsertOrders.set(_this15.getIdKey(normalizedBody.order_id), normalizedBody);
1472
1512
  return;
1473
1513
  }
1474
1514
  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,137 +1646,94 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1606
1646
  key: "mergeOrdersToStore",
1607
1647
  value: (function () {
1608
1648
  var _mergeOrdersToStore = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(freshOrders, source) {
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;
1649
+ var normalizedFreshOrders, _iterator10, _step10, order, id, uniqueFreshOrders, uniqueFreshCount, patchedOrders, mergeActions, updatedList, _iterator11, _step11, fresh, matchIndex, storageKey, mergeKey, mergedOrder, insertCount, updateCount;
1610
1650
  return _regeneratorRuntime().wrap(function _callee16$(_context16) {
1611
1651
  while (1) switch (_context16.prev = _context16.next) {
1612
1652
  case 0:
1613
- storeOrderCountBefore = this.store.list.length;
1614
1653
  this.logInfo('mergeOrdersToStore-开始', {
1615
1654
  freshOrderCount: freshOrders.length,
1616
- storeOrderCountBefore: storeOrderCountBefore,
1655
+ storeOrderCountBefore: this.store.list.length,
1617
1656
  source: source
1618
1657
  });
1619
1658
  this.logDuplicateOrders("".concat(source, ".beforeMerge"), this.store.list);
1620
1659
  normalizedFreshOrders = [];
1621
- _iterator9 = _createForOfIteratorHelper(freshOrders);
1622
- _context16.prev = 5;
1623
- _iterator9.s();
1624
- case 7:
1625
- if ((_step9 = _iterator9.n()).done) {
1626
- _context16.next = 15;
1660
+ _iterator10 = _createForOfIteratorHelper(freshOrders);
1661
+ _context16.prev = 4;
1662
+ _iterator10.s();
1663
+ case 6:
1664
+ if ((_step10 = _iterator10.n()).done) {
1665
+ _context16.next = 14;
1627
1666
  break;
1628
1667
  }
1629
- order = _step9.value;
1668
+ order = _step10.value;
1630
1669
  id = order === null || order === void 0 ? void 0 : order.order_id;
1631
1670
  if (!(id === undefined || id === null)) {
1632
- _context16.next = 12;
1671
+ _context16.next = 11;
1633
1672
  break;
1634
1673
  }
1635
- return _context16.abrupt("continue", 13);
1636
- case 12:
1674
+ return _context16.abrupt("continue", 12);
1675
+ case 11:
1637
1676
  normalizedFreshOrders.push(this.normalizeRemoteSyncedOrder(order));
1638
- case 13:
1639
- _context16.next = 7;
1677
+ case 12:
1678
+ _context16.next = 6;
1640
1679
  break;
1641
- case 15:
1642
- _context16.next = 20;
1680
+ case 14:
1681
+ _context16.next = 19;
1643
1682
  break;
1644
- case 17:
1645
- _context16.prev = 17;
1646
- _context16.t0 = _context16["catch"](5);
1647
- _iterator9.e(_context16.t0);
1648
- case 20:
1649
- _context16.prev = 20;
1650
- _iterator9.f();
1651
- return _context16.finish(20);
1652
- case 23:
1653
- // 先对本批新单做去重(批内规模 m 很小),保证每条 fresh 身份唯一
1683
+ case 16:
1684
+ _context16.prev = 16;
1685
+ _context16.t0 = _context16["catch"](4);
1686
+ _iterator10.e(_context16.t0);
1687
+ case 19:
1688
+ _context16.prev = 19;
1689
+ _iterator10.f();
1690
+ return _context16.finish(19);
1691
+ case 22:
1654
1692
  uniqueFreshOrders = this.compactOrderListByIdentity(normalizedFreshOrders, "".concat(source, ".incoming")).list;
1655
1693
  uniqueFreshCount = uniqueFreshOrders.length;
1656
1694
  patchedOrders = [];
1657
1695
  mergeActions = {};
1658
- updatedList = _toConsumableArray(this.store.list); // 基于身份键(field:value)建立索引,把「查找已存在订单」从 O(n) 线性扫描降为 O(1),
1659
- // 整体合并复杂度由 O(n^2) 降为 O(n + m)。索引语义与 doOrdersShareIdentity 完全一致:
1660
- // 任一身份字段(order_id/external_sale_number/order_number/shop_order_number)同值即同一单。
1661
- identityKeyToIndex = new Map();
1662
- for (index = 0; index < updatedList.length; index += 1) {
1663
- identityKeys = this.getOrderIdentityMatchKeys(updatedList[index]);
1664
- _iterator10 = _createForOfIteratorHelper(identityKeys);
1665
- try {
1666
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
1667
- key = _step10.value;
1668
- // 同一 key 命中多张时保留最靠前的下标,与原 findIndex「取首个匹配」一致
1669
- if (!identityKeyToIndex.has(key)) identityKeyToIndex.set(key, index);
1670
- }
1671
- } catch (err) {
1672
- _iterator10.e(err);
1673
- } finally {
1674
- _iterator10.f();
1675
- }
1676
- }
1696
+ updatedList = _toConsumableArray(this.store.list);
1677
1697
  _iterator11 = _createForOfIteratorHelper(uniqueFreshOrders);
1678
- _context16.prev = 31;
1698
+ _context16.prev = 28;
1679
1699
  _iterator11.s();
1680
- case 33:
1700
+ case 30:
1681
1701
  if ((_step11 = _iterator11.n()).done) {
1682
- _context16.next = 57;
1702
+ _context16.next = 46;
1683
1703
  break;
1684
1704
  }
1685
1705
  fresh = _step11.value;
1686
- freshIdentityKeys = this.getOrderIdentityMatchKeys(fresh);
1687
- matchIndex = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, freshIdentityKeys);
1706
+ matchIndex = this.findOrderIndexByIdentity(updatedList, fresh);
1688
1707
  storageKey = this.getOrderStorageKey(fresh);
1689
1708
  mergeKey = storageKey || (fresh.order_id !== undefined && fresh.order_id !== null ? this.getIdKey(fresh.order_id) : '');
1690
1709
  if (!(matchIndex >= 0)) {
1691
- _context16.next = 50;
1710
+ _context16.next = 41;
1692
1711
  break;
1693
1712
  }
1694
- existingOrder = updatedList[matchIndex];
1695
- if (!(this.isPendingSyncOrder(existingOrder) && this.isRemoteEchoMergeSource(source))) {
1696
- _context16.next = 44;
1697
- break;
1698
- }
1699
- this.logInfo('mergeOrdersToStore-跳过 pending 订单远端覆盖', {
1700
- source: source,
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,
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,
1703
- local_payment_status: (_existingOrder$paymen = existingOrder.payment_status) !== null && _existingOrder$paymen !== void 0 ? _existingOrder$paymen : null,
1704
- remote_payment_status: (_fresh$payment_status = fresh.payment_status) !== null && _fresh$payment_status !== void 0 ? _fresh$payment_status : null,
1705
- local_need_sync: (_existingOrder$need_s = existingOrder.need_sync) !== null && _existingOrder$need_s !== void 0 ? _existingOrder$need_s : null,
1706
- remote_need_sync: (_fresh$need_sync = fresh.need_sync) !== null && _fresh$need_sync !== void 0 ? _fresh$need_sync : null,
1707
- reason: 'protect_pending_sync_order_from_remote_echo'
1708
- });
1709
- return _context16.abrupt("continue", 55);
1710
- case 44:
1711
- mergedOrder = this.mergeOrderRecords(existingOrder, fresh);
1713
+ mergedOrder = this.mergeOrderRecords(updatedList[matchIndex], fresh);
1712
1714
  updatedList[matchIndex] = mergedOrder;
1713
- // 合并后身份字段可能新增(如挂单拿到 order_id),同步登记到索引,
1714
- // 供同批后续 fresh 命中同一槽位,避免重复插入
1715
- this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex);
1716
1715
  patchedOrders.push(mergedOrder);
1717
1716
  if (mergeKey) mergeActions[mergeKey] = 'update';
1718
- return _context16.abrupt("continue", 55);
1719
- case 50:
1720
- insertIndex = updatedList.length;
1717
+ return _context16.abrupt("continue", 44);
1718
+ case 41:
1721
1719
  updatedList.push(fresh);
1722
- this.registerOrderIdentityKeys(identityKeyToIndex, fresh, insertIndex);
1723
1720
  patchedOrders.push(fresh);
1724
1721
  if (mergeKey) mergeActions[mergeKey] = 'insert';
1725
- case 55:
1726
- _context16.next = 33;
1722
+ case 44:
1723
+ _context16.next = 30;
1727
1724
  break;
1728
- case 57:
1729
- _context16.next = 62;
1725
+ case 46:
1726
+ _context16.next = 51;
1730
1727
  break;
1731
- case 59:
1732
- _context16.prev = 59;
1733
- _context16.t1 = _context16["catch"](31);
1728
+ case 48:
1729
+ _context16.prev = 48;
1730
+ _context16.t1 = _context16["catch"](28);
1734
1731
  _iterator11.e(_context16.t1);
1735
- case 62:
1736
- _context16.prev = 62;
1732
+ case 51:
1733
+ _context16.prev = 51;
1737
1734
  _iterator11.f();
1738
- return _context16.finish(62);
1739
- case 65:
1735
+ return _context16.finish(51);
1736
+ case 54:
1740
1737
  insertCount = Object.values(mergeActions).filter(function (v) {
1741
1738
  return v === 'insert';
1742
1739
  }).length;
@@ -1748,110 +1745,30 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1748
1745
  updateCount: updateCount,
1749
1746
  storeOrderCountAfter: this.store.list.length
1750
1747
  });
1751
- // 增量索引已保证 store 去重不变量,无需再对全表做 O(n^2) 压缩;
1752
- // 仅在自检开关开启时做一次兜底校验。
1753
- this.store.list = this.runOrderStoreSelfCheck(updatedList, "".concat(source, ".store"));
1748
+ this.store.list = this.compactOrderListByIdentity(updatedList, "".concat(source, ".store")).list;
1754
1749
  this.syncOrdersMap();
1755
- _context16.next = 72;
1750
+ _context16.next = 61;
1756
1751
  return this.patchOrdersInSQLite(patchedOrders, source, mergeActions);
1757
- case 72:
1752
+ case 61:
1758
1753
  this.logInfo('mergeOrdersToStore-结束', {
1759
1754
  uniqueFreshCount: uniqueFreshCount,
1760
1755
  storeOrderCountAfter: this.store.list.length,
1761
1756
  insertCount: insertCount,
1762
1757
  updateCount: updateCount
1763
1758
  });
1764
- _context16.next = 75;
1759
+ _context16.next = 64;
1765
1760
  return this.emitOrdersChanged(patchedOrders, source);
1766
- case 75:
1761
+ case 64:
1767
1762
  case "end":
1768
1763
  return _context16.stop();
1769
1764
  }
1770
- }, _callee16, this, [[5, 17, 20, 23], [31, 59, 62, 65]]);
1765
+ }, _callee16, this, [[4, 16, 19, 22], [28, 48, 51, 54]]);
1771
1766
  }));
1772
1767
  function mergeOrdersToStore(_x9, _x10) {
1773
1768
  return _mergeOrdersToStore.apply(this, arguments);
1774
1769
  }
1775
1770
  return mergeOrdersToStore;
1776
- }()
1777
- /**
1778
- * 在身份索引中查找与目标订单共享任一身份键的已存在订单下标。
1779
- * 返回所有命中键里最小的下标,等价于原 findOrderIndexByIdentity 的「取首个匹配」语义。
1780
- *
1781
- * @example
1782
- * const idx = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, freshIdentityKeys)
1783
- */
1784
- )
1785
- }, {
1786
- key: "lookupOrderIndexByIdentityKeys",
1787
- value: function lookupOrderIndexByIdentityKeys(identityKeyToIndex, identityKeys) {
1788
- var matchIndex = -1;
1789
- var _iterator12 = _createForOfIteratorHelper(identityKeys),
1790
- _step12;
1791
- try {
1792
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
1793
- var key = _step12.value;
1794
- var index = identityKeyToIndex.get(key);
1795
- if (index === undefined) continue;
1796
- if (matchIndex < 0 || index < matchIndex) matchIndex = index;
1797
- }
1798
- } catch (err) {
1799
- _iterator12.e(err);
1800
- } finally {
1801
- _iterator12.f();
1802
- }
1803
- return matchIndex;
1804
- }
1805
- }, {
1806
- key: "isRemoteEchoMergeSource",
1807
- value: function isRemoteEchoMergeSource(source) {
1808
- return source === 'pubsub.bodyUpsert' || source === 'pubsub.httpRefresh';
1809
- }
1810
-
1811
- /**
1812
- * 将订单的全部身份键登记到索引并指向其在列表中的下标。
1813
- * 合并后订单新增的身份字段(如挂单同步后拿到 order_id)也会被登记。
1814
- *
1815
- * @example
1816
- * this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex)
1817
- */
1818
- }, {
1819
- key: "registerOrderIdentityKeys",
1820
- value: function registerOrderIdentityKeys(identityKeyToIndex, order, index) {
1821
- var identityKeys = this.getOrderIdentityMatchKeys(order);
1822
- var _iterator13 = _createForOfIteratorHelper(identityKeys),
1823
- _step13;
1824
- try {
1825
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
1826
- var key = _step13.value;
1827
- identityKeyToIndex.set(key, index);
1828
- }
1829
- } catch (err) {
1830
- _iterator13.e(err);
1831
- } finally {
1832
- _iterator13.f();
1833
- }
1834
- }
1835
-
1836
- /**
1837
- * 合并热路径去重兜底:默认直接返回原列表(增量索引已保证无重复)。
1838
- * 仅当 ORDER_MERGE_SELF_CHECK 开启时,额外做一次全表压缩并在发现残留重复时告警。
1839
- */
1840
- }, {
1841
- key: "runOrderStoreSelfCheck",
1842
- value: function runOrderStoreSelfCheck(orders, source) {
1843
- if (!ORDER_MERGE_SELF_CHECK) return orders;
1844
- var _this$compactOrderLis = this.compactOrderListByIdentity(orders, source),
1845
- list = _this$compactOrderLis.list,
1846
- removedCount = _this$compactOrderLis.removedCount;
1847
- if (removedCount > 0) {
1848
- this.logWarning('合并自检发现残留重复订单,已压缩', {
1849
- source: source,
1850
- removedCount: removedCount
1851
- });
1852
- }
1853
- return list;
1854
- }
1771
+ }())
1855
1772
  }, {
1856
1773
  key: "normalizeOrderSyncMessage",
1857
1774
  value: function normalizeOrderSyncMessage(res) {
@@ -1884,17 +1801,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1884
1801
  key: "uniqueOrderIds",
1885
1802
  value: function uniqueOrderIds(ids) {
1886
1803
  var idMap = new Map();
1887
- var _iterator14 = _createForOfIteratorHelper(ids),
1888
- _step14;
1804
+ var _iterator12 = _createForOfIteratorHelper(ids),
1805
+ _step12;
1889
1806
  try {
1890
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
1891
- var id = _step14.value;
1807
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
1808
+ var id = _step12.value;
1892
1809
  idMap.set(this.getIdKey(id), id);
1893
1810
  }
1894
1811
  } catch (err) {
1895
- _iterator14.e(err);
1812
+ _iterator12.e(err);
1896
1813
  } finally {
1897
- _iterator14.f();
1814
+ _iterator12.f();
1898
1815
  }
1899
1816
  return _toConsumableArray(idMap.values());
1900
1817
  }
@@ -1906,12 +1823,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1906
1823
  }, {
1907
1824
  key: "isOrderLookupMatch",
1908
1825
  value: function isOrderLookupMatch(order, lookupKey) {
1909
- var _this14 = this;
1826
+ var _this16 = this;
1910
1827
  if (!order || !lookupKey) return false;
1911
1828
  var candidates = [order.order_id, order.external_sale_number, order.order_number, order.shop_order_number, order.shop_full_order_number];
1912
1829
  return candidates.some(function (value) {
1913
1830
  if (value === undefined || value === null || value === '') return false;
1914
- return _this14.getIdKey(value) === lookupKey;
1831
+ return _this16.getIdKey(value) === lookupKey;
1915
1832
  });
1916
1833
  }
1917
1834
 
@@ -1954,10 +1871,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1954
1871
  }, {
1955
1872
  key: "findOrderIndexByIdentity",
1956
1873
  value: function findOrderIndexByIdentity(orders, target) {
1957
- var _this15 = this;
1874
+ var _this17 = this;
1958
1875
  if (this.getOrderIdentityMatchKeys(target).length === 0) return -1;
1959
1876
  return orders.findIndex(function (order) {
1960
- return _this15.doOrdersShareIdentity(order, target);
1877
+ return _this17.doOrdersShareIdentity(order, target);
1961
1878
  });
1962
1879
  }
1963
1880
  }, {
@@ -2006,58 +1923,58 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2006
1923
  if (secondaryList.length === 0) return preferredList;
2007
1924
  if (preferredList.length === 0) return secondaryList;
2008
1925
  var seenKeys = new Set();
2009
- var _iterator15 = _createForOfIteratorHelper(preferredList),
2010
- _step15;
1926
+ var _iterator13 = _createForOfIteratorHelper(preferredList),
1927
+ _step13;
2011
1928
  try {
2012
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
2013
- var item = _step15.value;
1929
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
1930
+ var item = _step13.value;
2014
1931
  var keys = this.getProductIdentityKeys(item);
2015
- var _iterator17 = _createForOfIteratorHelper(keys),
2016
- _step17;
1932
+ var _iterator15 = _createForOfIteratorHelper(keys),
1933
+ _step15;
2017
1934
  try {
2018
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
2019
- var key = _step17.value;
1935
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
1936
+ var key = _step15.value;
2020
1937
  seenKeys.add(key);
2021
1938
  }
2022
1939
  } catch (err) {
2023
- _iterator17.e(err);
1940
+ _iterator15.e(err);
2024
1941
  } finally {
2025
- _iterator17.f();
1942
+ _iterator15.f();
2026
1943
  }
2027
1944
  }
2028
1945
  } catch (err) {
2029
- _iterator15.e(err);
1946
+ _iterator13.e(err);
2030
1947
  } finally {
2031
- _iterator15.f();
1948
+ _iterator13.f();
2032
1949
  }
2033
1950
  var result = _toConsumableArray(preferredList);
2034
- var _iterator16 = _createForOfIteratorHelper(secondaryList),
2035
- _step16;
1951
+ var _iterator14 = _createForOfIteratorHelper(secondaryList),
1952
+ _step14;
2036
1953
  try {
2037
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
2038
- var _item = _step16.value;
1954
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
1955
+ var _item = _step14.value;
2039
1956
  var _keys = this.getProductIdentityKeys(_item);
2040
1957
  if (_keys.length === 0 || _keys.some(function (key) {
2041
1958
  return seenKeys.has(key);
2042
1959
  })) continue;
2043
- var _iterator18 = _createForOfIteratorHelper(_keys),
2044
- _step18;
1960
+ var _iterator16 = _createForOfIteratorHelper(_keys),
1961
+ _step16;
2045
1962
  try {
2046
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
2047
- var _key = _step18.value;
1963
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
1964
+ var _key = _step16.value;
2048
1965
  seenKeys.add(_key);
2049
1966
  }
2050
1967
  } catch (err) {
2051
- _iterator18.e(err);
1968
+ _iterator16.e(err);
2052
1969
  } finally {
2053
- _iterator18.f();
1970
+ _iterator16.f();
2054
1971
  }
2055
1972
  result.push(cloneDeep(_item));
2056
1973
  }
2057
1974
  } catch (err) {
2058
- _iterator16.e(err);
1975
+ _iterator14.e(err);
2059
1976
  } finally {
2060
- _iterator16.f();
1977
+ _iterator14.f();
2061
1978
  }
2062
1979
  return result;
2063
1980
  }
@@ -2083,29 +2000,29 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2083
2000
  }, {
2084
2001
  key: "mergeOrderPaymentLists",
2085
2002
  value: function mergeOrderPaymentLists(existing, incoming) {
2086
- var _this16 = this;
2003
+ var _this18 = this;
2087
2004
  var existingList = Array.isArray(existing) ? existing : [];
2088
2005
  var incomingList = Array.isArray(incoming) ? incoming : [];
2089
2006
  if (incomingList.length === 0) return cloneDeep(existingList);
2090
2007
  if (existingList.length === 0) return cloneDeep(incomingList);
2091
2008
  var existingByKey = new Map();
2092
- var _iterator19 = _createForOfIteratorHelper(existingList),
2093
- _step19;
2009
+ var _iterator17 = _createForOfIteratorHelper(existingList),
2010
+ _step17;
2094
2011
  try {
2095
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
2096
- var payment = _step19.value;
2012
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
2013
+ var payment = _step17.value;
2097
2014
  var key = this.getPaymentMergeKey(payment);
2098
2015
  if (!key) continue;
2099
2016
  existingByKey.set(key, payment);
2100
2017
  }
2101
2018
  } catch (err) {
2102
- _iterator19.e(err);
2019
+ _iterator17.e(err);
2103
2020
  } finally {
2104
- _iterator19.f();
2021
+ _iterator17.f();
2105
2022
  }
2106
2023
  return incomingList.map(function (payment) {
2107
2024
  var incomingPayment = payment;
2108
- var key = _this16.getPaymentMergeKey(incomingPayment);
2025
+ var key = _this18.getPaymentMergeKey(incomingPayment);
2109
2026
  var existingPayment = key ? existingByKey.get(key) : undefined;
2110
2027
  if (!existingPayment) return cloneDeep(incomingPayment);
2111
2028
  return _objectSpread(_objectSpread(_objectSpread({}, cloneDeep(existingPayment)), cloneDeep(incomingPayment)), {}, {
@@ -2162,47 +2079,47 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2162
2079
  key: "summarizeDuplicateOrders",
2163
2080
  value: function summarizeDuplicateOrders(orders) {
2164
2081
  var groups = new Map();
2165
- var _iterator20 = _createForOfIteratorHelper(orders),
2166
- _step20;
2082
+ var _iterator18 = _createForOfIteratorHelper(orders),
2083
+ _step18;
2167
2084
  try {
2168
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
2169
- var order = _step20.value;
2170
- var _iterator21 = _createForOfIteratorHelper(this.getOrderIdentityMatchKeys(order)),
2171
- _step21;
2085
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
2086
+ var order = _step18.value;
2087
+ var _iterator19 = _createForOfIteratorHelper(this.getOrderIdentityMatchKeys(order)),
2088
+ _step19;
2172
2089
  try {
2173
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
2174
- var key = _step21.value;
2090
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
2091
+ var key = _step19.value;
2175
2092
  var group = groups.get(key) || [];
2176
2093
  group.push(order);
2177
2094
  groups.set(key, group);
2178
2095
  }
2179
2096
  } catch (err) {
2180
- _iterator21.e(err);
2097
+ _iterator19.e(err);
2181
2098
  } finally {
2182
- _iterator21.f();
2099
+ _iterator19.f();
2183
2100
  }
2184
2101
  }
2185
2102
  } catch (err) {
2186
- _iterator20.e(err);
2103
+ _iterator18.e(err);
2187
2104
  } finally {
2188
- _iterator20.f();
2105
+ _iterator18.f();
2189
2106
  }
2190
- return _toConsumableArray(groups.entries()).filter(function (_ref4) {
2107
+ return _toConsumableArray(groups.entries()).filter(function (_ref2) {
2108
+ var _ref3 = _slicedToArray(_ref2, 2),
2109
+ group = _ref3[1];
2110
+ return group.length > 1;
2111
+ }).slice(0, 20).map(function (_ref4) {
2191
2112
  var _ref5 = _slicedToArray(_ref4, 2),
2113
+ key = _ref5[0],
2192
2114
  group = _ref5[1];
2193
- return group.length > 1;
2194
- }).slice(0, 20).map(function (_ref6) {
2195
- var _ref7 = _slicedToArray(_ref6, 2),
2196
- key = _ref7[0],
2197
- group = _ref7[1];
2198
2115
  return {
2199
2116
  key: key,
2200
2117
  count: group.length,
2201
2118
  orders: group.map(function (order) {
2202
- var _order$order_id2, _external_sale_number2, _shop_order_number, _shop_full_order_numb, _order$need_sync;
2119
+ var _order$order_id2, _external_sale_number, _shop_order_number, _shop_full_order_numb, _order$need_sync;
2203
2120
  return {
2204
2121
  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,
2122
+ external_sale_number: (_external_sale_number = order.external_sale_number) !== null && _external_sale_number !== void 0 ? _external_sale_number : null,
2206
2123
  shop_order_number: (_shop_order_number = order.shop_order_number) !== null && _shop_order_number !== void 0 ? _shop_order_number : null,
2207
2124
  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
2125
  need_sync: (_order$need_sync = order.need_sync) !== null && _order$need_sync !== void 0 ? _order$need_sync : null
@@ -2227,11 +2144,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2227
2144
  value: function compactOrderListByIdentity(orders, source) {
2228
2145
  var list = [];
2229
2146
  var removedCount = 0;
2230
- var _iterator22 = _createForOfIteratorHelper(orders),
2231
- _step22;
2147
+ var _iterator20 = _createForOfIteratorHelper(orders),
2148
+ _step20;
2232
2149
  try {
2233
- for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
2234
- var order = _step22.value;
2150
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
2151
+ var order = _step20.value;
2235
2152
  var matchIndex = this.findOrderIndexByIdentity(list, order);
2236
2153
  if (matchIndex < 0) {
2237
2154
  list.push(order);
@@ -2241,9 +2158,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2241
2158
  removedCount += 1;
2242
2159
  }
2243
2160
  } catch (err) {
2244
- _iterator22.e(err);
2161
+ _iterator20.e(err);
2245
2162
  } finally {
2246
- _iterator22.f();
2163
+ _iterator20.f();
2247
2164
  }
2248
2165
  if (removedCount > 0) {
2249
2166
  this.logWarning('订单列表重复项已压缩', {
@@ -2389,15 +2306,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2389
2306
  }, {
2390
2307
  key: "mergeRemoteSnapshotWithPendingOrders",
2391
2308
  value: function mergeRemoteSnapshotWithPendingOrders(remoteOrders, existingOrders) {
2392
- var _this17 = this;
2309
+ var _this19 = this;
2393
2310
  var merged = remoteOrders.map(function (order) {
2394
- return _this17.normalizeRemoteSyncedOrder(order);
2311
+ return _this19.normalizeRemoteSyncedOrder(order);
2395
2312
  });
2396
- var _iterator23 = _createForOfIteratorHelper(existingOrders),
2397
- _step23;
2313
+ var _iterator21 = _createForOfIteratorHelper(existingOrders),
2314
+ _step21;
2398
2315
  try {
2399
- for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
2400
- var order = _step23.value;
2316
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
2317
+ var order = _step21.value;
2401
2318
  if (!this.isPendingSyncOrder(order)) continue;
2402
2319
  var matchIndex = this.findOrderIndexByIdentity(merged, order);
2403
2320
  if (matchIndex >= 0) {
@@ -2408,9 +2325,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2408
2325
  merged.push(order);
2409
2326
  }
2410
2327
  } catch (err) {
2411
- _iterator23.e(err);
2328
+ _iterator21.e(err);
2412
2329
  } finally {
2413
- _iterator23.f();
2330
+ _iterator21.f();
2414
2331
  }
2415
2332
  return this.compactOrderListByIdentity(merged, 'mergeRemoteSnapshotWithPendingOrders').list;
2416
2333
  }
@@ -2460,7 +2377,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2460
2377
  key: "patchOrdersInSQLite",
2461
2378
  value: (function () {
2462
2379
  var _patchOrdersInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20(orders, source) {
2463
- var _this18 = this;
2380
+ var _this20 = this;
2464
2381
  var mergeActions,
2465
2382
  ordersSnapshot,
2466
2383
  _this$filterRedundant2,
@@ -2479,7 +2396,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2479
2396
  return _context20.abrupt("return");
2480
2397
  case 3:
2481
2398
  ordersSnapshot = cloneDeep(orders).filter(function (order) {
2482
- return _this18.getOrderStorageKey(order);
2399
+ return _this20.getOrderStorageKey(order);
2483
2400
  });
2484
2401
  if (!(ordersSnapshot.length === 0)) {
2485
2402
  _context20.next = 6;
@@ -2504,54 +2421,54 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2504
2421
  _context20.prev = 12;
2505
2422
  _context20.next = 15;
2506
2423
  return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {
2507
- var writeMethod, _iterator24, _step24, order;
2424
+ var writeMethod, _iterator22, _step22, order;
2508
2425
  return _regeneratorRuntime().wrap(function _callee19$(_context19) {
2509
2426
  while (1) switch (_context19.prev = _context19.next) {
2510
2427
  case 0:
2511
2428
  writeMethod = 'none';
2512
- _this18.logInfo('patchOrdersInSQLite-开始', {
2429
+ _this20.logInfo('patchOrdersInSQLite-开始', {
2513
2430
  source: source,
2514
2431
  count: compactedToWrite.length,
2515
2432
  dedupedCount: skipped.length
2516
2433
  });
2517
- if (!(typeof _this18.dbManager.bulkUpdate === 'function')) {
2434
+ if (!(typeof _this20.dbManager.bulkUpdate === 'function')) {
2518
2435
  _context19.next = 8;
2519
2436
  break;
2520
2437
  }
2521
2438
  writeMethod = 'bulkUpdate';
2522
2439
  _context19.next = 6;
2523
- return _this18.dbManager.bulkUpdate(INDEXDB_STORE_NAME, compactedToWrite);
2440
+ return _this20.dbManager.bulkUpdate(INDEXDB_STORE_NAME, compactedToWrite);
2524
2441
  case 6:
2525
2442
  _context19.next = 33;
2526
2443
  break;
2527
2444
  case 8:
2528
- if (!(typeof _this18.dbManager.bulkAdd === 'function')) {
2445
+ if (!(typeof _this20.dbManager.bulkAdd === 'function')) {
2529
2446
  _context19.next = 14;
2530
2447
  break;
2531
2448
  }
2532
2449
  writeMethod = 'bulkAdd';
2533
2450
  _context19.next = 12;
2534
- return _this18.dbManager.bulkAdd(INDEXDB_STORE_NAME, compactedToWrite);
2451
+ return _this20.dbManager.bulkAdd(INDEXDB_STORE_NAME, compactedToWrite);
2535
2452
  case 12:
2536
2453
  _context19.next = 33;
2537
2454
  break;
2538
2455
  case 14:
2539
- if (!(typeof _this18.dbManager.update === 'function')) {
2456
+ if (!(typeof _this20.dbManager.update === 'function')) {
2540
2457
  _context19.next = 33;
2541
2458
  break;
2542
2459
  }
2543
2460
  writeMethod = 'update';
2544
- _iterator24 = _createForOfIteratorHelper(compactedToWrite);
2461
+ _iterator22 = _createForOfIteratorHelper(compactedToWrite);
2545
2462
  _context19.prev = 17;
2546
- _iterator24.s();
2463
+ _iterator22.s();
2547
2464
  case 19:
2548
- if ((_step24 = _iterator24.n()).done) {
2465
+ if ((_step22 = _iterator22.n()).done) {
2549
2466
  _context19.next = 25;
2550
2467
  break;
2551
2468
  }
2552
- order = _step24.value;
2469
+ order = _step22.value;
2553
2470
  _context19.next = 23;
2554
- return _this18.dbManager.update(INDEXDB_STORE_NAME, order);
2471
+ return _this20.dbManager.update(INDEXDB_STORE_NAME, order);
2555
2472
  case 23:
2556
2473
  _context19.next = 19;
2557
2474
  break;
@@ -2561,14 +2478,14 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2561
2478
  case 27:
2562
2479
  _context19.prev = 27;
2563
2480
  _context19.t0 = _context19["catch"](17);
2564
- _iterator24.e(_context19.t0);
2481
+ _iterator22.e(_context19.t0);
2565
2482
  case 30:
2566
2483
  _context19.prev = 30;
2567
- _iterator24.f();
2484
+ _iterator22.f();
2568
2485
  return _context19.finish(30);
2569
2486
  case 33:
2570
- _this18.recordRecentSqliteWrite(source, compactedToWrite);
2571
- _this18.logInfo('patchOrdersInSQLite-完成', {
2487
+ _this20.recordRecentSqliteWrite(source, compactedToWrite);
2488
+ _this20.logInfo('patchOrdersInSQLite-完成', {
2572
2489
  source: source,
2573
2490
  count: compactedToWrite.length,
2574
2491
  writeMethod: writeMethod,
@@ -2612,7 +2529,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2612
2529
  key: "updateOrderInSQLite",
2613
2530
  value: (function () {
2614
2531
  var _updateOrderInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(order, source) {
2615
- var _this19 = this;
2532
+ var _this21 = this;
2616
2533
  var orderSnapshot, _orderSnapshot$order_3;
2617
2534
  return _regeneratorRuntime().wrap(function _callee22$(_context22) {
2618
2535
  while (1) switch (_context22.prev = _context22.next) {
@@ -2633,43 +2550,43 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2633
2550
  while (1) switch (_context21.prev = _context21.next) {
2634
2551
  case 0:
2635
2552
  writeMethod = 'none';
2636
- _this19.logInfo('updateOrderInSQLite-开始', {
2553
+ _this21.logInfo('updateOrderInSQLite-开始', {
2637
2554
  source: source,
2638
2555
  orderId: (_orderSnapshot$order_ = orderSnapshot.order_id) !== null && _orderSnapshot$order_ !== void 0 ? _orderSnapshot$order_ : null,
2639
- storageKey: _this19.getOrderStorageKey(orderSnapshot)
2556
+ storageKey: _this21.getOrderStorageKey(orderSnapshot)
2640
2557
  });
2641
- if (!(typeof _this19.dbManager.update === 'function')) {
2558
+ if (!(typeof _this21.dbManager.update === 'function')) {
2642
2559
  _context21.next = 8;
2643
2560
  break;
2644
2561
  }
2645
2562
  writeMethod = 'update';
2646
2563
  _context21.next = 6;
2647
- return _this19.dbManager.update(INDEXDB_STORE_NAME, orderSnapshot);
2564
+ return _this21.dbManager.update(INDEXDB_STORE_NAME, orderSnapshot);
2648
2565
  case 6:
2649
2566
  _context21.next = 18;
2650
2567
  break;
2651
2568
  case 8:
2652
- if (!(typeof _this19.dbManager.bulkUpdate === 'function')) {
2569
+ if (!(typeof _this21.dbManager.bulkUpdate === 'function')) {
2653
2570
  _context21.next = 14;
2654
2571
  break;
2655
2572
  }
2656
2573
  writeMethod = 'bulkUpdate';
2657
2574
  _context21.next = 12;
2658
- return _this19.dbManager.bulkUpdate(INDEXDB_STORE_NAME, [orderSnapshot]);
2575
+ return _this21.dbManager.bulkUpdate(INDEXDB_STORE_NAME, [orderSnapshot]);
2659
2576
  case 12:
2660
2577
  _context21.next = 18;
2661
2578
  break;
2662
2579
  case 14:
2663
- if (!(typeof _this19.dbManager.bulkAdd === 'function')) {
2580
+ if (!(typeof _this21.dbManager.bulkAdd === 'function')) {
2664
2581
  _context21.next = 18;
2665
2582
  break;
2666
2583
  }
2667
2584
  writeMethod = 'bulkAdd';
2668
2585
  _context21.next = 18;
2669
- return _this19.dbManager.bulkAdd(INDEXDB_STORE_NAME, [orderSnapshot]);
2586
+ return _this21.dbManager.bulkAdd(INDEXDB_STORE_NAME, [orderSnapshot]);
2670
2587
  case 18:
2671
- _this19.recordRecentSqliteWrite(source, [orderSnapshot]);
2672
- _this19.logInfo('updateOrderInSQLite-完成', {
2588
+ _this21.recordRecentSqliteWrite(source, [orderSnapshot]);
2589
+ _this21.logInfo('updateOrderInSQLite-完成', {
2673
2590
  source: source,
2674
2591
  orderId: (_orderSnapshot$order_2 = orderSnapshot.order_id) !== null && _orderSnapshot$order_2 !== void 0 ? _orderSnapshot$order_2 : null,
2675
2592
  writeMethod: writeMethod
@@ -2712,7 +2629,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2712
2629
  key: "replaceOrdersSnapshotInSQLite",
2713
2630
  value: (function () {
2714
2631
  var _replaceOrdersSnapshotInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24(orderList, source) {
2715
- var _this20 = this;
2632
+ var _this22 = this;
2716
2633
  var remoteSnapshot, mergedSnapshot;
2717
2634
  return _regeneratorRuntime().wrap(function _callee24$(_context24) {
2718
2635
  while (1) switch (_context24.prev = _context24.next) {
@@ -2722,12 +2639,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2722
2639
  break;
2723
2640
  }
2724
2641
  return _context24.abrupt("return", this.compactOrderListByIdentity(orderList.map(function (order) {
2725
- return _this20.normalizeRemoteSyncedOrder(order);
2642
+ return _this22.normalizeRemoteSyncedOrder(order);
2726
2643
  }), "".concat(source, ".snapshotNoDb")).list);
2727
2644
  case 2:
2728
2645
  remoteSnapshot = cloneDeep(orderList);
2729
2646
  mergedSnapshot = this.compactOrderListByIdentity(remoteSnapshot.map(function (order) {
2730
- return _this20.normalizeRemoteSyncedOrder(order);
2647
+ return _this22.normalizeRemoteSyncedOrder(order);
2731
2648
  }), "".concat(source, ".remoteSnapshot")).list;
2732
2649
  _context24.prev = 4;
2733
2650
  _context24.next = 7;
@@ -2736,12 +2653,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2736
2653
  return _regeneratorRuntime().wrap(function _callee23$(_context23) {
2737
2654
  while (1) switch (_context23.prev = _context23.next) {
2738
2655
  case 0:
2739
- if (!(typeof _this20.dbManager.getAll === 'function')) {
2656
+ if (!(typeof _this22.dbManager.getAll === 'function')) {
2740
2657
  _context23.next = 6;
2741
2658
  break;
2742
2659
  }
2743
2660
  _context23.next = 3;
2744
- return _this20.dbManager.getAll(INDEXDB_STORE_NAME);
2661
+ return _this22.dbManager.getAll(INDEXDB_STORE_NAME);
2745
2662
  case 3:
2746
2663
  _context23.t0 = _context23.sent;
2747
2664
  _context23.next = 7;
@@ -2750,18 +2667,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2750
2667
  _context23.t0 = [];
2751
2668
  case 7:
2752
2669
  existingOrders = _context23.t0;
2753
- orderListSnapshot = _this20.mergeRemoteSnapshotWithPendingOrders(remoteSnapshot, existingOrders || []);
2754
- mergedSnapshot = _this20.compactOrderListByIdentity(orderListSnapshot, "".concat(source, ".sqliteSnapshot")).list;
2755
- _this20.logInfo('replaceOrdersSnapshotInSQLite-开始', {
2670
+ orderListSnapshot = _this22.mergeRemoteSnapshotWithPendingOrders(remoteSnapshot, existingOrders || []);
2671
+ mergedSnapshot = _this22.compactOrderListByIdentity(orderListSnapshot, "".concat(source, ".sqliteSnapshot")).list;
2672
+ _this22.logInfo('replaceOrdersSnapshotInSQLite-开始', {
2756
2673
  source: source,
2757
2674
  count: mergedSnapshot.length,
2758
2675
  remoteCount: remoteSnapshot.length,
2759
2676
  preservedPendingCount: mergedSnapshot.length - remoteSnapshot.length
2760
2677
  });
2761
2678
  _context23.next = 13;
2762
- return _this20.dbManager.clear(INDEXDB_STORE_NAME);
2679
+ return _this22.dbManager.clear(INDEXDB_STORE_NAME);
2763
2680
  case 13:
2764
- _this20.logInfo('replaceOrdersSnapshotInSQLite-clear完成', {
2681
+ _this22.logInfo('replaceOrdersSnapshotInSQLite-clear完成', {
2765
2682
  count: mergedSnapshot.length
2766
2683
  });
2767
2684
  if (!(mergedSnapshot.length === 0)) {
@@ -2771,10 +2688,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2771
2688
  return _context23.abrupt("return");
2772
2689
  case 16:
2773
2690
  _context23.next = 18;
2774
- return _this20.dbManager.bulkAdd(INDEXDB_STORE_NAME, mergedSnapshot);
2691
+ return _this22.dbManager.bulkAdd(INDEXDB_STORE_NAME, mergedSnapshot);
2775
2692
  case 18:
2776
- _this20.recordRecentSqliteWrite(source, mergedSnapshot);
2777
- _this20.logInfo('replaceOrdersSnapshotInSQLite-bulkAdd完成', {
2693
+ _this22.recordRecentSqliteWrite(source, mergedSnapshot);
2694
+ _this22.logInfo('replaceOrdersSnapshotInSQLite-bulkAdd完成', {
2778
2695
  source: source,
2779
2696
  count: mergedSnapshot.length
2780
2697
  });
@@ -2818,33 +2735,34 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2818
2735
  key: "clear",
2819
2736
  value: (function () {
2820
2737
  var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
2821
- var _this21 = this;
2738
+ var _this23 = this;
2822
2739
  return _regeneratorRuntime().wrap(function _callee26$(_context26) {
2823
2740
  while (1) switch (_context26.prev = _context26.next) {
2824
2741
  case 0:
2825
2742
  this.store.list = [];
2826
2743
  this.store.map = new Map();
2744
+ this.resourceIdIndex.clear();
2827
2745
  if (!this.dbManager) {
2828
- _context26.next = 5;
2746
+ _context26.next = 6;
2829
2747
  break;
2830
2748
  }
2831
- _context26.next = 5;
2749
+ _context26.next = 6;
2832
2750
  return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25() {
2833
2751
  return _regeneratorRuntime().wrap(function _callee25$(_context25) {
2834
2752
  while (1) switch (_context25.prev = _context25.next) {
2835
2753
  case 0:
2836
2754
  _context25.next = 2;
2837
- return _this21.dbManager.clear(INDEXDB_STORE_NAME);
2755
+ return _this23.dbManager.clear(INDEXDB_STORE_NAME);
2838
2756
  case 2:
2839
2757
  case "end":
2840
2758
  return _context25.stop();
2841
2759
  }
2842
2760
  }, _callee25);
2843
2761
  })));
2844
- case 5:
2762
+ case 6:
2845
2763
  this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, '');
2846
2764
  this.emitOrdersChanged([], 'clear');
2847
- case 7:
2765
+ case 8:
2848
2766
  case "end":
2849
2767
  return _context26.stop();
2850
2768
  }