@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.
- package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +49 -0
- package/dist/model/strategy/adapter/dataVariant/adapter.js +152 -0
- package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +87 -0
- package/dist/model/strategy/adapter/dataVariant/evaluator.js +755 -0
- package/dist/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
- package/dist/model/strategy/adapter/dataVariant/examples.js +282 -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 +146 -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/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +13 -17
- package/dist/modules/Order/index.d.ts +1 -32
- package/dist/modules/Order/index.js +288 -615
- package/dist/modules/Order/types.d.ts +2 -20
- package/dist/modules/Order/utils.d.ts +0 -4
- package/dist/modules/Order/utils.js +28 -114
- package/dist/modules/Product/index.d.ts +1 -1
- 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/modules/Rules/index.d.ts +3 -3
- package/dist/modules/Rules/index.js +3 -8
- package/dist/modules/Rules/types.d.ts +1 -2
- package/dist/modules/SalesSummary/index.d.ts +3 -7
- package/dist/modules/SalesSummary/index.js +39 -67
- package/dist/modules/SalesSummary/types.d.ts +0 -1
- package/dist/modules/SalesSummary/utils.js +1 -2
- package/dist/modules/SurchargeList/index.d.ts +4 -6
- package/dist/modules/SurchargeList/index.js +39 -62
- package/dist/modules/SurchargeList/types.d.ts +2 -6
- package/dist/server/index.d.ts +50 -3
- package/dist/server/index.js +1040 -1075
- package/dist/server/modules/order/index.d.ts +3 -22
- package/dist/server/modules/order/index.js +316 -398
- package/dist/server/modules/products/index.d.ts +26 -7
- package/dist/server/modules/products/index.js +166 -76
- package/dist/server/modules/products/types.d.ts +14 -0
- package/dist/solution/BaseSales/index.d.ts +2 -22
- package/dist/solution/BaseSales/index.js +701 -995
- package/dist/solution/BaseSales/types.d.ts +0 -1
- package/dist/solution/BaseSales/types.js +1 -2
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +3 -6
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +0 -8
- package/dist/solution/BookingTicket/index.js +6 -153
- package/dist/solution/BookingTicket/types.d.ts +2 -0
- package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +49 -0
- package/lib/model/strategy/adapter/dataVariant/adapter.js +139 -0
- package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +87 -0
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +564 -0
- package/lib/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
- package/lib/model/strategy/adapter/dataVariant/examples.js +295 -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 +146 -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/BookingContext/utils/buildCacheItemFromOrderLine.js +1 -11
- package/lib/modules/Order/index.d.ts +1 -32
- package/lib/modules/Order/index.js +64 -402
- package/lib/modules/Order/types.d.ts +2 -20
- package/lib/modules/Order/utils.d.ts +0 -4
- package/lib/modules/Order/utils.js +2 -84
- package/lib/modules/Product/index.d.ts +1 -1
- 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/modules/Rules/index.d.ts +3 -3
- package/lib/modules/Rules/index.js +3 -4
- package/lib/modules/Rules/types.d.ts +1 -2
- package/lib/modules/SalesSummary/index.d.ts +3 -7
- package/lib/modules/SalesSummary/index.js +11 -28
- package/lib/modules/SalesSummary/types.d.ts +0 -1
- package/lib/modules/SalesSummary/utils.js +0 -2
- package/lib/modules/SurchargeList/index.d.ts +4 -6
- package/lib/modules/SurchargeList/index.js +21 -41
- package/lib/modules/SurchargeList/types.d.ts +2 -6
- package/lib/server/index.d.ts +50 -3
- package/lib/server/index.js +215 -244
- package/lib/server/modules/order/index.d.ts +3 -22
- package/lib/server/modules/order/index.js +53 -103
- package/lib/server/modules/products/index.d.ts +26 -7
- package/lib/server/modules/products/index.js +113 -35
- package/lib/server/modules/products/types.d.ts +14 -0
- package/lib/solution/BaseSales/index.d.ts +2 -22
- package/lib/solution/BaseSales/index.js +60 -246
- package/lib/solution/BaseSales/types.d.ts +0 -1
- package/lib/solution/BaseSales/types.js +1 -2
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +6 -6
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +0 -8
- package/lib/solution/BookingTicket/index.js +0 -101
- package/lib/solution/BookingTicket/types.d.ts +2 -0
- package/package.json +1 -1
- package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +0 -5
- package/dist/modules/Order/utils/bundleDiscountHydration.js +0 -144
- package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +0 -5
- 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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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);
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
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
|
-
|
|
1068
|
-
matchIndex = this.
|
|
1069
|
-
if (!(matchIndex
|
|
1070
|
-
_context11.next =
|
|
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
|
-
|
|
1064
|
+
return _context11.abrupt("continue", 44);
|
|
1065
|
+
case 40:
|
|
1066
|
+
updatedList[matchIndex] = this.mergeOrderRecords(updatedList[matchIndex], pendingOrder, {
|
|
1074
1067
|
preferIncomingProducts: true
|
|
1075
1068
|
});
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex);
|
|
1069
|
+
pendingMap.delete(_storageKey);
|
|
1070
|
+
memoryPendingMap.delete(_storageKey);
|
|
1079
1071
|
mergeActions[_storageKey] = 'update';
|
|
1080
|
-
|
|
1081
|
-
|
|
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
|
|
1090
|
-
_context11.next =
|
|
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
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
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 =
|
|
1101
|
+
_context11.next = 60;
|
|
1105
1102
|
return this.patchOrdersInSQLite(patchedOrders, 'upsertPendingSyncOrders', mergeActions);
|
|
1106
|
-
case
|
|
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 =
|
|
1108
|
+
_context11.next = 63;
|
|
1112
1109
|
return this.emitOrdersChanged(patchedOrders, 'upsertPendingSyncOrders');
|
|
1113
|
-
case
|
|
1110
|
+
case 63:
|
|
1114
1111
|
case "end":
|
|
1115
1112
|
return _context11.stop();
|
|
1116
1113
|
}
|
|
1117
|
-
}, _callee11, this, [[6, 19, 22, 25], [
|
|
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
|
-
|
|
1197
|
+
var _loop = function _loop() {
|
|
1199
1198
|
var order = _step7.value;
|
|
1200
|
-
var primaryIdentity =
|
|
1201
|
-
if (!primaryIdentity) continue
|
|
1202
|
-
|
|
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
|
|
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
|
|
1269
|
+
var _loop2 = function _loop2() {
|
|
1249
1270
|
var candidate = _candidates[_i];
|
|
1250
|
-
if (
|
|
1251
|
-
var key =
|
|
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 =
|
|
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
|
|
1272
|
-
|
|
1292
|
+
var _iterator9 = _createForOfIteratorHelper(this.getOrderIdentityEntries(order)),
|
|
1293
|
+
_step9;
|
|
1273
1294
|
try {
|
|
1274
|
-
for (
|
|
1275
|
-
var entry =
|
|
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
|
-
|
|
1300
|
+
_iterator9.e(err);
|
|
1280
1301
|
} finally {
|
|
1281
|
-
|
|
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
|
|
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 =
|
|
1366
|
+
var message = _this13.normalizeOrderSyncMessage(res);
|
|
1327
1367
|
if (!message) return;
|
|
1328
1368
|
message._pubsubReceivedAt = pubsubReceivedAt;
|
|
1329
|
-
|
|
1330
|
-
var throttleMs =
|
|
1331
|
-
var routeInfo =
|
|
1332
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
1370
|
-
void
|
|
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
|
|
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 =
|
|
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 =
|
|
1509
|
+
var normalizedBody = _this15.normalizeOrderSyncPayload(msg.body || msg.data);
|
|
1470
1510
|
if (routeInfo.route === 'bodyUpsert' && normalizedBody) {
|
|
1471
|
-
upsertOrders.set(
|
|
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
|
|
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:
|
|
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
|
-
|
|
1622
|
-
_context16.prev =
|
|
1623
|
-
|
|
1624
|
-
case
|
|
1625
|
-
if ((
|
|
1626
|
-
_context16.next =
|
|
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 =
|
|
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 =
|
|
1671
|
+
_context16.next = 11;
|
|
1633
1672
|
break;
|
|
1634
1673
|
}
|
|
1635
|
-
return _context16.abrupt("continue",
|
|
1636
|
-
case
|
|
1674
|
+
return _context16.abrupt("continue", 12);
|
|
1675
|
+
case 11:
|
|
1637
1676
|
normalizedFreshOrders.push(this.normalizeRemoteSyncedOrder(order));
|
|
1638
|
-
case
|
|
1639
|
-
_context16.next =
|
|
1677
|
+
case 12:
|
|
1678
|
+
_context16.next = 6;
|
|
1640
1679
|
break;
|
|
1641
|
-
case
|
|
1642
|
-
_context16.next =
|
|
1680
|
+
case 14:
|
|
1681
|
+
_context16.next = 19;
|
|
1643
1682
|
break;
|
|
1644
|
-
case
|
|
1645
|
-
_context16.prev =
|
|
1646
|
-
_context16.t0 = _context16["catch"](
|
|
1647
|
-
|
|
1648
|
-
case
|
|
1649
|
-
_context16.prev =
|
|
1650
|
-
|
|
1651
|
-
return _context16.finish(
|
|
1652
|
-
case
|
|
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);
|
|
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 =
|
|
1698
|
+
_context16.prev = 28;
|
|
1679
1699
|
_iterator11.s();
|
|
1680
|
-
case
|
|
1700
|
+
case 30:
|
|
1681
1701
|
if ((_step11 = _iterator11.n()).done) {
|
|
1682
|
-
_context16.next =
|
|
1702
|
+
_context16.next = 46;
|
|
1683
1703
|
break;
|
|
1684
1704
|
}
|
|
1685
1705
|
fresh = _step11.value;
|
|
1686
|
-
|
|
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 =
|
|
1710
|
+
_context16.next = 41;
|
|
1692
1711
|
break;
|
|
1693
1712
|
}
|
|
1694
|
-
|
|
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",
|
|
1719
|
-
case
|
|
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
|
|
1726
|
-
_context16.next =
|
|
1722
|
+
case 44:
|
|
1723
|
+
_context16.next = 30;
|
|
1727
1724
|
break;
|
|
1728
|
-
case
|
|
1729
|
-
_context16.next =
|
|
1725
|
+
case 46:
|
|
1726
|
+
_context16.next = 51;
|
|
1730
1727
|
break;
|
|
1731
|
-
case
|
|
1732
|
-
_context16.prev =
|
|
1733
|
-
_context16.t1 = _context16["catch"](
|
|
1728
|
+
case 48:
|
|
1729
|
+
_context16.prev = 48;
|
|
1730
|
+
_context16.t1 = _context16["catch"](28);
|
|
1734
1731
|
_iterator11.e(_context16.t1);
|
|
1735
|
-
case
|
|
1736
|
-
_context16.prev =
|
|
1732
|
+
case 51:
|
|
1733
|
+
_context16.prev = 51;
|
|
1737
1734
|
_iterator11.f();
|
|
1738
|
-
return _context16.finish(
|
|
1739
|
-
case
|
|
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
|
-
|
|
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 =
|
|
1750
|
+
_context16.next = 61;
|
|
1756
1751
|
return this.patchOrdersInSQLite(patchedOrders, source, mergeActions);
|
|
1757
|
-
case
|
|
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 =
|
|
1759
|
+
_context16.next = 64;
|
|
1765
1760
|
return this.emitOrdersChanged(patchedOrders, source);
|
|
1766
|
-
case
|
|
1761
|
+
case 64:
|
|
1767
1762
|
case "end":
|
|
1768
1763
|
return _context16.stop();
|
|
1769
1764
|
}
|
|
1770
|
-
}, _callee16, this, [[
|
|
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
|
|
1888
|
-
|
|
1804
|
+
var _iterator12 = _createForOfIteratorHelper(ids),
|
|
1805
|
+
_step12;
|
|
1889
1806
|
try {
|
|
1890
|
-
for (
|
|
1891
|
-
var id =
|
|
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
|
-
|
|
1812
|
+
_iterator12.e(err);
|
|
1896
1813
|
} finally {
|
|
1897
|
-
|
|
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
|
|
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
|
|
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
|
|
1874
|
+
var _this17 = this;
|
|
1958
1875
|
if (this.getOrderIdentityMatchKeys(target).length === 0) return -1;
|
|
1959
1876
|
return orders.findIndex(function (order) {
|
|
1960
|
-
return
|
|
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
|
|
2010
|
-
|
|
1926
|
+
var _iterator13 = _createForOfIteratorHelper(preferredList),
|
|
1927
|
+
_step13;
|
|
2011
1928
|
try {
|
|
2012
|
-
for (
|
|
2013
|
-
var item =
|
|
1929
|
+
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
|
1930
|
+
var item = _step13.value;
|
|
2014
1931
|
var keys = this.getProductIdentityKeys(item);
|
|
2015
|
-
var
|
|
2016
|
-
|
|
1932
|
+
var _iterator15 = _createForOfIteratorHelper(keys),
|
|
1933
|
+
_step15;
|
|
2017
1934
|
try {
|
|
2018
|
-
for (
|
|
2019
|
-
var key =
|
|
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
|
-
|
|
1940
|
+
_iterator15.e(err);
|
|
2024
1941
|
} finally {
|
|
2025
|
-
|
|
1942
|
+
_iterator15.f();
|
|
2026
1943
|
}
|
|
2027
1944
|
}
|
|
2028
1945
|
} catch (err) {
|
|
2029
|
-
|
|
1946
|
+
_iterator13.e(err);
|
|
2030
1947
|
} finally {
|
|
2031
|
-
|
|
1948
|
+
_iterator13.f();
|
|
2032
1949
|
}
|
|
2033
1950
|
var result = _toConsumableArray(preferredList);
|
|
2034
|
-
var
|
|
2035
|
-
|
|
1951
|
+
var _iterator14 = _createForOfIteratorHelper(secondaryList),
|
|
1952
|
+
_step14;
|
|
2036
1953
|
try {
|
|
2037
|
-
for (
|
|
2038
|
-
var _item =
|
|
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
|
|
2044
|
-
|
|
1960
|
+
var _iterator16 = _createForOfIteratorHelper(_keys),
|
|
1961
|
+
_step16;
|
|
2045
1962
|
try {
|
|
2046
|
-
for (
|
|
2047
|
-
var _key =
|
|
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
|
-
|
|
1968
|
+
_iterator16.e(err);
|
|
2052
1969
|
} finally {
|
|
2053
|
-
|
|
1970
|
+
_iterator16.f();
|
|
2054
1971
|
}
|
|
2055
1972
|
result.push(cloneDeep(_item));
|
|
2056
1973
|
}
|
|
2057
1974
|
} catch (err) {
|
|
2058
|
-
|
|
1975
|
+
_iterator14.e(err);
|
|
2059
1976
|
} finally {
|
|
2060
|
-
|
|
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
|
|
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
|
|
2093
|
-
|
|
2009
|
+
var _iterator17 = _createForOfIteratorHelper(existingList),
|
|
2010
|
+
_step17;
|
|
2094
2011
|
try {
|
|
2095
|
-
for (
|
|
2096
|
-
var payment =
|
|
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
|
-
|
|
2019
|
+
_iterator17.e(err);
|
|
2103
2020
|
} finally {
|
|
2104
|
-
|
|
2021
|
+
_iterator17.f();
|
|
2105
2022
|
}
|
|
2106
2023
|
return incomingList.map(function (payment) {
|
|
2107
2024
|
var incomingPayment = payment;
|
|
2108
|
-
var key =
|
|
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
|
|
2166
|
-
|
|
2082
|
+
var _iterator18 = _createForOfIteratorHelper(orders),
|
|
2083
|
+
_step18;
|
|
2167
2084
|
try {
|
|
2168
|
-
for (
|
|
2169
|
-
var order =
|
|
2170
|
-
var
|
|
2171
|
-
|
|
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 (
|
|
2174
|
-
var key =
|
|
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
|
-
|
|
2097
|
+
_iterator19.e(err);
|
|
2181
2098
|
} finally {
|
|
2182
|
-
|
|
2099
|
+
_iterator19.f();
|
|
2183
2100
|
}
|
|
2184
2101
|
}
|
|
2185
2102
|
} catch (err) {
|
|
2186
|
-
|
|
2103
|
+
_iterator18.e(err);
|
|
2187
2104
|
} finally {
|
|
2188
|
-
|
|
2105
|
+
_iterator18.f();
|
|
2189
2106
|
}
|
|
2190
|
-
return _toConsumableArray(groups.entries()).filter(function (
|
|
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,
|
|
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: (
|
|
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
|
|
2231
|
-
|
|
2147
|
+
var _iterator20 = _createForOfIteratorHelper(orders),
|
|
2148
|
+
_step20;
|
|
2232
2149
|
try {
|
|
2233
|
-
for (
|
|
2234
|
-
var order =
|
|
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
|
-
|
|
2161
|
+
_iterator20.e(err);
|
|
2245
2162
|
} finally {
|
|
2246
|
-
|
|
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
|
|
2309
|
+
var _this19 = this;
|
|
2393
2310
|
var merged = remoteOrders.map(function (order) {
|
|
2394
|
-
return
|
|
2311
|
+
return _this19.normalizeRemoteSyncedOrder(order);
|
|
2395
2312
|
});
|
|
2396
|
-
var
|
|
2397
|
-
|
|
2313
|
+
var _iterator21 = _createForOfIteratorHelper(existingOrders),
|
|
2314
|
+
_step21;
|
|
2398
2315
|
try {
|
|
2399
|
-
for (
|
|
2400
|
-
var order =
|
|
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
|
-
|
|
2328
|
+
_iterator21.e(err);
|
|
2412
2329
|
} finally {
|
|
2413
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
2429
|
+
_this20.logInfo('patchOrdersInSQLite-开始', {
|
|
2513
2430
|
source: source,
|
|
2514
2431
|
count: compactedToWrite.length,
|
|
2515
2432
|
dedupedCount: skipped.length
|
|
2516
2433
|
});
|
|
2517
|
-
if (!(typeof
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2456
|
+
if (!(typeof _this20.dbManager.update === 'function')) {
|
|
2540
2457
|
_context19.next = 33;
|
|
2541
2458
|
break;
|
|
2542
2459
|
}
|
|
2543
2460
|
writeMethod = 'update';
|
|
2544
|
-
|
|
2461
|
+
_iterator22 = _createForOfIteratorHelper(compactedToWrite);
|
|
2545
2462
|
_context19.prev = 17;
|
|
2546
|
-
|
|
2463
|
+
_iterator22.s();
|
|
2547
2464
|
case 19:
|
|
2548
|
-
if ((
|
|
2465
|
+
if ((_step22 = _iterator22.n()).done) {
|
|
2549
2466
|
_context19.next = 25;
|
|
2550
2467
|
break;
|
|
2551
2468
|
}
|
|
2552
|
-
order =
|
|
2469
|
+
order = _step22.value;
|
|
2553
2470
|
_context19.next = 23;
|
|
2554
|
-
return
|
|
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
|
-
|
|
2481
|
+
_iterator22.e(_context19.t0);
|
|
2565
2482
|
case 30:
|
|
2566
2483
|
_context19.prev = 30;
|
|
2567
|
-
|
|
2484
|
+
_iterator22.f();
|
|
2568
2485
|
return _context19.finish(30);
|
|
2569
2486
|
case 33:
|
|
2570
|
-
|
|
2571
|
-
|
|
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
|
|
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
|
-
|
|
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:
|
|
2556
|
+
storageKey: _this21.getOrderStorageKey(orderSnapshot)
|
|
2640
2557
|
});
|
|
2641
|
-
if (!(typeof
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2586
|
+
return _this21.dbManager.bulkAdd(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
2670
2587
|
case 18:
|
|
2671
|
-
|
|
2672
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2656
|
+
if (!(typeof _this22.dbManager.getAll === 'function')) {
|
|
2740
2657
|
_context23.next = 6;
|
|
2741
2658
|
break;
|
|
2742
2659
|
}
|
|
2743
2660
|
_context23.next = 3;
|
|
2744
|
-
return
|
|
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 =
|
|
2754
|
-
mergedSnapshot =
|
|
2755
|
-
|
|
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
|
|
2679
|
+
return _this22.dbManager.clear(INDEXDB_STORE_NAME);
|
|
2763
2680
|
case 13:
|
|
2764
|
-
|
|
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
|
|
2691
|
+
return _this22.dbManager.bulkAdd(INDEXDB_STORE_NAME, mergedSnapshot);
|
|
2775
2692
|
case 18:
|
|
2776
|
-
|
|
2777
|
-
|
|
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
|
|
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 =
|
|
2746
|
+
_context26.next = 6;
|
|
2829
2747
|
break;
|
|
2830
2748
|
}
|
|
2831
|
-
_context26.next =
|
|
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
|
|
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
|
|
2762
|
+
case 6:
|
|
2845
2763
|
this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, '');
|
|
2846
2764
|
this.emitOrdersChanged([], 'clear');
|
|
2847
|
-
case
|
|
2765
|
+
case 8:
|
|
2848
2766
|
case "end":
|
|
2849
2767
|
return _context26.stop();
|
|
2850
2768
|
}
|