@pisell/pisellos 2.3.73 → 2.3.75
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/core/index.d.ts +7 -0
- package/dist/core/index.js +111 -71
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +36 -64
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Quotation/index.d.ts +6 -0
- package/dist/modules/Quotation/index.js +75 -19
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.d.ts +1 -0
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.d.ts +8 -2
- package/dist/server/index.js +303 -269
- package/dist/server/modules/floor-plan/index.d.ts +4 -0
- package/dist/server/modules/floor-plan/index.js +240 -98
- package/dist/server/modules/menu/index.js +75 -59
- package/dist/server/modules/order/index.d.ts +17 -7
- package/dist/server/modules/order/index.js +421 -211
- package/dist/server/modules/products/index.d.ts +8 -2
- package/dist/server/modules/products/index.js +191 -117
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +24 -17
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +38 -41
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -252
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.js +45 -55
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.d.ts +7 -0
- package/lib/core/index.js +149 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +122 -127
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +70 -76
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +1713 -2118
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.js +88 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.d.ts +6 -0
- package/lib/modules/Quotation/index.js +110 -103
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/ResourcePlanner/index.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +589 -770
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
- package/lib/modules/Schedule/index.js +100 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.d.ts +1 -0
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.d.ts +8 -2
- package/lib/server/index.js +3083 -2663
- package/lib/server/modules/floor-plan/index.d.ts +4 -0
- package/lib/server/modules/floor-plan/index.js +159 -127
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +170 -124
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.d.ts +17 -7
- package/lib/server/modules/order/index.js +916 -977
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.d.ts +8 -2
- package/lib/server/modules/products/index.js +656 -471
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +225 -186
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1186 -1410
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1527 -1340
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.js +607 -522
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -156
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -43,6 +43,7 @@ import { getOrderPaymentIdentityKeys, isIdentifiedPendingOrderPayment, isPending
|
|
|
43
43
|
var INDEXDB_STORE_NAME = 'orders';
|
|
44
44
|
var ORDER_STORAGE_KEY_FIELD = '__order_storage_key';
|
|
45
45
|
var ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY = 'server_order_last_full_fetch_at';
|
|
46
|
+
var ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY = 'server_order_last_full_fetch_shop_id';
|
|
46
47
|
var ORDER_SYNC_THROTTLE_MS_STORAGE_KEY = 'order_sync_throttle_ms';
|
|
47
48
|
var DEFAULT_ORDER_SYNC_THROTTLE_MS = 2000;
|
|
48
49
|
/** pubsub 回声写入去重窗口:业务 API 刚写入后,跳过同单 SQLite patch */
|
|
@@ -115,7 +116,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
115
116
|
case 0:
|
|
116
117
|
changedOrders = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
|
|
117
118
|
source = _args.length > 1 ? _args[1] : undefined;
|
|
118
|
-
console.log('触发emitOrdersChanged');
|
|
119
119
|
payload = {
|
|
120
120
|
list: this.store.list,
|
|
121
121
|
changedOrders: changedOrders.map(function (order) {
|
|
@@ -123,9 +123,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
123
123
|
}),
|
|
124
124
|
source: source
|
|
125
125
|
};
|
|
126
|
-
_context.next =
|
|
126
|
+
_context.next = 5;
|
|
127
127
|
return this.core.effects.emit(OrderHooks.onOrdersChanged, payload);
|
|
128
|
-
case
|
|
128
|
+
case 5:
|
|
129
129
|
case "end":
|
|
130
130
|
return _context.stop();
|
|
131
131
|
}
|
|
@@ -308,18 +308,23 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
308
308
|
}, {
|
|
309
309
|
key: "normalizeOrderCollectionsForIngress",
|
|
310
310
|
value: function normalizeOrderCollectionsForIngress(order, source) {
|
|
311
|
-
var
|
|
312
|
-
var
|
|
311
|
+
var sourceOrderRecord = order;
|
|
312
|
+
var sourceOrder = sourceOrderRecord;
|
|
313
313
|
if (Array.isArray(sourceOrderRecord.payments)) {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
314
|
+
sourceOrder = _objectSpread(_objectSpread({}, sourceOrderRecord), {}, {
|
|
315
|
+
payments: sourceOrderRecord.payments.map(function (payment) {
|
|
316
|
+
if (!isPendingOrderPayment(payment) || getOrderPaymentIdentityKeys(payment).some(function (key) {
|
|
317
|
+
return key.startsWith('unique_payment_number:');
|
|
318
|
+
})) {
|
|
319
|
+
return payment;
|
|
320
|
+
}
|
|
321
|
+
return _objectSpread(_objectSpread({}, payment), {}, _defineProperty({}, PENDING_PAYMENT_WITHOUT_UNIQUE_MARKER, true));
|
|
322
|
+
})
|
|
321
323
|
});
|
|
322
324
|
}
|
|
325
|
+
|
|
326
|
+
// normalizeOrderCollections 内部已经 cloneDeep;这里只浅复制被改写的 payments,
|
|
327
|
+
// 既不修改调用方对象,也避免对整笔订单重复深拷贝。
|
|
323
328
|
var result = normalizeOrderCollections(sourceOrder);
|
|
324
329
|
var normalizedOrderRecord = result.order;
|
|
325
330
|
if (Array.isArray(normalizedOrderRecord.payments)) {
|
|
@@ -700,26 +705,96 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
700
705
|
key: "preload",
|
|
701
706
|
value: function () {
|
|
702
707
|
var _preload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
703
|
-
var orders;
|
|
708
|
+
var preloadStartedAt, cachedOrders, sqliteLoadTimings, memoryPrepareStartedAt, memoryOrders, memoryPrepareMs, syncMapStartedAt, syncMapMs, onOrdersLoadedStartedAt, onOrdersLoadedMs, emitOrdersChangedStartedAt, emitOrdersChangedMs, orders;
|
|
704
709
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
705
710
|
while (1) switch (_context4.prev = _context4.next) {
|
|
706
711
|
case 0:
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
712
|
+
preloadStartedAt = Date.now();
|
|
713
|
+
cachedOrders = null;
|
|
714
|
+
if (!this.dbManager) {
|
|
715
|
+
_context4.next = 12;
|
|
716
|
+
break;
|
|
717
|
+
}
|
|
718
|
+
_context4.prev = 3;
|
|
719
|
+
_context4.next = 6;
|
|
720
|
+
return this.loadOrdersFromSQLite({
|
|
721
|
+
throwOnError: true,
|
|
722
|
+
onTiming: function onTiming(timings) {
|
|
723
|
+
sqliteLoadTimings = timings;
|
|
724
|
+
}
|
|
725
|
+
});
|
|
726
|
+
case 6:
|
|
727
|
+
cachedOrders = _context4.sent;
|
|
728
|
+
_context4.next = 12;
|
|
729
|
+
break;
|
|
730
|
+
case 9:
|
|
731
|
+
_context4.prev = 9;
|
|
732
|
+
_context4.t0 = _context4["catch"](3);
|
|
733
|
+
this.logWarning('preload-SQLite读取失败,回退远端全量拉取', {
|
|
734
|
+
error: _context4.t0 instanceof Error ? _context4.t0.message : String(_context4.t0)
|
|
735
|
+
});
|
|
736
|
+
case 12:
|
|
737
|
+
if (!(cachedOrders !== null && this.hasPulledOrdersToday())) {
|
|
738
|
+
_context4.next = 30;
|
|
739
|
+
break;
|
|
740
|
+
}
|
|
741
|
+
memoryPrepareStartedAt = performance.now();
|
|
742
|
+
memoryOrders = this.prepareNormalizedOrdersForMemoryList(cachedOrders);
|
|
743
|
+
memoryPrepareMs = +(performance.now() - memoryPrepareStartedAt).toFixed(2); // loadOrdersFromSQLite 已返回独立且完成集合规范化的新对象;直接进入 store,
|
|
744
|
+
// 不再进行第二轮 normalize 和没有隔离收益的最终 cloneDeep。
|
|
745
|
+
this.store.list = memoryOrders;
|
|
746
|
+
syncMapStartedAt = performance.now();
|
|
747
|
+
this.syncOrdersMap();
|
|
748
|
+
syncMapMs = +(performance.now() - syncMapStartedAt).toFixed(2);
|
|
749
|
+
onOrdersLoadedStartedAt = performance.now();
|
|
750
|
+
_context4.next = 23;
|
|
751
|
+
return this.core.effects.emit(OrderHooks.onOrdersLoaded, this.store.list);
|
|
752
|
+
case 23:
|
|
753
|
+
onOrdersLoadedMs = +(performance.now() - onOrdersLoadedStartedAt).toFixed(2);
|
|
754
|
+
emitOrdersChangedStartedAt = performance.now();
|
|
755
|
+
_context4.next = 27;
|
|
756
|
+
return this.emitOrdersChanged([], 'preload.sqlite');
|
|
757
|
+
case 27:
|
|
758
|
+
emitOrdersChangedMs = +(performance.now() - emitOrdersChangedStartedAt).toFixed(2);
|
|
759
|
+
this.logInfo('预加载完成', {
|
|
760
|
+
trigger: 'preload',
|
|
761
|
+
source: 'SQLite',
|
|
762
|
+
orderCount: this.store.list.length,
|
|
763
|
+
duration: "".concat(Date.now() - preloadStartedAt, "ms"),
|
|
764
|
+
stages: _objectSpread(_objectSpread({}, sqliteLoadTimings || {}), {}, {
|
|
765
|
+
memoryPrepareMs: memoryPrepareMs,
|
|
766
|
+
syncMapMs: syncMapMs,
|
|
767
|
+
onOrdersLoadedMs: onOrdersLoadedMs,
|
|
768
|
+
emitOrdersChangedMs: emitOrdersChangedMs
|
|
769
|
+
})
|
|
770
|
+
});
|
|
771
|
+
return _context4.abrupt("return");
|
|
772
|
+
case 30:
|
|
773
|
+
_context4.next = 32;
|
|
774
|
+
return this.loadOrdersByServer({
|
|
775
|
+
trigger: 'preload'
|
|
776
|
+
});
|
|
777
|
+
case 32:
|
|
710
778
|
orders = _context4.sent;
|
|
711
779
|
this.store.list = cloneDeep(orders);
|
|
712
780
|
this.syncOrdersMap();
|
|
713
|
-
_context4.next =
|
|
781
|
+
_context4.next = 37;
|
|
714
782
|
return this.emitOrdersChanged([], 'preload');
|
|
715
|
-
case
|
|
716
|
-
_context4.next =
|
|
783
|
+
case 37:
|
|
784
|
+
_context4.next = 39;
|
|
717
785
|
return this.core.effects.emit(OrderHooks.onOrdersSyncCompleted, null);
|
|
718
|
-
case
|
|
786
|
+
case 39:
|
|
787
|
+
this.logInfo('预加载完成', {
|
|
788
|
+
trigger: 'preload',
|
|
789
|
+
source: 'Server',
|
|
790
|
+
orderCount: this.store.list.length,
|
|
791
|
+
duration: "".concat(Date.now() - preloadStartedAt, "ms")
|
|
792
|
+
});
|
|
793
|
+
case 40:
|
|
719
794
|
case "end":
|
|
720
795
|
return _context4.stop();
|
|
721
796
|
}
|
|
722
|
-
}, _callee4, this);
|
|
797
|
+
}, _callee4, this, [[3, 9]]);
|
|
723
798
|
}));
|
|
724
799
|
function preload() {
|
|
725
800
|
return _preload.apply(this, arguments);
|
|
@@ -1052,18 +1127,32 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1052
1127
|
var _loadOrdersByServer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
1053
1128
|
var _this5 = this,
|
|
1054
1129
|
_this$store;
|
|
1055
|
-
var
|
|
1130
|
+
var options,
|
|
1131
|
+
orderList,
|
|
1132
|
+
hasFetchedRemoteSnapshot,
|
|
1133
|
+
trigger,
|
|
1134
|
+
protectedOrdersBeforeRemoteFetch,
|
|
1135
|
+
data,
|
|
1136
|
+
_yield$this$replaceOr,
|
|
1137
|
+
mergedOrders,
|
|
1138
|
+
isRemoteSnapshotPersisted,
|
|
1139
|
+
memoryOrders,
|
|
1140
|
+
_args8 = arguments;
|
|
1056
1141
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
1057
1142
|
while (1) switch (_context8.prev = _context8.next) {
|
|
1058
1143
|
case 0:
|
|
1144
|
+
options = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {};
|
|
1059
1145
|
orderList = [];
|
|
1060
|
-
|
|
1146
|
+
hasFetchedRemoteSnapshot = false;
|
|
1147
|
+
trigger = options.trigger || 'unknown';
|
|
1148
|
+
_context8.next = 6;
|
|
1061
1149
|
return this.loadOrdersFromSQLite();
|
|
1062
|
-
case
|
|
1150
|
+
case 6:
|
|
1063
1151
|
protectedOrdersBeforeRemoteFetch = _context8.sent.filter(function (order) {
|
|
1064
1152
|
return _this5.shouldProtectLocalOrderFromRemoteSnapshot(order);
|
|
1065
1153
|
});
|
|
1066
1154
|
this.logInfo('loadOrdersByServer-开始', {
|
|
1155
|
+
trigger: trigger,
|
|
1067
1156
|
hasOrderDataSource: !!this.orderDataSource,
|
|
1068
1157
|
query: ((_this$store = this.store) === null || _this$store === void 0 ? void 0 : _this$store.createdAtQuery) || null,
|
|
1069
1158
|
protectedLocalOrderCount: protectedOrdersBeforeRemoteFetch.length,
|
|
@@ -1072,51 +1161,61 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1072
1161
|
}, 0)
|
|
1073
1162
|
});
|
|
1074
1163
|
if (!this.orderDataSource) {
|
|
1075
|
-
_context8.next =
|
|
1164
|
+
_context8.next = 23;
|
|
1076
1165
|
break;
|
|
1077
1166
|
}
|
|
1078
|
-
_context8.prev =
|
|
1079
|
-
_context8.next =
|
|
1167
|
+
_context8.prev = 9;
|
|
1168
|
+
_context8.next = 12;
|
|
1080
1169
|
return this.orderDataSource.run({
|
|
1081
1170
|
sse: {
|
|
1082
1171
|
query: this.store.createdAtQuery
|
|
1083
1172
|
}
|
|
1084
1173
|
});
|
|
1085
|
-
case
|
|
1174
|
+
case 12:
|
|
1086
1175
|
data = _context8.sent;
|
|
1087
1176
|
orderList = data || [];
|
|
1088
1177
|
this.logInfo('loadOrdersByServer-SSE拉取成功', {
|
|
1178
|
+
trigger: trigger,
|
|
1089
1179
|
count: orderList.length
|
|
1090
1180
|
});
|
|
1091
|
-
|
|
1181
|
+
hasFetchedRemoteSnapshot = true;
|
|
1092
1182
|
this.lastServerFullFetchAtMs = Date.now();
|
|
1093
|
-
_context8.next =
|
|
1183
|
+
_context8.next = 23;
|
|
1094
1184
|
break;
|
|
1095
|
-
case
|
|
1096
|
-
_context8.prev =
|
|
1097
|
-
_context8.t0 = _context8["catch"](
|
|
1185
|
+
case 19:
|
|
1186
|
+
_context8.prev = 19;
|
|
1187
|
+
_context8.t0 = _context8["catch"](9);
|
|
1098
1188
|
this.logInfo('loadOrdersByServer-SSE拉取失败,保持当前内存订单');
|
|
1099
1189
|
return _context8.abrupt("return", this.store.list);
|
|
1100
|
-
case
|
|
1101
|
-
|
|
1190
|
+
case 23:
|
|
1191
|
+
if (hasFetchedRemoteSnapshot) {
|
|
1192
|
+
this.clearOrderSnapshotMarker();
|
|
1193
|
+
}
|
|
1194
|
+
_context8.next = 26;
|
|
1102
1195
|
return this.replaceOrdersSnapshotInSQLite(orderList, 'loadOrdersByServer', protectedOrdersBeforeRemoteFetch);
|
|
1103
|
-
case
|
|
1104
|
-
|
|
1196
|
+
case 26:
|
|
1197
|
+
_yield$this$replaceOr = _context8.sent;
|
|
1198
|
+
mergedOrders = _yield$this$replaceOr.orders;
|
|
1199
|
+
isRemoteSnapshotPersisted = _yield$this$replaceOr.persisted;
|
|
1200
|
+
if (hasFetchedRemoteSnapshot && isRemoteSnapshotPersisted) {
|
|
1201
|
+
this.markOrderPulledAtNow();
|
|
1202
|
+
}
|
|
1105
1203
|
memoryOrders = this.normalizeOrdersForMemoryList(mergedOrders, 'loadOrdersByServer.memory');
|
|
1106
1204
|
this.logInfo('loadOrdersByServer-结束', {
|
|
1205
|
+
trigger: trigger,
|
|
1107
1206
|
count: memoryOrders.length,
|
|
1108
1207
|
persistedCount: mergedOrders.length,
|
|
1109
1208
|
sqliteOnlyDraftCount: mergedOrders.length - memoryOrders.length
|
|
1110
1209
|
});
|
|
1111
|
-
_context8.next =
|
|
1210
|
+
_context8.next = 34;
|
|
1112
1211
|
return this.core.effects.emit(OrderHooks.onOrdersLoaded, memoryOrders);
|
|
1113
|
-
case
|
|
1212
|
+
case 34:
|
|
1114
1213
|
return _context8.abrupt("return", memoryOrders);
|
|
1115
|
-
case
|
|
1214
|
+
case 35:
|
|
1116
1215
|
case "end":
|
|
1117
1216
|
return _context8.stop();
|
|
1118
1217
|
}
|
|
1119
|
-
}, _callee8, this, [[
|
|
1218
|
+
}, _callee8, this, [[9, 19]]);
|
|
1120
1219
|
}));
|
|
1121
1220
|
function loadOrdersByServer() {
|
|
1122
1221
|
return _loadOrdersByServer.apply(this, arguments);
|
|
@@ -1132,53 +1231,76 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1132
1231
|
key: "silentRefresh",
|
|
1133
1232
|
value: (function () {
|
|
1134
1233
|
var _silentRefresh = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
|
|
1135
|
-
var
|
|
1234
|
+
var options,
|
|
1235
|
+
startTime,
|
|
1236
|
+
trigger,
|
|
1237
|
+
elapsedSinceFullFetch,
|
|
1238
|
+
orders,
|
|
1239
|
+
errorMessage,
|
|
1240
|
+
_args9 = arguments;
|
|
1136
1241
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
1137
1242
|
while (1) switch (_context9.prev = _context9.next) {
|
|
1138
1243
|
case 0:
|
|
1244
|
+
options = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {};
|
|
1139
1245
|
startTime = Date.now();
|
|
1246
|
+
trigger = options.trigger || 'background';
|
|
1140
1247
|
elapsedSinceFullFetch = Date.now() - this.lastServerFullFetchAtMs;
|
|
1141
1248
|
if (!(this.lastServerFullFetchAtMs > 0 && elapsedSinceFullFetch < ORDER_SILENT_REFRESH_MIN_INTERVAL_MS)) {
|
|
1142
|
-
_context9.next =
|
|
1249
|
+
_context9.next = 7;
|
|
1143
1250
|
break;
|
|
1144
1251
|
}
|
|
1252
|
+
this.logInfo('silentRefresh 跳过全量 SSE', {
|
|
1253
|
+
trigger: trigger,
|
|
1254
|
+
reason: 'within_min_interval',
|
|
1255
|
+
minIntervalMs: ORDER_SILENT_REFRESH_MIN_INTERVAL_MS,
|
|
1256
|
+
elapsedSinceFullFetchMs: elapsedSinceFullFetch,
|
|
1257
|
+
orderCount: this.store.list.length
|
|
1258
|
+
});
|
|
1145
1259
|
return _context9.abrupt("return", this.store.list);
|
|
1146
|
-
case
|
|
1147
|
-
this.logInfo('silentRefresh 开始'
|
|
1148
|
-
|
|
1260
|
+
case 7:
|
|
1261
|
+
this.logInfo('silentRefresh 开始', {
|
|
1262
|
+
trigger: trigger,
|
|
1263
|
+
elapsedSinceFullFetchMs: elapsedSinceFullFetch,
|
|
1264
|
+
orderCount: this.store.list.length
|
|
1265
|
+
});
|
|
1266
|
+
_context9.prev = 8;
|
|
1149
1267
|
// 刷新前,需要更新当前营业日边界(store.createdAtQuery)
|
|
1150
1268
|
this.updateCreateStore();
|
|
1151
|
-
_context9.next =
|
|
1152
|
-
return this.loadOrdersByServer(
|
|
1153
|
-
|
|
1269
|
+
_context9.next = 12;
|
|
1270
|
+
return this.loadOrdersByServer({
|
|
1271
|
+
trigger: trigger
|
|
1272
|
+
});
|
|
1273
|
+
case 12:
|
|
1154
1274
|
orders = _context9.sent;
|
|
1155
1275
|
this.store.list = cloneDeep(orders);
|
|
1156
1276
|
this.syncOrdersMap();
|
|
1157
|
-
_context9.next =
|
|
1277
|
+
_context9.next = 17;
|
|
1158
1278
|
return this.emitOrdersChanged([], 'silentRefresh');
|
|
1159
|
-
case
|
|
1160
|
-
_context9.next =
|
|
1279
|
+
case 17:
|
|
1280
|
+
_context9.next = 19;
|
|
1161
1281
|
return this.core.effects.emit(OrderHooks.onOrdersSyncCompleted, null);
|
|
1162
|
-
case
|
|
1282
|
+
case 19:
|
|
1163
1283
|
this.logInfo('silentRefresh 完成', {
|
|
1284
|
+
trigger: trigger,
|
|
1164
1285
|
orderCount: orders.length,
|
|
1165
1286
|
duration: "".concat(Date.now() - startTime, "ms")
|
|
1166
1287
|
});
|
|
1167
1288
|
return _context9.abrupt("return", this.store.list);
|
|
1168
|
-
case
|
|
1169
|
-
_context9.prev =
|
|
1170
|
-
_context9.t0 = _context9["catch"](
|
|
1289
|
+
case 23:
|
|
1290
|
+
_context9.prev = 23;
|
|
1291
|
+
_context9.t0 = _context9["catch"](8);
|
|
1171
1292
|
errorMessage = _context9.t0 instanceof Error ? _context9.t0.message : String(_context9.t0);
|
|
1172
1293
|
this.logError('silentRefresh 失败', {
|
|
1294
|
+
trigger: trigger,
|
|
1173
1295
|
duration: "".concat(Date.now() - startTime, "ms"),
|
|
1174
1296
|
error: errorMessage
|
|
1175
1297
|
});
|
|
1176
1298
|
return _context9.abrupt("return", this.store.list);
|
|
1177
|
-
case
|
|
1299
|
+
case 28:
|
|
1178
1300
|
case "end":
|
|
1179
1301
|
return _context9.stop();
|
|
1180
1302
|
}
|
|
1181
|
-
}, _callee9, this, [[
|
|
1303
|
+
}, _callee9, this, [[8, 23]]);
|
|
1182
1304
|
}));
|
|
1183
1305
|
function silentRefresh() {
|
|
1184
1306
|
return _silentRefresh.apply(this, arguments);
|
|
@@ -1190,6 +1312,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1190
1312
|
value: function normalizeOrderForMemoryList(order) {
|
|
1191
1313
|
var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'normalizeOrderForMemoryList';
|
|
1192
1314
|
var normalizedOrder = this.normalizeOrderCollectionsForIngress(order, source);
|
|
1315
|
+
return this.prepareNormalizedOrderForMemoryList(normalizedOrder);
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
/**
|
|
1319
|
+
* 将已经完成集合规范化的订单转换为内存身份,不重复扫描 products/bookings/payments。
|
|
1320
|
+
*/
|
|
1321
|
+
}, {
|
|
1322
|
+
key: "prepareNormalizedOrderForMemoryList",
|
|
1323
|
+
value: function prepareNormalizedOrderForMemoryList(normalizedOrder) {
|
|
1193
1324
|
var externalSaleNumber = normalizedOrder === null || normalizedOrder === void 0 ? void 0 : normalizedOrder.external_sale_number;
|
|
1194
1325
|
if (this.isDraftOrder(normalizedOrder) && !this.hasRealOrderId(normalizedOrder)) {
|
|
1195
1326
|
return normalizedOrder;
|
|
@@ -1205,15 +1336,25 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1205
1336
|
});
|
|
1206
1337
|
}
|
|
1207
1338
|
}, {
|
|
1208
|
-
key: "
|
|
1209
|
-
value: function
|
|
1339
|
+
key: "prepareNormalizedOrdersForMemoryList",
|
|
1340
|
+
value: function prepareNormalizedOrdersForMemoryList(orders) {
|
|
1210
1341
|
var _this6 = this;
|
|
1211
1342
|
return orders.map(function (order) {
|
|
1212
|
-
return _this6.
|
|
1343
|
+
return _this6.prepareNormalizedOrderForMemoryList(order);
|
|
1213
1344
|
}).filter(function (order) {
|
|
1214
1345
|
return _this6.shouldKeepOrderInMemory(order);
|
|
1215
1346
|
});
|
|
1216
1347
|
}
|
|
1348
|
+
}, {
|
|
1349
|
+
key: "normalizeOrdersForMemoryList",
|
|
1350
|
+
value: function normalizeOrdersForMemoryList(orders, source) {
|
|
1351
|
+
var _this7 = this;
|
|
1352
|
+
return orders.map(function (order) {
|
|
1353
|
+
return _this7.normalizeOrderForMemoryList(order, source);
|
|
1354
|
+
}).filter(function (order) {
|
|
1355
|
+
return _this7.shouldKeepOrderInMemory(order);
|
|
1356
|
+
});
|
|
1357
|
+
}
|
|
1217
1358
|
}, {
|
|
1218
1359
|
key: "hasRealOrderId",
|
|
1219
1360
|
value: function hasRealOrderId(order) {
|
|
@@ -1246,7 +1387,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1246
1387
|
key: "overwriteExistingOrder",
|
|
1247
1388
|
value: (function () {
|
|
1248
1389
|
var _overwriteExistingOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(fresh) {
|
|
1249
|
-
var
|
|
1390
|
+
var _this8 = this;
|
|
1250
1391
|
var orderId, key, normalizedFresh, existingOrder, reconciledFresh;
|
|
1251
1392
|
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
1252
1393
|
while (1) switch (_context10.prev = _context10.next) {
|
|
@@ -1283,9 +1424,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1283
1424
|
this.store.list = this.store.list.map(function (order) {
|
|
1284
1425
|
var id = order === null || order === void 0 ? void 0 : order.order_id;
|
|
1285
1426
|
if (id === undefined || id === null) {
|
|
1286
|
-
return
|
|
1427
|
+
return _this8.normalizeOrderForMemoryList(order, 'overwriteExistingOrder.existingMemory');
|
|
1287
1428
|
}
|
|
1288
|
-
return
|
|
1429
|
+
return _this8.getIdKey(id) === key ? reconciledFresh : _this8.normalizeOrderForMemoryList(order, 'overwriteExistingOrder.existingMemory');
|
|
1289
1430
|
});
|
|
1290
1431
|
this.syncOrdersMap();
|
|
1291
1432
|
_context10.next = 16;
|
|
@@ -1357,7 +1498,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1357
1498
|
key: "markOrderSyncedByExternalSaleNumber",
|
|
1358
1499
|
value: function () {
|
|
1359
1500
|
var _markOrderSyncedByExternalSaleNumber = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(params) {
|
|
1360
|
-
var
|
|
1501
|
+
var _this9 = this,
|
|
1361
1502
|
_existing$external_sa,
|
|
1362
1503
|
_nextOrder$order_id;
|
|
1363
1504
|
var externalSaleNumber, key, targetIndex, existing, nextOrder, storageKey;
|
|
@@ -1378,7 +1519,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1378
1519
|
targetIndex = this.store.list.findIndex(function (order) {
|
|
1379
1520
|
var value = order === null || order === void 0 ? void 0 : order.external_sale_number;
|
|
1380
1521
|
if (value === undefined || value === null || value === '') return false;
|
|
1381
|
-
return
|
|
1522
|
+
return _this9.getIdKey(value) === key;
|
|
1382
1523
|
});
|
|
1383
1524
|
if (!(targetIndex < 0)) {
|
|
1384
1525
|
_context12.next = 9;
|
|
@@ -1436,7 +1577,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1436
1577
|
key: "upsertPendingSyncOrders",
|
|
1437
1578
|
value: (function () {
|
|
1438
1579
|
var _upsertPendingSyncOrders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(pendingOrders) {
|
|
1439
|
-
var
|
|
1580
|
+
var _this10 = this;
|
|
1440
1581
|
var options,
|
|
1441
1582
|
pendingMap,
|
|
1442
1583
|
memoryPendingMap,
|
|
@@ -1532,7 +1673,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1532
1673
|
});
|
|
1533
1674
|
mergeActions = {};
|
|
1534
1675
|
updatedList = this.store.list.map(function (order) {
|
|
1535
|
-
return
|
|
1676
|
+
return _this10.normalizeOrderForMemoryList(order, 'upsertPendingSyncOrders.existingMemory');
|
|
1536
1677
|
}); // 与 mergeOrdersToStore 一致:基于身份键(field:value)建立索引,把「查找已存在订单」
|
|
1537
1678
|
// 从 O(n) 线性扫描降为 O(1),整体复杂度由 O(n^2) 降为 O(n + m)。
|
|
1538
1679
|
identityKeyToIndex = new Map();
|
|
@@ -1642,7 +1783,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1642
1783
|
key: "upsertLocalDraftOrders",
|
|
1643
1784
|
value: (function () {
|
|
1644
1785
|
var _upsertLocalDraftOrders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(draftOrders) {
|
|
1645
|
-
var
|
|
1786
|
+
var _this11 = this;
|
|
1646
1787
|
var draftMap, memoryDraftMap, _iterator9, _step9, order, draftOrder, storageKey, memoryDraftOrder, mergeActions, updatedList, identityKeyToIndex, index, _iterator10, _step10, key, _iterator11, _step11, _step11$value, _storageKey2, _draftOrder, matchIndex, existingOrder, reconciledDraftOrder, mergedOrder, nextOrder, insertIndex, patchedOrders, previousList, removedLegacyMemoryDraft;
|
|
1647
1788
|
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
1648
1789
|
while (1) switch (_context14.prev = _context14.next) {
|
|
@@ -1712,7 +1853,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1712
1853
|
});
|
|
1713
1854
|
mergeActions = {};
|
|
1714
1855
|
updatedList = this.store.list.filter(function (order) {
|
|
1715
|
-
return
|
|
1856
|
+
return _this11.shouldKeepOrderInMemory(order);
|
|
1716
1857
|
});
|
|
1717
1858
|
identityKeyToIndex = new Map();
|
|
1718
1859
|
for (index = 0; index < updatedList.length; index += 1) {
|
|
@@ -1799,7 +1940,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1799
1940
|
storeOrderCountAfter: this.store.list.length
|
|
1800
1941
|
});
|
|
1801
1942
|
removedLegacyMemoryDraft = previousList.some(function (order) {
|
|
1802
|
-
return !
|
|
1943
|
+
return !_this11.shouldKeepOrderInMemory(order);
|
|
1803
1944
|
});
|
|
1804
1945
|
if (!(memoryDraftMap.size > 0 || removedLegacyMemoryDraft)) {
|
|
1805
1946
|
_context14.next = 84;
|
|
@@ -1807,7 +1948,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1807
1948
|
}
|
|
1808
1949
|
_context14.next = 84;
|
|
1809
1950
|
return this.emitOrdersChanged(patchedOrders.filter(function (order) {
|
|
1810
|
-
return
|
|
1951
|
+
return _this11.shouldKeepOrderInMemory(order);
|
|
1811
1952
|
}), 'upsertLocalDraftOrders');
|
|
1812
1953
|
case 84:
|
|
1813
1954
|
case "end":
|
|
@@ -1890,9 +2031,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1890
2031
|
}, {
|
|
1891
2032
|
key: "syncOrdersMap",
|
|
1892
2033
|
value: function syncOrdersMap() {
|
|
1893
|
-
var
|
|
2034
|
+
var _this12 = this;
|
|
1894
2035
|
this.store.list = this.store.list.filter(function (order) {
|
|
1895
|
-
return
|
|
2036
|
+
return _this12.shouldKeepOrderInMemory(order);
|
|
1896
2037
|
});
|
|
1897
2038
|
this.store.map.clear();
|
|
1898
2039
|
var _iterator12 = _createForOfIteratorHelper(this.store.list),
|
|
@@ -1948,7 +2089,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1948
2089
|
}, {
|
|
1949
2090
|
key: "getOrderIdentityEntries",
|
|
1950
2091
|
value: function getOrderIdentityEntries(order) {
|
|
1951
|
-
var
|
|
2092
|
+
var _this13 = this;
|
|
1952
2093
|
if (!order) return [];
|
|
1953
2094
|
var record = order;
|
|
1954
2095
|
var candidates = [{
|
|
@@ -1967,8 +2108,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1967
2108
|
var entries = [];
|
|
1968
2109
|
var _loop = function _loop() {
|
|
1969
2110
|
var candidate = _candidates[_i2];
|
|
1970
|
-
if (
|
|
1971
|
-
var key =
|
|
2111
|
+
if (_this13.isBlankIdentityValue(candidate.value)) return 0; // continue
|
|
2112
|
+
var key = _this13.getIdKey(candidate.value);
|
|
1972
2113
|
if (entries.some(function (entry) {
|
|
1973
2114
|
return entry.field === candidate.field && entry.key === key;
|
|
1974
2115
|
})) return 0; // continue
|
|
@@ -2035,30 +2176,29 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2035
2176
|
}, {
|
|
2036
2177
|
key: "setupOrderSync",
|
|
2037
2178
|
value: function setupOrderSync() {
|
|
2038
|
-
var
|
|
2179
|
+
var _this14 = this;
|
|
2039
2180
|
if (!this.orderDataSource) return;
|
|
2040
2181
|
this.orderDataSource.run({
|
|
2041
2182
|
pubsub: {
|
|
2042
2183
|
callback: function callback(res) {
|
|
2043
2184
|
var _message$id, _message$order_id, _message$type;
|
|
2044
|
-
console.log('orderDataSource', res);
|
|
2045
2185
|
var pubsubReceivedAt = Date.now();
|
|
2046
|
-
var message =
|
|
2186
|
+
var message = _this14.normalizeOrderSyncMessage(res);
|
|
2047
2187
|
if (!message) return;
|
|
2048
2188
|
message._pubsubReceivedAt = pubsubReceivedAt;
|
|
2049
|
-
|
|
2050
|
-
var throttleMs =
|
|
2051
|
-
var routeInfo =
|
|
2052
|
-
|
|
2189
|
+
_this14.pendingSyncMessages.push(message);
|
|
2190
|
+
var throttleMs = _this14.getOrderSyncThrottleMs();
|
|
2191
|
+
var routeInfo = _this14.resolveSyncMessageRoute(message);
|
|
2192
|
+
_this14.logInfo('orderSync-收到消息并入队', {
|
|
2053
2193
|
id: (_message$id = message.id) !== null && _message$id !== void 0 ? _message$id : null,
|
|
2054
2194
|
order_id: (_message$order_id = message.order_id) !== null && _message$order_id !== void 0 ? _message$order_id : null,
|
|
2055
2195
|
type: (_message$type = message.type) !== null && _message$type !== void 0 ? _message$type : null,
|
|
2056
|
-
pendingCount:
|
|
2196
|
+
pendingCount: _this14.pendingSyncMessages.length,
|
|
2057
2197
|
throttleMs: throttleMs,
|
|
2058
2198
|
pubsubReceivedAt: new Date(pubsubReceivedAt).toISOString(),
|
|
2059
2199
|
fullMessage: JSON.stringify(message)
|
|
2060
2200
|
});
|
|
2061
|
-
|
|
2201
|
+
_this14.scheduleOrderSyncThrottle();
|
|
2062
2202
|
}
|
|
2063
2203
|
}
|
|
2064
2204
|
}).catch(function () {
|
|
@@ -2075,7 +2215,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2075
2215
|
}, {
|
|
2076
2216
|
key: "scheduleOrderSyncThrottle",
|
|
2077
2217
|
value: function scheduleOrderSyncThrottle() {
|
|
2078
|
-
var
|
|
2218
|
+
var _this15 = this;
|
|
2079
2219
|
if (this.isProcessingSyncBatch) return;
|
|
2080
2220
|
if (this.isIdlePhase) {
|
|
2081
2221
|
this.isIdlePhase = false;
|
|
@@ -2086,8 +2226,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2086
2226
|
if (this.syncTimer) return;
|
|
2087
2227
|
var throttleMs = this.getOrderSyncThrottleMs();
|
|
2088
2228
|
this.syncTimer = setTimeout(function () {
|
|
2089
|
-
|
|
2090
|
-
void
|
|
2229
|
+
_this15.syncTimer = undefined;
|
|
2230
|
+
void _this15.flushOrderSyncMessagesByThrottle();
|
|
2091
2231
|
}, throttleMs);
|
|
2092
2232
|
}
|
|
2093
2233
|
|
|
@@ -2155,7 +2295,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2155
2295
|
key: "processOrderSyncMessages",
|
|
2156
2296
|
value: (function () {
|
|
2157
2297
|
var _processOrderSyncMessages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {
|
|
2158
|
-
var
|
|
2298
|
+
var _this16 = this;
|
|
2159
2299
|
var messages, batchProcessStartAt, earliestReceivedAt, upsertOrders, refreshIds, uniqueRefreshIds, upsertList, _this$filterRedundant, toFetch, skipped, freshOrders, batchProcessEndAt;
|
|
2160
2300
|
return _regeneratorRuntime().wrap(function _callee17$(_context17) {
|
|
2161
2301
|
while (1) switch (_context17.prev = _context17.next) {
|
|
@@ -2182,13 +2322,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2182
2322
|
upsertOrders = new Map();
|
|
2183
2323
|
refreshIds = [];
|
|
2184
2324
|
messages.forEach(function (msg, msgIndex) {
|
|
2185
|
-
var routeInfo =
|
|
2325
|
+
var routeInfo = _this16.resolveSyncMessageRoute(msg);
|
|
2186
2326
|
var hasBatchIds = routeInfo.hasBatchIds;
|
|
2187
2327
|
var singleId = routeInfo.singleId;
|
|
2188
2328
|
var hasSingleId = routeInfo.hasSingleId;
|
|
2189
|
-
var normalizedBody =
|
|
2329
|
+
var normalizedBody = _this16.normalizeOrderSyncPayload(msg.body || msg.data);
|
|
2190
2330
|
if (routeInfo.route === 'bodyUpsert' && normalizedBody) {
|
|
2191
|
-
upsertOrders.set(
|
|
2331
|
+
upsertOrders.set(_this16.getIdKey(normalizedBody.order_id), normalizedBody);
|
|
2192
2332
|
return;
|
|
2193
2333
|
}
|
|
2194
2334
|
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));
|
|
@@ -2326,7 +2466,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2326
2466
|
key: "mergeOrdersToStore",
|
|
2327
2467
|
value: (function () {
|
|
2328
2468
|
var _mergeOrdersToStore = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19(freshOrders, source) {
|
|
2329
|
-
var
|
|
2469
|
+
var _this17 = this;
|
|
2330
2470
|
var storeOrderCountBefore, normalizedFreshOrders, incomingProductsHaveStableIdentity, _iterator14, _step14, order, id, rawProducts, _incomingProductsHave, allProductsHaveStableIdentity, orderIdKey, uniqueFreshOrders, uniqueFreshCount, patchedOrders, remoteProductMembershipChanges, forceWriteStorageKeys, storageKeyMigrations, mergeActions, existingProductsHaveStableIdentity, updatedList, identityKeyToIndex, index, identityKeys, _iterator15, _step15, key, _iterator16, _step16, fresh, freshIdentityKeys, matchIndex, storageKey, mergeKey, existingOrder, previousStorageKey, _ref, _existingOrder$order_, _ref2, _external_sale_number2, _existingOrder$paymen, _fresh$payment_status, _existingOrder$need_s, _fresh$need_sync, _ref3, _existingOrder$order_2, _ref4, _external_sale_number3, _existingOrder$is_dra, _fresh$is_draft_order, mergedOrder, freshOrderId, incomingProductsAreStable, membershipChange, mergedProductsHaveStableIdentity, adjustedMatchIndex, duplicateIndexes, _iterator17, _step17, _key2, _duplicateIndex, _iterator18, _step18, duplicateIndex, _index, _iterator19, _step19, _key, nextStorageKey, _ref5, _ref6, _mergedOrder$order_id, mergedStorageKey, insertIndex, insertCount, updateCount;
|
|
2331
2471
|
return _regeneratorRuntime().wrap(function _callee19$(_context19) {
|
|
2332
2472
|
while (1) switch (_context19.prev = _context19.next) {
|
|
@@ -2387,10 +2527,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2387
2527
|
storageKeyMigrations = [];
|
|
2388
2528
|
mergeActions = {};
|
|
2389
2529
|
existingProductsHaveStableIdentity = this.store.list.map(function (order) {
|
|
2390
|
-
return
|
|
2530
|
+
return _this17.doProductsHaveStableMembershipIdentity(order.products);
|
|
2391
2531
|
});
|
|
2392
2532
|
updatedList = this.store.list.map(function (order) {
|
|
2393
|
-
return
|
|
2533
|
+
return _this17.normalizeOrderForMemoryList(order, "".concat(source, ".existingMemory"));
|
|
2394
2534
|
}); // 基于身份键(field:value)建立索引,把「查找已存在订单」从 O(n) 线性扫描降为 O(1),
|
|
2395
2535
|
// 整体合并复杂度由 O(n^2) 降为 O(n + m)。索引语义与 doOrdersShareIdentity 完全一致:
|
|
2396
2536
|
// 任一身份字段(order_id/external_sale_number/order_number/shop_order_number)同值即同一单。
|
|
@@ -2694,7 +2834,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2694
2834
|
}, {
|
|
2695
2835
|
key: "getRemoteProductMembershipChange",
|
|
2696
2836
|
value: function getRemoteProductMembershipChange(existingOrder, mergedOrder, source) {
|
|
2697
|
-
var
|
|
2837
|
+
var _this18 = this,
|
|
2698
2838
|
_mergedOrder$order_id2;
|
|
2699
2839
|
if (!this.isRemoteProductMembershipChangeSource(source)) return null;
|
|
2700
2840
|
var previousProducts = Array.isArray(existingOrder.products) ? existingOrder.products : [];
|
|
@@ -2709,13 +2849,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2709
2849
|
var _loop2 = function _loop2() {
|
|
2710
2850
|
var previousProduct = _step21.value;
|
|
2711
2851
|
var matchedIndex = currentProducts.findIndex(function (currentProduct, index) {
|
|
2712
|
-
return unmatchedCurrentIndexes.has(index) &&
|
|
2852
|
+
return unmatchedCurrentIndexes.has(index) && _this18.isSameProductMembershipItem(previousProduct, currentProduct);
|
|
2713
2853
|
});
|
|
2714
2854
|
if (matchedIndex >= 0) {
|
|
2715
2855
|
unmatchedCurrentIndexes.delete(matchedIndex);
|
|
2716
2856
|
return 1; // continue
|
|
2717
2857
|
}
|
|
2718
|
-
var productKey =
|
|
2858
|
+
var productKey = _this18.getProductMembershipKey(previousProduct);
|
|
2719
2859
|
if (productKey) removedProductKeys.push(productKey);
|
|
2720
2860
|
};
|
|
2721
2861
|
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
|
|
@@ -2727,7 +2867,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2727
2867
|
_iterator21.f();
|
|
2728
2868
|
}
|
|
2729
2869
|
var addedProductKeys = _toConsumableArray(unmatchedCurrentIndexes).map(function (index) {
|
|
2730
|
-
return
|
|
2870
|
+
return _this18.getProductMembershipKey(currentProducts[index]);
|
|
2731
2871
|
}).filter(Boolean);
|
|
2732
2872
|
if (addedProductKeys.length === 0 && removedProductKeys.length === 0) {
|
|
2733
2873
|
return null;
|
|
@@ -2842,12 +2982,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2842
2982
|
}, {
|
|
2843
2983
|
key: "isOrderLookupMatch",
|
|
2844
2984
|
value: function isOrderLookupMatch(order, lookupKey) {
|
|
2845
|
-
var
|
|
2985
|
+
var _this19 = this;
|
|
2846
2986
|
if (!order || !lookupKey) return false;
|
|
2847
2987
|
var candidates = [order.order_id, order.external_sale_number, order.order_number, order.shop_order_number, order.shop_full_order_number];
|
|
2848
2988
|
return candidates.some(function (value) {
|
|
2849
2989
|
if (value === undefined || value === null || value === '') return false;
|
|
2850
|
-
return
|
|
2990
|
+
return _this19.getIdKey(value) === lookupKey;
|
|
2851
2991
|
});
|
|
2852
2992
|
}
|
|
2853
2993
|
|
|
@@ -2899,10 +3039,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2899
3039
|
}, {
|
|
2900
3040
|
key: "findOrderIndexByIdentity",
|
|
2901
3041
|
value: function findOrderIndexByIdentity(orders, target) {
|
|
2902
|
-
var
|
|
3042
|
+
var _this20 = this;
|
|
2903
3043
|
if (this.getOrderIdentityMatchKeys(target).length === 0) return -1;
|
|
2904
3044
|
return orders.findIndex(function (order) {
|
|
2905
|
-
return
|
|
3045
|
+
return _this20.doOrdersShareIdentity(order, target);
|
|
2906
3046
|
});
|
|
2907
3047
|
}
|
|
2908
3048
|
}, {
|
|
@@ -3214,25 +3354,32 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3214
3354
|
}
|
|
3215
3355
|
|
|
3216
3356
|
/**
|
|
3217
|
-
*
|
|
3218
|
-
*
|
|
3219
|
-
* - 无法解析时退化为自然日窗口
|
|
3357
|
+
* 当前订单缓存可复用窗口。
|
|
3358
|
+
* start_time 模式使用精确的营业日起止时间;配置缺失或异常时退化为自然日。
|
|
3220
3359
|
*/
|
|
3221
3360
|
}, {
|
|
3222
|
-
key: "
|
|
3223
|
-
value: function
|
|
3224
|
-
var _this$store2;
|
|
3361
|
+
key: "getCurrentOrderCacheWindow",
|
|
3362
|
+
value: function getCurrentOrderCacheWindow() {
|
|
3225
3363
|
var now = dayjs();
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
var
|
|
3229
|
-
var
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3364
|
+
try {
|
|
3365
|
+
var _coreData$core;
|
|
3366
|
+
var appPlugin = this.core.getPlugin('app');
|
|
3367
|
+
var app = appPlugin === null || appPlugin === void 0 ? void 0 : appPlugin.getApp();
|
|
3368
|
+
var coreData = app === null || app === void 0 ? void 0 : app.data.store.getStore().getDataByModel('core');
|
|
3369
|
+
var boundary = coreData === null || coreData === void 0 || (_coreData$core = coreData.core) === null || _coreData$core === void 0 ? void 0 : _coreData$core.operating_day_boundary;
|
|
3370
|
+
if ((boundary === null || boundary === void 0 ? void 0 : boundary.type) === 'start_time') {
|
|
3371
|
+
var boundaryTime = String(boundary.time || '').trim();
|
|
3372
|
+
var todayBoundary = dayjs("".concat(now.format('YYYY-MM-DD'), " ").concat(boundaryTime));
|
|
3373
|
+
if (todayBoundary.isValid()) {
|
|
3374
|
+
var _startAt = now.isBefore(todayBoundary) ? todayBoundary.subtract(1, 'day') : todayBoundary;
|
|
3375
|
+
return {
|
|
3376
|
+
startAt: _startAt,
|
|
3377
|
+
endExclusiveAt: _startAt.add(1, 'day')
|
|
3378
|
+
};
|
|
3379
|
+
}
|
|
3235
3380
|
}
|
|
3381
|
+
} catch (_unused6) {
|
|
3382
|
+
// 读取营业日配置失败时按自然日兜底,不影响启动。
|
|
3236
3383
|
}
|
|
3237
3384
|
var startAt = now.startOf('day');
|
|
3238
3385
|
return {
|
|
@@ -3245,20 +3392,47 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3245
3392
|
value: function hasPulledOrdersToday() {
|
|
3246
3393
|
var lastFullFetchAt = this.getStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY);
|
|
3247
3394
|
if (!lastFullFetchAt) return false;
|
|
3395
|
+
var currentShopId = this.getCurrentShopId();
|
|
3396
|
+
var lastFullFetchShopId = this.getStorageItem(ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY);
|
|
3397
|
+
if (!currentShopId || !lastFullFetchShopId || currentShopId !== lastFullFetchShopId) {
|
|
3398
|
+
return false;
|
|
3399
|
+
}
|
|
3248
3400
|
var parsed = dayjs(lastFullFetchAt);
|
|
3249
3401
|
if (!parsed.isValid()) return false;
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
var _this$getCurrentPullW = this.getCurrentPullWindow(),
|
|
3254
|
-
startAt = _this$getCurrentPullW.startAt,
|
|
3255
|
-
endExclusiveAt = _this$getCurrentPullW.endExclusiveAt;
|
|
3402
|
+
var _this$getCurrentOrder = this.getCurrentOrderCacheWindow(),
|
|
3403
|
+
startAt = _this$getCurrentOrder.startAt,
|
|
3404
|
+
endExclusiveAt = _this$getCurrentOrder.endExclusiveAt;
|
|
3256
3405
|
return (parsed.isAfter(startAt) || parsed.isSame(startAt)) && parsed.isBefore(endExclusiveAt);
|
|
3257
3406
|
}
|
|
3258
3407
|
}, {
|
|
3259
3408
|
key: "markOrderPulledAtNow",
|
|
3260
3409
|
value: function markOrderPulledAtNow() {
|
|
3410
|
+
var currentShopId = this.getCurrentShopId();
|
|
3411
|
+
if (!currentShopId) return;
|
|
3261
3412
|
this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, dayjs().format('YYYY-MM-DD HH:mm:ss'));
|
|
3413
|
+
this.setStorageItem(ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY, currentShopId);
|
|
3414
|
+
}
|
|
3415
|
+
}, {
|
|
3416
|
+
key: "clearOrderSnapshotMarker",
|
|
3417
|
+
value: function clearOrderSnapshotMarker() {
|
|
3418
|
+
this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, '');
|
|
3419
|
+
this.setStorageItem(ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY, '');
|
|
3420
|
+
}
|
|
3421
|
+
}, {
|
|
3422
|
+
key: "getCurrentShopId",
|
|
3423
|
+
value: function getCurrentShopId() {
|
|
3424
|
+
try {
|
|
3425
|
+
var _coreData$core2;
|
|
3426
|
+
var appPlugin = this.core.getPlugin('app');
|
|
3427
|
+
var app = appPlugin === null || appPlugin === void 0 ? void 0 : appPlugin.getApp();
|
|
3428
|
+
if (!app) return null;
|
|
3429
|
+
var coreData = app.data.store.getStore().getDataByModel('core');
|
|
3430
|
+
var shopId = coreData === null || coreData === void 0 || (_coreData$core2 = coreData.core) === null || _coreData$core2 === void 0 ? void 0 : _coreData$core2.id;
|
|
3431
|
+
if (shopId === undefined || shopId === null || shopId === '') return null;
|
|
3432
|
+
return String(shopId);
|
|
3433
|
+
} catch (_unused7) {
|
|
3434
|
+
return null;
|
|
3435
|
+
}
|
|
3262
3436
|
}
|
|
3263
3437
|
}, {
|
|
3264
3438
|
key: "getStorageItem",
|
|
@@ -3269,7 +3443,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3269
3443
|
if (typeof globalThis !== 'undefined' && globalThis !== null && globalThis !== void 0 && globalThis.localStorage) {
|
|
3270
3444
|
return globalThis.localStorage.getItem(key);
|
|
3271
3445
|
}
|
|
3272
|
-
} catch (
|
|
3446
|
+
} catch (_unused8) {
|
|
3273
3447
|
// 忽略存储异常,避免影响主流程
|
|
3274
3448
|
}
|
|
3275
3449
|
return null;
|
|
@@ -3286,7 +3460,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3286
3460
|
if (typeof globalThis !== 'undefined' && globalThis !== null && globalThis !== void 0 && globalThis.localStorage) {
|
|
3287
3461
|
globalThis.localStorage.setItem(key, value);
|
|
3288
3462
|
}
|
|
3289
|
-
} catch (
|
|
3463
|
+
} catch (_unused9) {
|
|
3290
3464
|
// 忽略存储异常,避免影响主流程
|
|
3291
3465
|
}
|
|
3292
3466
|
}
|
|
@@ -3294,34 +3468,61 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3294
3468
|
key: "loadOrdersFromSQLite",
|
|
3295
3469
|
value: function () {
|
|
3296
3470
|
var _loadOrdersFromSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {
|
|
3297
|
-
var
|
|
3298
|
-
var
|
|
3471
|
+
var _this21 = this;
|
|
3472
|
+
var options,
|
|
3473
|
+
_options$onTiming,
|
|
3474
|
+
loadStartedAt,
|
|
3475
|
+
rawReadStartedAt,
|
|
3476
|
+
orders,
|
|
3477
|
+
sqliteRawReadMs,
|
|
3478
|
+
normalizeStartedAt,
|
|
3479
|
+
normalizedOrders,
|
|
3480
|
+
sqliteNormalizeMs,
|
|
3481
|
+
_args20 = arguments;
|
|
3299
3482
|
return _regeneratorRuntime().wrap(function _callee20$(_context20) {
|
|
3300
3483
|
while (1) switch (_context20.prev = _context20.next) {
|
|
3301
3484
|
case 0:
|
|
3485
|
+
options = _args20.length > 0 && _args20[0] !== undefined ? _args20[0] : {};
|
|
3302
3486
|
if (this.dbManager) {
|
|
3303
|
-
_context20.next =
|
|
3487
|
+
_context20.next = 3;
|
|
3304
3488
|
break;
|
|
3305
3489
|
}
|
|
3306
3490
|
return _context20.abrupt("return", []);
|
|
3307
|
-
case
|
|
3308
|
-
_context20.prev =
|
|
3309
|
-
|
|
3491
|
+
case 3:
|
|
3492
|
+
_context20.prev = 3;
|
|
3493
|
+
loadStartedAt = performance.now();
|
|
3494
|
+
rawReadStartedAt = performance.now();
|
|
3495
|
+
_context20.next = 8;
|
|
3310
3496
|
return this.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
3311
|
-
case
|
|
3497
|
+
case 8:
|
|
3312
3498
|
orders = _context20.sent;
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3499
|
+
sqliteRawReadMs = +(performance.now() - rawReadStartedAt).toFixed(2);
|
|
3500
|
+
normalizeStartedAt = performance.now();
|
|
3501
|
+
normalizedOrders = (orders || []).map(function (order) {
|
|
3502
|
+
return _this21.normalizeOrderCollectionsForIngress(order, 'loadOrdersFromSQLite');
|
|
3503
|
+
});
|
|
3504
|
+
sqliteNormalizeMs = +(performance.now() - normalizeStartedAt).toFixed(2);
|
|
3505
|
+
(_options$onTiming = options.onTiming) === null || _options$onTiming === void 0 || _options$onTiming.call(options, {
|
|
3506
|
+
sqliteRawReadMs: sqliteRawReadMs,
|
|
3507
|
+
sqliteNormalizeMs: sqliteNormalizeMs,
|
|
3508
|
+
sqliteLoadTotalMs: +(performance.now() - loadStartedAt).toFixed(2)
|
|
3509
|
+
});
|
|
3510
|
+
return _context20.abrupt("return", normalizedOrders);
|
|
3511
|
+
case 17:
|
|
3512
|
+
_context20.prev = 17;
|
|
3513
|
+
_context20.t0 = _context20["catch"](3);
|
|
3514
|
+
if (!options.throwOnError) {
|
|
3515
|
+
_context20.next = 21;
|
|
3516
|
+
break;
|
|
3517
|
+
}
|
|
3518
|
+
throw _context20.t0;
|
|
3519
|
+
case 21:
|
|
3319
3520
|
return _context20.abrupt("return", []);
|
|
3320
|
-
case
|
|
3521
|
+
case 22:
|
|
3321
3522
|
case "end":
|
|
3322
3523
|
return _context20.stop();
|
|
3323
3524
|
}
|
|
3324
|
-
}, _callee20, this, [[
|
|
3525
|
+
}, _callee20, this, [[3, 17]]);
|
|
3325
3526
|
}));
|
|
3326
3527
|
function loadOrdersFromSQLite() {
|
|
3327
3528
|
return _loadOrdersFromSQLite.apply(this, arguments);
|
|
@@ -3371,9 +3572,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3371
3572
|
}, {
|
|
3372
3573
|
key: "mergeRemoteSnapshotWithPendingOrders",
|
|
3373
3574
|
value: function mergeRemoteSnapshotWithPendingOrders(remoteOrders, existingOrders) {
|
|
3374
|
-
var
|
|
3575
|
+
var _this22 = this;
|
|
3375
3576
|
var merged = remoteOrders.map(function (order) {
|
|
3376
|
-
return
|
|
3577
|
+
return _this22.normalizeRemoteSyncedOrder(order);
|
|
3377
3578
|
});
|
|
3378
3579
|
var _iterator31 = _createForOfIteratorHelper(existingOrders),
|
|
3379
3580
|
_step31;
|
|
@@ -3447,7 +3648,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3447
3648
|
key: "patchOrdersInSQLite",
|
|
3448
3649
|
value: (function () {
|
|
3449
3650
|
var _patchOrdersInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee23(orders, source) {
|
|
3450
|
-
var
|
|
3651
|
+
var _this23 = this;
|
|
3451
3652
|
var mergeActions,
|
|
3452
3653
|
options,
|
|
3453
3654
|
forceWriteStorageKeys,
|
|
@@ -3491,13 +3692,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3491
3692
|
return migration.to;
|
|
3492
3693
|
}));
|
|
3493
3694
|
ordersSnapshot = cloneDeep(orders).map(function (order) {
|
|
3494
|
-
return
|
|
3695
|
+
return _this23.normalizeOrderCollectionsForIngress(order, "".concat(source, ".sqliteIngress"));
|
|
3495
3696
|
}).map(function (order) {
|
|
3496
|
-
var storageKey =
|
|
3697
|
+
var storageKey = _this23.getOrderStorageKey(order);
|
|
3497
3698
|
if (!storageKey || !migrationTargetStorageKeys.has(storageKey)) return order;
|
|
3498
3699
|
return _objectSpread(_objectSpread({}, order), {}, _defineProperty({}, ORDER_STORAGE_KEY_FIELD, storageKey));
|
|
3499
3700
|
}).filter(function (order) {
|
|
3500
|
-
return
|
|
3701
|
+
return _this23.getOrderStorageKey(order);
|
|
3501
3702
|
});
|
|
3502
3703
|
if (!(ordersSnapshot.length === 0)) {
|
|
3503
3704
|
_context23.next = 13;
|
|
@@ -3520,7 +3721,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3520
3721
|
return _context23.abrupt("return");
|
|
3521
3722
|
case 19:
|
|
3522
3723
|
writtenStorageKeys = new Set(compactedToWrite.map(function (order) {
|
|
3523
|
-
return
|
|
3724
|
+
return _this23.getOrderStorageKey(order);
|
|
3524
3725
|
}).filter(Boolean));
|
|
3525
3726
|
storageKeyMigrations = new Map();
|
|
3526
3727
|
_iterator32 = _createForOfIteratorHelper(options.storageKeyMigrations || []);
|
|
@@ -3568,34 +3769,34 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3568
3769
|
while (1) switch (_context22.prev = _context22.next) {
|
|
3569
3770
|
case 0:
|
|
3570
3771
|
writeMethod = 'none';
|
|
3571
|
-
|
|
3772
|
+
_this23.logInfo('patchOrdersInSQLite-开始', {
|
|
3572
3773
|
source: source,
|
|
3573
3774
|
count: compactedToWrite.length,
|
|
3574
3775
|
dedupedCount: skipped.length
|
|
3575
3776
|
});
|
|
3576
|
-
if (!(typeof
|
|
3777
|
+
if (!(typeof _this23.dbManager.bulkUpdate === 'function')) {
|
|
3577
3778
|
_context22.next = 8;
|
|
3578
3779
|
break;
|
|
3579
3780
|
}
|
|
3580
3781
|
writeMethod = 'bulkUpdate';
|
|
3581
3782
|
_context22.next = 6;
|
|
3582
|
-
return
|
|
3783
|
+
return _this23.dbManager.bulkUpdate(INDEXDB_STORE_NAME, compactedToWrite);
|
|
3583
3784
|
case 6:
|
|
3584
3785
|
_context22.next = 37;
|
|
3585
3786
|
break;
|
|
3586
3787
|
case 8:
|
|
3587
|
-
if (!(typeof
|
|
3788
|
+
if (!(typeof _this23.dbManager.bulkAdd === 'function')) {
|
|
3588
3789
|
_context22.next = 14;
|
|
3589
3790
|
break;
|
|
3590
3791
|
}
|
|
3591
3792
|
writeMethod = 'bulkAdd';
|
|
3592
3793
|
_context22.next = 12;
|
|
3593
|
-
return
|
|
3794
|
+
return _this23.dbManager.bulkAdd(INDEXDB_STORE_NAME, compactedToWrite);
|
|
3594
3795
|
case 12:
|
|
3595
3796
|
_context22.next = 37;
|
|
3596
3797
|
break;
|
|
3597
3798
|
case 14:
|
|
3598
|
-
if (!(typeof
|
|
3799
|
+
if (!(typeof _this23.dbManager.update === 'function')) {
|
|
3599
3800
|
_context22.next = 35;
|
|
3600
3801
|
break;
|
|
3601
3802
|
}
|
|
@@ -3610,7 +3811,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3610
3811
|
}
|
|
3611
3812
|
order = _step33.value;
|
|
3612
3813
|
_context22.next = 23;
|
|
3613
|
-
return
|
|
3814
|
+
return _this23.dbManager.update(INDEXDB_STORE_NAME, order);
|
|
3614
3815
|
case 23:
|
|
3615
3816
|
_context22.next = 19;
|
|
3616
3817
|
break;
|
|
@@ -3635,7 +3836,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3635
3836
|
}
|
|
3636
3837
|
throw new Error('订单 SQLite 数据库不支持写入');
|
|
3637
3838
|
case 37:
|
|
3638
|
-
|
|
3839
|
+
_this23.recordRecentSqliteWrite(source, compactedToWrite);
|
|
3639
3840
|
if (!(writeMethod !== 'none')) {
|
|
3640
3841
|
_context22.next = 84;
|
|
3641
3842
|
break;
|
|
@@ -3651,9 +3852,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3651
3852
|
migration = _step34.value;
|
|
3652
3853
|
_context22.prev = 44;
|
|
3653
3854
|
_context22.next = 47;
|
|
3654
|
-
return
|
|
3855
|
+
return _this23.dbManager.delete(INDEXDB_STORE_NAME, migration.from);
|
|
3655
3856
|
case 47:
|
|
3656
|
-
|
|
3857
|
+
_this23.recentSqliteWriteByStorageKey.delete(migration.from);
|
|
3657
3858
|
_iterator35 = _createForOfIteratorHelper(orders);
|
|
3658
3859
|
_context22.prev = 49;
|
|
3659
3860
|
_iterator35.s();
|
|
@@ -3663,7 +3864,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3663
3864
|
break;
|
|
3664
3865
|
}
|
|
3665
3866
|
_order = _step35.value;
|
|
3666
|
-
if (!(
|
|
3867
|
+
if (!(_this23.getOrderStorageKey(_order) !== migration.to)) {
|
|
3667
3868
|
_context22.next = 55;
|
|
3668
3869
|
break;
|
|
3669
3870
|
}
|
|
@@ -3697,7 +3898,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3697
3898
|
case 71:
|
|
3698
3899
|
_context22.prev = 71;
|
|
3699
3900
|
_context22.t2 = _context22["catch"](44);
|
|
3700
|
-
|
|
3901
|
+
_this23.logError('删除订单旧 SQLite storage key 失败', {
|
|
3701
3902
|
source: source,
|
|
3702
3903
|
order_id: migration.orderId,
|
|
3703
3904
|
oldStorageKey: migration.from,
|
|
@@ -3719,7 +3920,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3719
3920
|
_iterator34.f();
|
|
3720
3921
|
return _context22.finish(81);
|
|
3721
3922
|
case 84:
|
|
3722
|
-
|
|
3923
|
+
_this23.logInfo('patchOrdersInSQLite-完成', {
|
|
3723
3924
|
source: source,
|
|
3724
3925
|
count: compactedToWrite.length,
|
|
3725
3926
|
writeMethod: writeMethod,
|
|
@@ -3768,7 +3969,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3768
3969
|
key: "updateOrderInSQLite",
|
|
3769
3970
|
value: (function () {
|
|
3770
3971
|
var _updateOrderInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25(order, source) {
|
|
3771
|
-
var
|
|
3972
|
+
var _this24 = this;
|
|
3772
3973
|
var options,
|
|
3773
3974
|
orderSnapshot,
|
|
3774
3975
|
_orderSnapshot$order_3,
|
|
@@ -3811,40 +4012,40 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3811
4012
|
while (1) switch (_context24.prev = _context24.next) {
|
|
3812
4013
|
case 0:
|
|
3813
4014
|
writeMethod = 'none';
|
|
3814
|
-
|
|
4015
|
+
_this24.logInfo('updateOrderInSQLite-开始', {
|
|
3815
4016
|
source: source,
|
|
3816
4017
|
orderId: (_orderSnapshot$order_ = orderSnapshot.order_id) !== null && _orderSnapshot$order_ !== void 0 ? _orderSnapshot$order_ : null,
|
|
3817
|
-
storageKey:
|
|
4018
|
+
storageKey: _this24.getOrderStorageKey(orderSnapshot)
|
|
3818
4019
|
});
|
|
3819
|
-
if (!(typeof
|
|
4020
|
+
if (!(typeof _this24.dbManager.update === 'function')) {
|
|
3820
4021
|
_context24.next = 8;
|
|
3821
4022
|
break;
|
|
3822
4023
|
}
|
|
3823
4024
|
writeMethod = 'update';
|
|
3824
4025
|
_context24.next = 6;
|
|
3825
|
-
return
|
|
4026
|
+
return _this24.dbManager.update(INDEXDB_STORE_NAME, orderSnapshot);
|
|
3826
4027
|
case 6:
|
|
3827
4028
|
_context24.next = 22;
|
|
3828
4029
|
break;
|
|
3829
4030
|
case 8:
|
|
3830
|
-
if (!(typeof
|
|
4031
|
+
if (!(typeof _this24.dbManager.bulkUpdate === 'function')) {
|
|
3831
4032
|
_context24.next = 14;
|
|
3832
4033
|
break;
|
|
3833
4034
|
}
|
|
3834
4035
|
writeMethod = 'bulkUpdate';
|
|
3835
4036
|
_context24.next = 12;
|
|
3836
|
-
return
|
|
4037
|
+
return _this24.dbManager.bulkUpdate(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
3837
4038
|
case 12:
|
|
3838
4039
|
_context24.next = 22;
|
|
3839
4040
|
break;
|
|
3840
4041
|
case 14:
|
|
3841
|
-
if (!(typeof
|
|
4042
|
+
if (!(typeof _this24.dbManager.bulkAdd === 'function')) {
|
|
3842
4043
|
_context24.next = 20;
|
|
3843
4044
|
break;
|
|
3844
4045
|
}
|
|
3845
4046
|
writeMethod = 'bulkAdd';
|
|
3846
4047
|
_context24.next = 18;
|
|
3847
|
-
return
|
|
4048
|
+
return _this24.dbManager.bulkAdd(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
3848
4049
|
case 18:
|
|
3849
4050
|
_context24.next = 22;
|
|
3850
4051
|
break;
|
|
@@ -3855,8 +4056,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3855
4056
|
}
|
|
3856
4057
|
throw new Error('订单 SQLite 数据库不支持写入');
|
|
3857
4058
|
case 22:
|
|
3858
|
-
|
|
3859
|
-
|
|
4059
|
+
_this24.recordRecentSqliteWrite(source, [orderSnapshot]);
|
|
4060
|
+
_this24.logInfo('updateOrderInSQLite-完成', {
|
|
3860
4061
|
source: source,
|
|
3861
4062
|
orderId: (_orderSnapshot$order_2 = orderSnapshot.order_id) !== null && _orderSnapshot$order_2 !== void 0 ? _orderSnapshot$order_2 : null,
|
|
3862
4063
|
writeMethod: writeMethod
|
|
@@ -3898,17 +4099,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3898
4099
|
* 用于 SSE 全量拉取与营业日窗口裁剪。
|
|
3899
4100
|
*
|
|
3900
4101
|
* @example
|
|
3901
|
-
* await this.replaceOrdersSnapshotInSQLite(orderList)
|
|
4102
|
+
* const { orders, persisted } = await this.replaceOrdersSnapshotInSQLite(orderList, 'refresh')
|
|
3902
4103
|
*/
|
|
3903
4104
|
)
|
|
3904
4105
|
}, {
|
|
3905
4106
|
key: "replaceOrdersSnapshotInSQLite",
|
|
3906
4107
|
value: (function () {
|
|
3907
4108
|
var _replaceOrdersSnapshotInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee27(orderList, source) {
|
|
3908
|
-
var
|
|
4109
|
+
var _this25 = this;
|
|
3909
4110
|
var protectedOrdersBeforeRemoteFetch,
|
|
3910
4111
|
remoteSnapshot,
|
|
3911
4112
|
mergedSnapshot,
|
|
4113
|
+
persisted,
|
|
3912
4114
|
_args27 = arguments;
|
|
3913
4115
|
return _regeneratorRuntime().wrap(function _callee27$(_context27) {
|
|
3914
4116
|
while (1) switch (_context27.prev = _context27.next) {
|
|
@@ -3918,29 +4120,33 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3918
4120
|
_context27.next = 3;
|
|
3919
4121
|
break;
|
|
3920
4122
|
}
|
|
3921
|
-
return _context27.abrupt("return",
|
|
3922
|
-
|
|
3923
|
-
|
|
4123
|
+
return _context27.abrupt("return", {
|
|
4124
|
+
orders: this.compactOrderListByIdentity(orderList.map(function (order) {
|
|
4125
|
+
return _this25.normalizeRemoteSyncedOrder(order);
|
|
4126
|
+
}), "".concat(source, ".snapshotNoDb")).list,
|
|
4127
|
+
persisted: false
|
|
4128
|
+
});
|
|
3924
4129
|
case 3:
|
|
3925
4130
|
remoteSnapshot = cloneDeep(orderList).map(function (order) {
|
|
3926
|
-
return
|
|
4131
|
+
return _this25.normalizeOrderCollectionsForIngress(order, "".concat(source, ".remoteIngress"));
|
|
3927
4132
|
});
|
|
3928
4133
|
mergedSnapshot = this.compactOrderListByIdentity(remoteSnapshot.map(function (order) {
|
|
3929
|
-
return
|
|
4134
|
+
return _this25.normalizeRemoteSyncedOrder(order);
|
|
3930
4135
|
}), "".concat(source, ".remoteSnapshot")).list;
|
|
3931
|
-
|
|
3932
|
-
_context27.
|
|
4136
|
+
persisted = false;
|
|
4137
|
+
_context27.prev = 6;
|
|
4138
|
+
_context27.next = 9;
|
|
3933
4139
|
return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
|
|
3934
4140
|
var existingOrders, protectedLocalOrders, _iterator36, _step36, rawCurrentOrder, currentOrder, protectedIndex, currentNeedsProtection, orderListSnapshot;
|
|
3935
4141
|
return _regeneratorRuntime().wrap(function _callee26$(_context26) {
|
|
3936
4142
|
while (1) switch (_context26.prev = _context26.next) {
|
|
3937
4143
|
case 0:
|
|
3938
|
-
if (!(typeof
|
|
4144
|
+
if (!(typeof _this25.dbManager.getAll === 'function')) {
|
|
3939
4145
|
_context26.next = 6;
|
|
3940
4146
|
break;
|
|
3941
4147
|
}
|
|
3942
4148
|
_context26.next = 3;
|
|
3943
|
-
return
|
|
4149
|
+
return _this25.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
3944
4150
|
case 3:
|
|
3945
4151
|
_context26.t0 = _context26.sent;
|
|
3946
4152
|
_context26.next = 7;
|
|
@@ -3950,9 +4156,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3950
4156
|
case 7:
|
|
3951
4157
|
existingOrders = _context26.t0;
|
|
3952
4158
|
protectedLocalOrders = protectedOrdersBeforeRemoteFetch.map(function (order) {
|
|
3953
|
-
return
|
|
4159
|
+
return _this25.normalizeOrderCollectionsForIngress(order, "".concat(source, ".protectedBeforeRemoteFetch"));
|
|
3954
4160
|
}).filter(function (order) {
|
|
3955
|
-
return
|
|
4161
|
+
return _this25.shouldProtectLocalOrderFromRemoteSnapshot(order);
|
|
3956
4162
|
});
|
|
3957
4163
|
_iterator36 = _createForOfIteratorHelper(existingOrders || []);
|
|
3958
4164
|
_context26.prev = 10;
|
|
@@ -3963,9 +4169,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3963
4169
|
break;
|
|
3964
4170
|
}
|
|
3965
4171
|
rawCurrentOrder = _step36.value;
|
|
3966
|
-
currentOrder =
|
|
3967
|
-
protectedIndex =
|
|
3968
|
-
currentNeedsProtection =
|
|
4172
|
+
currentOrder = _this25.normalizeOrderCollectionsForIngress(rawCurrentOrder, "".concat(source, ".currentSQLite"));
|
|
4173
|
+
protectedIndex = _this25.findOrderIndexByIdentity(protectedLocalOrders, currentOrder);
|
|
4174
|
+
currentNeedsProtection = _this25.shouldProtectLocalOrderFromRemoteSnapshot(currentOrder);
|
|
3969
4175
|
if (!(protectedIndex >= 0)) {
|
|
3970
4176
|
_context26.next = 20;
|
|
3971
4177
|
break;
|
|
@@ -3993,9 +4199,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3993
4199
|
_iterator36.f();
|
|
3994
4200
|
return _context26.finish(28);
|
|
3995
4201
|
case 31:
|
|
3996
|
-
orderListSnapshot =
|
|
3997
|
-
mergedSnapshot =
|
|
3998
|
-
|
|
4202
|
+
orderListSnapshot = _this25.mergeRemoteSnapshotWithPendingOrders(remoteSnapshot, protectedLocalOrders);
|
|
4203
|
+
mergedSnapshot = _this25.compactOrderListByIdentity(orderListSnapshot, "".concat(source, ".sqliteSnapshot")).list;
|
|
4204
|
+
_this25.logInfo('replaceOrdersSnapshotInSQLite-开始', {
|
|
3999
4205
|
source: source,
|
|
4000
4206
|
count: mergedSnapshot.length,
|
|
4001
4207
|
remoteCount: remoteSnapshot.length,
|
|
@@ -4003,10 +4209,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4003
4209
|
protectedLocalOrderCount: protectedLocalOrders.length,
|
|
4004
4210
|
preservedLocalUnsyncedCount: mergedSnapshot.length - remoteSnapshot.length,
|
|
4005
4211
|
protectedPendingPaymentCount: protectedLocalOrders.reduce(function (count, order) {
|
|
4006
|
-
return count +
|
|
4212
|
+
return count + _this25.getIdentifiedPendingPayments(order).length;
|
|
4007
4213
|
}, 0),
|
|
4008
4214
|
protectedPendingPaymentIdentities: protectedLocalOrders.flatMap(function (order) {
|
|
4009
|
-
return
|
|
4215
|
+
return _this25.getIdentifiedPendingPayments(order).map(function (payment) {
|
|
4010
4216
|
var _order$order_id5, _external_sale_number5;
|
|
4011
4217
|
return {
|
|
4012
4218
|
order_id: (_order$order_id5 = order.order_id) !== null && _order$order_id5 !== void 0 ? _order$order_id5 : null,
|
|
@@ -4017,9 +4223,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4017
4223
|
})
|
|
4018
4224
|
});
|
|
4019
4225
|
_context26.next = 36;
|
|
4020
|
-
return
|
|
4226
|
+
return _this25.dbManager.clear(INDEXDB_STORE_NAME);
|
|
4021
4227
|
case 36:
|
|
4022
|
-
|
|
4228
|
+
_this25.logInfo('replaceOrdersSnapshotInSQLite-clear完成', {
|
|
4023
4229
|
count: mergedSnapshot.length
|
|
4024
4230
|
});
|
|
4025
4231
|
if (!(mergedSnapshot.length === 0)) {
|
|
@@ -4029,10 +4235,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4029
4235
|
return _context26.abrupt("return");
|
|
4030
4236
|
case 39:
|
|
4031
4237
|
_context26.next = 41;
|
|
4032
|
-
return
|
|
4238
|
+
return _this25.dbManager.bulkAdd(INDEXDB_STORE_NAME, mergedSnapshot);
|
|
4033
4239
|
case 41:
|
|
4034
|
-
|
|
4035
|
-
|
|
4240
|
+
_this25.recordRecentSqliteWrite(source, mergedSnapshot);
|
|
4241
|
+
_this25.logInfo('replaceOrdersSnapshotInSQLite-bulkAdd完成', {
|
|
4036
4242
|
source: source,
|
|
4037
4243
|
count: mergedSnapshot.length
|
|
4038
4244
|
});
|
|
@@ -4042,23 +4248,27 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4042
4248
|
}
|
|
4043
4249
|
}, _callee26, null, [[10, 25, 28, 31]]);
|
|
4044
4250
|
})));
|
|
4045
|
-
case
|
|
4046
|
-
|
|
4251
|
+
case 9:
|
|
4252
|
+
persisted = true;
|
|
4253
|
+
_context27.next = 15;
|
|
4047
4254
|
break;
|
|
4048
|
-
case
|
|
4049
|
-
_context27.prev =
|
|
4050
|
-
_context27.t0 = _context27["catch"](
|
|
4255
|
+
case 12:
|
|
4256
|
+
_context27.prev = 12;
|
|
4257
|
+
_context27.t0 = _context27["catch"](6);
|
|
4051
4258
|
this.logError('全量保存订单到 SQLite 失败', {
|
|
4052
4259
|
error: _context27.t0 instanceof Error ? _context27.t0.message : String(_context27.t0),
|
|
4053
4260
|
orderList: remoteSnapshot.length
|
|
4054
4261
|
});
|
|
4055
|
-
case
|
|
4056
|
-
return _context27.abrupt("return",
|
|
4057
|
-
|
|
4262
|
+
case 15:
|
|
4263
|
+
return _context27.abrupt("return", {
|
|
4264
|
+
orders: mergedSnapshot,
|
|
4265
|
+
persisted: persisted
|
|
4266
|
+
});
|
|
4267
|
+
case 16:
|
|
4058
4268
|
case "end":
|
|
4059
4269
|
return _context27.stop();
|
|
4060
4270
|
}
|
|
4061
|
-
}, _callee27, this, [[
|
|
4271
|
+
}, _callee27, this, [[6, 12]]);
|
|
4062
4272
|
}));
|
|
4063
4273
|
function replaceOrdersSnapshotInSQLite(_x20, _x21) {
|
|
4064
4274
|
return _replaceOrdersSnapshotInSQLite.apply(this, arguments);
|
|
@@ -4076,7 +4286,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4076
4286
|
key: "clear",
|
|
4077
4287
|
value: (function () {
|
|
4078
4288
|
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {
|
|
4079
|
-
var
|
|
4289
|
+
var _this26 = this;
|
|
4080
4290
|
return _regeneratorRuntime().wrap(function _callee29$(_context29) {
|
|
4081
4291
|
while (1) switch (_context29.prev = _context29.next) {
|
|
4082
4292
|
case 0:
|
|
@@ -4092,7 +4302,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4092
4302
|
while (1) switch (_context28.prev = _context28.next) {
|
|
4093
4303
|
case 0:
|
|
4094
4304
|
_context28.next = 2;
|
|
4095
|
-
return
|
|
4305
|
+
return _this26.dbManager.clear(INDEXDB_STORE_NAME);
|
|
4096
4306
|
case 2:
|
|
4097
4307
|
case "end":
|
|
4098
4308
|
return _context28.stop();
|
|
@@ -4100,7 +4310,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4100
4310
|
}, _callee28);
|
|
4101
4311
|
})));
|
|
4102
4312
|
case 5:
|
|
4103
|
-
this.
|
|
4313
|
+
this.clearOrderSnapshotMarker();
|
|
4104
4314
|
this.emitOrdersChanged([], 'clear');
|
|
4105
4315
|
case 7:
|
|
4106
4316
|
case "end":
|