@pisell/pisellos 2.2.282 → 2.2.284
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.js +6 -9
- 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 +2 -2
- package/dist/modules/Order/index.js +75 -91
- package/dist/modules/Order/types.d.ts +3 -1
- package/dist/modules/Payment/index.js +97 -162
- 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/modules/Summary/utils.d.ts +1 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +100 -72
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- 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 +8 -4
- 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.js +131 -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 -51
- 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 +2 -2
- package/lib/modules/Order/index.js +1733 -2121
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +3 -1
- package/lib/modules/Order/types.js +87 -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.js +66 -100
- 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 +60 -61
- package/lib/modules/ResourcePlanner/planner.js +346 -384
- package/lib/modules/ResourcePlanner/types.js +4 -16
- 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.d.ts +1 -1
- 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.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.js +3027 -2655
- package/lib/server/modules/floor-plan/index.js +102 -123
- 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 +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +758 -956
- 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.js +575 -459
- 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 +213 -184
- 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 +1209 -1412
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +652 -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 +598 -514
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +225 -187
- 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 +437 -487
- package/lib/solution/UnifiedBookingSales/types.js +12 -31
- 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
|
@@ -157,9 +157,7 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
157
157
|
app = appPlugin.getApp();
|
|
158
158
|
this.dbManager = app.sqlite;
|
|
159
159
|
this.logger = app.logger;
|
|
160
|
-
if (this.dbManager) {
|
|
161
|
-
console.log('[Schedule] SQLite 已初始化');
|
|
162
|
-
} else {
|
|
160
|
+
if (this.dbManager) {} else {
|
|
163
161
|
console.warn('[Schedule] SQLite 未找到');
|
|
164
162
|
}
|
|
165
163
|
}
|
|
@@ -323,7 +321,6 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
323
321
|
} finally {
|
|
324
322
|
_iterator2.f();
|
|
325
323
|
}
|
|
326
|
-
console.log("[Schedule] Map \u7F13\u5B58\u5DF2\u540C\u6B65\uFF0C\u5171 ".concat(this.store.map.size, " \u4E2A\u65E5\u7A0B"));
|
|
327
324
|
}
|
|
328
325
|
|
|
329
326
|
/**
|
|
@@ -344,32 +341,31 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
344
341
|
this.store.map.clear();
|
|
345
342
|
// 同时清空 SQLite 中的数据
|
|
346
343
|
if (!this.dbManager) {
|
|
347
|
-
_context3.next =
|
|
344
|
+
_context3.next = 15;
|
|
348
345
|
break;
|
|
349
346
|
}
|
|
350
347
|
_context3.prev = 4;
|
|
351
348
|
_context3.next = 7;
|
|
352
349
|
return this.dbManager.clear(SCHEDULE_STORE_NAME);
|
|
353
350
|
case 7:
|
|
354
|
-
console.log('[Schedule] SQLite 缓存已清空');
|
|
355
351
|
this.logInfo('SQLite 缓存已清空');
|
|
356
|
-
_context3.next =
|
|
352
|
+
_context3.next = 15;
|
|
357
353
|
break;
|
|
358
|
-
case
|
|
359
|
-
_context3.prev =
|
|
354
|
+
case 10:
|
|
355
|
+
_context3.prev = 10;
|
|
360
356
|
_context3.t0 = _context3["catch"](4);
|
|
361
357
|
errorMessage = _context3.t0 instanceof Error ? _context3.t0.message : String(_context3.t0);
|
|
362
358
|
console.error('[Schedule] 清空 SQLite 缓存失败:', _context3.t0);
|
|
363
359
|
this.logError('清空 SQLite 缓存失败', {
|
|
364
360
|
error: errorMessage
|
|
365
361
|
});
|
|
366
|
-
case
|
|
362
|
+
case 15:
|
|
367
363
|
this.logInfo('缓存清空完成');
|
|
368
|
-
case
|
|
364
|
+
case 16:
|
|
369
365
|
case "end":
|
|
370
366
|
return _context3.stop();
|
|
371
367
|
}
|
|
372
|
-
}, _callee3, this, [[4,
|
|
368
|
+
}, _callee3, this, [[4, 10]]);
|
|
373
369
|
}));
|
|
374
370
|
function clear() {
|
|
375
371
|
return _clear.apply(this, arguments);
|
|
@@ -509,14 +505,13 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
509
505
|
return _this4.dbManager.add(SCHEDULE_STORE_NAME, schedule);
|
|
510
506
|
}));
|
|
511
507
|
case 20:
|
|
512
|
-
console.log("[Schedule] \u5DF2\u5C06 ".concat(scheduleList.length, " \u6761\u65E5\u7A0B\u6570\u636E\u4FDD\u5B58\u5230 SQLite"));
|
|
513
508
|
this.logInfo('日程数据已保存到 SQLite', {
|
|
514
509
|
scheduleCount: scheduleList.length
|
|
515
510
|
});
|
|
516
|
-
_context5.next =
|
|
511
|
+
_context5.next = 28;
|
|
517
512
|
break;
|
|
518
|
-
case
|
|
519
|
-
_context5.prev =
|
|
513
|
+
case 23:
|
|
514
|
+
_context5.prev = 23;
|
|
520
515
|
_context5.t0 = _context5["catch"](4);
|
|
521
516
|
errorMessage = _context5.t0 instanceof Error ? _context5.t0.message : String(_context5.t0);
|
|
522
517
|
console.error('[Schedule] 保存数据到 SQLite 失败:', _context5.t0);
|
|
@@ -524,11 +519,11 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
524
519
|
scheduleCount: scheduleList.length,
|
|
525
520
|
error: errorMessage
|
|
526
521
|
});
|
|
527
|
-
case
|
|
522
|
+
case 28:
|
|
528
523
|
case "end":
|
|
529
524
|
return _context5.stop();
|
|
530
525
|
}
|
|
531
|
-
}, _callee5, this, [[4,
|
|
526
|
+
}, _callee5, this, [[4, 23]]);
|
|
532
527
|
}));
|
|
533
528
|
function saveScheduleToSQLite(_x3) {
|
|
534
529
|
return _saveScheduleToSQLite.apply(this, arguments);
|
|
@@ -548,19 +543,17 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
548
543
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
549
544
|
while (1) switch (_context6.prev = _context6.next) {
|
|
550
545
|
case 0:
|
|
551
|
-
console.log('[Schedule] 开始预加载数据...');
|
|
552
546
|
startTime = Date.now();
|
|
553
547
|
this.logInfo('开始预加载数据');
|
|
554
|
-
_context6.prev =
|
|
555
|
-
_context6.next =
|
|
548
|
+
_context6.prev = 2;
|
|
549
|
+
_context6.next = 5;
|
|
556
550
|
return this.loadScheduleFromSQLite();
|
|
557
|
-
case
|
|
551
|
+
case 5:
|
|
558
552
|
cachedData = _context6.sent;
|
|
559
553
|
if (!(cachedData && cachedData.length > 0)) {
|
|
560
|
-
_context6.next =
|
|
554
|
+
_context6.next = 12;
|
|
561
555
|
break;
|
|
562
556
|
}
|
|
563
|
-
console.log("[Schedule] \u4ECE SQLite \u52A0\u8F7D\u4E86 ".concat(cachedData.length, " \u6761\u65E5\u7A0B\u6570\u636E"));
|
|
564
557
|
// 将缓存数据放入 store
|
|
565
558
|
this.store.scheduleList = cloneDeep(cachedData);
|
|
566
559
|
// 同步更新 Map 缓存
|
|
@@ -572,23 +565,22 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
572
565
|
source: 'SQLite'
|
|
573
566
|
});
|
|
574
567
|
return _context6.abrupt("return");
|
|
575
|
-
case
|
|
576
|
-
console.log('[Schedule] SQLite 中没有缓存数据,从服务器加载...');
|
|
568
|
+
case 12:
|
|
577
569
|
this.logInfo('SQLite 中没有缓存数据,准备从服务器加载');
|
|
578
|
-
_context6.next =
|
|
570
|
+
_context6.next = 20;
|
|
579
571
|
break;
|
|
580
|
-
case
|
|
581
|
-
_context6.prev =
|
|
582
|
-
_context6.t0 = _context6["catch"](
|
|
572
|
+
case 15:
|
|
573
|
+
_context6.prev = 15;
|
|
574
|
+
_context6.t0 = _context6["catch"](2);
|
|
583
575
|
errorMessage = _context6.t0 instanceof Error ? _context6.t0.message : String(_context6.t0);
|
|
584
576
|
console.warn('[Schedule] 从 SQLite 加载数据失败:', _context6.t0);
|
|
585
577
|
this.logWarning('从 SQLite 加载数据失败,准备从服务器加载', {
|
|
586
578
|
error: errorMessage
|
|
587
579
|
});
|
|
588
|
-
case
|
|
589
|
-
_context6.next =
|
|
580
|
+
case 20:
|
|
581
|
+
_context6.next = 22;
|
|
590
582
|
return this.loadAllSchedule();
|
|
591
|
-
case
|
|
583
|
+
case 22:
|
|
592
584
|
scheduleList = _context6.sent;
|
|
593
585
|
// 3. 将服务器数据放入 store
|
|
594
586
|
if (scheduleList && scheduleList.length > 0) {
|
|
@@ -607,11 +599,11 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
607
599
|
duration: "".concat(_duration3, "ms")
|
|
608
600
|
});
|
|
609
601
|
}
|
|
610
|
-
case
|
|
602
|
+
case 24:
|
|
611
603
|
case "end":
|
|
612
604
|
return _context6.stop();
|
|
613
605
|
}
|
|
614
|
-
}, _callee6, this, [[
|
|
606
|
+
}, _callee6, this, [[2, 15]]);
|
|
615
607
|
}));
|
|
616
608
|
function preload() {
|
|
617
609
|
return _preload.apply(this, arguments);
|
|
@@ -82,7 +82,6 @@ function buildPriceIndexMap(priceData) {
|
|
|
82
82
|
export function applyPriceDataToProducts(products, priceData) {
|
|
83
83
|
var t0 = performance.now();
|
|
84
84
|
if (!priceData || priceData.length === 0) {
|
|
85
|
-
console.log('[applyPriceDataToProducts] 没有价格数据,返回原商品');
|
|
86
85
|
return products;
|
|
87
86
|
}
|
|
88
87
|
var t1 = performance.now();
|
|
@@ -370,6 +370,24 @@ function filterPendingPaymentsFromLoadedSalesDetail(sourceRecord) {
|
|
|
370
370
|
}
|
|
371
371
|
return record;
|
|
372
372
|
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* merge hydrate 不会统一给所有商品补 saved 标记,因此先只标记远端已保存商品。
|
|
376
|
+
* 当前 tempOrder 中尚未提交的本地商品会在 merge 后继续保持 current item 语义。
|
|
377
|
+
*/
|
|
378
|
+
function markLoadedSalesDetailProductsAsSaved(sourceRecord) {
|
|
379
|
+
if (!sourceRecord || _typeof(sourceRecord) !== 'object') return sourceRecord;
|
|
380
|
+
if (!Array.isArray(sourceRecord.products)) return sourceRecord;
|
|
381
|
+
return _objectSpread(_objectSpread({}, sourceRecord), {}, {
|
|
382
|
+
products: sourceRecord.products.map(function (product) {
|
|
383
|
+
return _objectSpread(_objectSpread({}, product || {}), {}, {
|
|
384
|
+
metadata: _objectSpread(_objectSpread({}, product !== null && product !== void 0 && product.metadata && _typeof(product.metadata) === 'object' ? product.metadata : {}), {}, {
|
|
385
|
+
is_edit_for_runtime: true
|
|
386
|
+
})
|
|
387
|
+
});
|
|
388
|
+
})
|
|
389
|
+
});
|
|
390
|
+
}
|
|
373
391
|
export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
374
392
|
_inherits(BaseSalesImpl, _BaseModule);
|
|
375
393
|
var _super = _createSuper(BaseSalesImpl);
|
|
@@ -669,7 +687,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
669
687
|
}, {
|
|
670
688
|
key: "hydrateLatestLoadedSalesDetail",
|
|
671
689
|
value: function () {
|
|
672
|
-
var _hydrateLatestLoadedSalesDetail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(record, loadSequence,
|
|
690
|
+
var _hydrateLatestLoadedSalesDetail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(record, loadSequence, options) {
|
|
673
691
|
var _this4 = this;
|
|
674
692
|
var hydratedSales, skippedBeforeHydrate, hydrateTask, queuedTask;
|
|
675
693
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
@@ -679,7 +697,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
679
697
|
skippedBeforeHydrate = false;
|
|
680
698
|
hydrateTask = /*#__PURE__*/function () {
|
|
681
699
|
var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
682
|
-
var sales;
|
|
700
|
+
var hydrateOptions, sales;
|
|
683
701
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
684
702
|
while (1) switch (_context4.prev = _context4.next) {
|
|
685
703
|
case 0:
|
|
@@ -696,30 +714,39 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
696
714
|
}
|
|
697
715
|
throw new Error('order 模块未初始化');
|
|
698
716
|
case 5:
|
|
699
|
-
|
|
700
|
-
return _this4.store.order.hydrateTempOrderFromRecord(record, hydrateSource === 'sessionStorage' ? {
|
|
701
|
-
recalcOnHydrate: true,
|
|
702
|
-
source: 'sessionStorage'
|
|
703
|
-
} : {
|
|
717
|
+
hydrateOptions = {
|
|
704
718
|
recalcOnHydrate: false
|
|
705
|
-
}
|
|
706
|
-
|
|
719
|
+
};
|
|
720
|
+
if ((options === null || options === void 0 ? void 0 : options.hydrateSource) === 'sessionStorage') {
|
|
721
|
+
hydrateOptions = {
|
|
722
|
+
recalcOnHydrate: true,
|
|
723
|
+
source: 'sessionStorage'
|
|
724
|
+
};
|
|
725
|
+
} else if (options !== null && options !== void 0 && options.merge) {
|
|
726
|
+
hydrateOptions = {
|
|
727
|
+
recalcOnHydrate: true,
|
|
728
|
+
source: 'mergedSalesDetail'
|
|
729
|
+
};
|
|
730
|
+
}
|
|
731
|
+
_context4.next = 9;
|
|
732
|
+
return _this4.store.order.hydrateTempOrderFromRecord(record, hydrateOptions);
|
|
733
|
+
case 9:
|
|
707
734
|
sales = _context4.sent;
|
|
708
735
|
hydratedSales = sales;
|
|
709
736
|
|
|
710
737
|
// hydrate 期间可能又发起了更新请求;后续任务已串行排队,将负责最终状态。
|
|
711
738
|
if (!(loadSequence !== _this4.salesDetailLoadSequence)) {
|
|
712
|
-
_context4.next =
|
|
739
|
+
_context4.next = 13;
|
|
713
740
|
break;
|
|
714
741
|
}
|
|
715
742
|
return _context4.abrupt("return");
|
|
716
|
-
case
|
|
743
|
+
case 13:
|
|
717
744
|
_this4.currentSalesDetail = sales;
|
|
718
|
-
_context4.next =
|
|
745
|
+
_context4.next = 16;
|
|
719
746
|
return _this4.core.effects.emit("".concat(_this4.name, ":onSalesOrderLoaded"), {
|
|
720
747
|
sales: sales
|
|
721
748
|
});
|
|
722
|
-
case
|
|
749
|
+
case 16:
|
|
723
750
|
case "end":
|
|
724
751
|
return _context4.stop();
|
|
725
752
|
}
|
|
@@ -1534,7 +1561,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1534
1561
|
key: "loadSalesDetail",
|
|
1535
1562
|
value: (function () {
|
|
1536
1563
|
var _loadSalesDetail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(orderIdOrParams) {
|
|
1537
|
-
var loadSequence, _ref27, _ref28, _ref29, _ref30, _params$orderId, params, externalSaleNumber, preloadedSalesDetail, lookup, loadedRecord, message, loadedSalesDetail, shouldFilterPendingPayments, remoteRecord, currentTempOrder, mergedRecord, record;
|
|
1564
|
+
var loadSequence, _ref27, _ref28, _ref29, _ref30, _params$orderId, params, externalSaleNumber, preloadedSalesDetail, lookup, loadedRecord, message, loadedSalesDetail, shouldFilterPendingPayments, remoteRecord, mergeSourceRecord, currentTempOrder, mergedRecord, record;
|
|
1538
1565
|
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
1539
1566
|
while (1) switch (_context14.prev = _context14.next) {
|
|
1540
1567
|
case 0:
|
|
@@ -1586,39 +1613,43 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1586
1613
|
loadedSalesDetail = preloadedSalesDetail !== null && preloadedSalesDetail !== void 0 ? preloadedSalesDetail : loadedRecord.data; // payment_pending 只存在于本地;远端详情需过滤,但会话快照必须完整恢复。
|
|
1587
1614
|
shouldFilterPendingPayments = params.hydrateSource !== 'sessionStorage';
|
|
1588
1615
|
remoteRecord = shouldFilterPendingPayments ? filterPendingPaymentsFromLoadedSalesDetail(loadedSalesDetail) : loadedSalesDetail;
|
|
1616
|
+
mergeSourceRecord = params.merge ? markLoadedSalesDetailProductsAsSaved(remoteRecord) : remoteRecord;
|
|
1589
1617
|
currentTempOrder = params.merge ? this.store.order.getTempOrder() : null;
|
|
1590
|
-
mergedRecord = params.merge ? mergeSalesDetailRecordWithTempOrder(currentTempOrder,
|
|
1618
|
+
mergedRecord = params.merge ? mergeSalesDetailRecordWithTempOrder(currentTempOrder, mergeSourceRecord, 'preserve-local') : mergeSourceRecord;
|
|
1591
1619
|
record = shouldFilterPendingPayments ? filterPendingPaymentsFromLoadedSalesDetail(mergedRecord) : mergedRecord;
|
|
1592
|
-
_context14.next =
|
|
1593
|
-
return this.hydrateLatestLoadedSalesDetail(record, loadSequence,
|
|
1594
|
-
|
|
1595
|
-
|
|
1620
|
+
_context14.next = 31;
|
|
1621
|
+
return this.hydrateLatestLoadedSalesDetail(record, loadSequence, {
|
|
1622
|
+
hydrateSource: params.hydrateSource,
|
|
1623
|
+
merge: params.merge
|
|
1624
|
+
});
|
|
1596
1625
|
case 31:
|
|
1597
|
-
_context14.
|
|
1626
|
+
return _context14.abrupt("return", _context14.sent);
|
|
1627
|
+
case 32:
|
|
1628
|
+
_context14.prev = 32;
|
|
1598
1629
|
this.salesDetailLoadInFlightCount = Math.max(0, this.salesDetailLoadInFlightCount - 1);
|
|
1599
1630
|
if (!(this.salesDetailLoadInFlightCount === 0)) {
|
|
1600
|
-
_context14.next =
|
|
1631
|
+
_context14.next = 43;
|
|
1601
1632
|
break;
|
|
1602
1633
|
}
|
|
1603
|
-
_context14.prev =
|
|
1604
|
-
_context14.next =
|
|
1634
|
+
_context14.prev = 35;
|
|
1635
|
+
_context14.next = 38;
|
|
1605
1636
|
return this.drainQueuedServerOrderChanges();
|
|
1606
|
-
case
|
|
1607
|
-
_context14.next =
|
|
1637
|
+
case 38:
|
|
1638
|
+
_context14.next = 43;
|
|
1608
1639
|
break;
|
|
1609
|
-
case
|
|
1610
|
-
_context14.prev =
|
|
1611
|
-
_context14.t1 = _context14["catch"](
|
|
1640
|
+
case 40:
|
|
1641
|
+
_context14.prev = 40;
|
|
1642
|
+
_context14.t1 = _context14["catch"](35);
|
|
1612
1643
|
this.logError('drain queued server order changes failed', {
|
|
1613
1644
|
error: _context14.t1 instanceof Error ? _context14.t1.message : String(_context14.t1)
|
|
1614
1645
|
});
|
|
1615
|
-
case 42:
|
|
1616
|
-
return _context14.finish(31);
|
|
1617
1646
|
case 43:
|
|
1647
|
+
return _context14.finish(32);
|
|
1648
|
+
case 44:
|
|
1618
1649
|
case "end":
|
|
1619
1650
|
return _context14.stop();
|
|
1620
1651
|
}
|
|
1621
|
-
}, _callee14, this, [[4,,
|
|
1652
|
+
}, _callee14, this, [[4,, 32, 44], [35, 40]]);
|
|
1622
1653
|
}));
|
|
1623
1654
|
function loadSalesDetail(_x13) {
|
|
1624
1655
|
return _loadSalesDetail.apply(this, arguments);
|
|
@@ -2261,11 +2292,10 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2261
2292
|
});
|
|
2262
2293
|
case 40:
|
|
2263
2294
|
if (!rulesModule) {
|
|
2264
|
-
_context21.next =
|
|
2295
|
+
_context21.next = 76;
|
|
2265
2296
|
break;
|
|
2266
2297
|
}
|
|
2267
2298
|
orderTotalAmount = Number(((_orderStore$summary = orderStore.summary) === null || _orderStore$summary === void 0 ? void 0 : _orderStore$summary.total_amount) || 0);
|
|
2268
|
-
console.log('[BaseSales.applyDiscountConfig.calcDiscount]');
|
|
2269
2299
|
result = rulesModule.calcDiscount({
|
|
2270
2300
|
productList: tempOrder.products,
|
|
2271
2301
|
discountList: nextDiscountList,
|
|
@@ -2282,22 +2312,22 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2282
2312
|
tempOrder.products = preserveManualProductDiscountProducts(tempOrder.products, result.productList);
|
|
2283
2313
|
}
|
|
2284
2314
|
_iterator2 = _createForOfIteratorHelper(tempOrder.products || []);
|
|
2285
|
-
_context21.prev =
|
|
2315
|
+
_context21.prev = 45;
|
|
2286
2316
|
_iterator2.s();
|
|
2287
|
-
case
|
|
2317
|
+
case 47:
|
|
2288
2318
|
if ((_step2 = _iterator2.n()).done) {
|
|
2289
|
-
_context21.next =
|
|
2319
|
+
_context21.next = 62;
|
|
2290
2320
|
break;
|
|
2291
2321
|
}
|
|
2292
2322
|
product = _step2.value;
|
|
2293
2323
|
productUid = (_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5.unique_identification_number;
|
|
2294
2324
|
runtimeOrigin = productUid ? (_tempOrder$_extend3 = tempOrder._extend) === null || _tempOrder$_extend3 === void 0 || (_tempOrder$_extend3 = _tempOrder$_extend3.productsByUid) === null || _tempOrder$_extend3 === void 0 || (_tempOrder$_extend3 = _tempOrder$_extend3[productUid]) === null || _tempOrder$_extend3 === void 0 ? void 0 : _tempOrder$_extend3.origin : undefined;
|
|
2295
2325
|
if (!(runtimeOrigin !== null && runtimeOrigin !== void 0 && runtimeOrigin.isManualDiscount || isBaseSalesManualProductDiscountProduct(product))) {
|
|
2296
|
-
_context21.next =
|
|
2326
|
+
_context21.next = 53;
|
|
2297
2327
|
break;
|
|
2298
2328
|
}
|
|
2299
|
-
return _context21.abrupt("continue",
|
|
2300
|
-
case
|
|
2329
|
+
return _context21.abrupt("continue", 60);
|
|
2330
|
+
case 53:
|
|
2301
2331
|
totalPerUnitDiscount = (product.discount_list || []).reduce(function (sum, pd) {
|
|
2302
2332
|
return sum + Number(pd.amount || 0);
|
|
2303
2333
|
}, 0);
|
|
@@ -2313,59 +2343,59 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2313
2343
|
mainPrice: newMainSellingPrice,
|
|
2314
2344
|
bundle: product.product_bundle
|
|
2315
2345
|
});
|
|
2316
|
-
case
|
|
2317
|
-
_context21.next =
|
|
2346
|
+
case 60:
|
|
2347
|
+
_context21.next = 47;
|
|
2318
2348
|
break;
|
|
2319
|
-
case
|
|
2320
|
-
_context21.next =
|
|
2349
|
+
case 62:
|
|
2350
|
+
_context21.next = 67;
|
|
2321
2351
|
break;
|
|
2322
|
-
case
|
|
2323
|
-
_context21.prev =
|
|
2324
|
-
_context21.t0 = _context21["catch"](
|
|
2352
|
+
case 64:
|
|
2353
|
+
_context21.prev = 64;
|
|
2354
|
+
_context21.t0 = _context21["catch"](45);
|
|
2325
2355
|
_iterator2.e(_context21.t0);
|
|
2326
|
-
case
|
|
2327
|
-
_context21.prev =
|
|
2356
|
+
case 67:
|
|
2357
|
+
_context21.prev = 67;
|
|
2328
2358
|
_iterator2.f();
|
|
2329
|
-
return _context21.finish(
|
|
2330
|
-
case
|
|
2359
|
+
return _context21.finish(67);
|
|
2360
|
+
case 70:
|
|
2331
2361
|
if (!result.discountList) {
|
|
2332
|
-
_context21.next =
|
|
2362
|
+
_context21.next = 76;
|
|
2333
2363
|
break;
|
|
2334
2364
|
}
|
|
2335
2365
|
nextDiscountList = this.mergeHistoricalDiscountList(result.discountList, tempOrder.products || []);
|
|
2336
2366
|
OrderModule.populateSavedAmounts(tempOrder.products, nextDiscountList);
|
|
2337
|
-
_context21.next =
|
|
2367
|
+
_context21.next = 75;
|
|
2338
2368
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
2339
|
-
case
|
|
2369
|
+
case 75:
|
|
2340
2370
|
tempOrder.discount_list = nextDiscountList.filter(function (discount) {
|
|
2341
2371
|
return discount.isSelected;
|
|
2342
2372
|
});
|
|
2343
|
-
case
|
|
2344
|
-
_context21.next =
|
|
2373
|
+
case 76:
|
|
2374
|
+
_context21.next = 78;
|
|
2345
2375
|
return this.store.order.recalculateSummary({
|
|
2346
2376
|
createIfMissing: true
|
|
2347
2377
|
});
|
|
2348
|
-
case
|
|
2378
|
+
case 78:
|
|
2349
2379
|
summary = _context21.sent;
|
|
2350
2380
|
this.store.order.persistTempOrder();
|
|
2351
|
-
_context21.next =
|
|
2381
|
+
_context21.next = 82;
|
|
2352
2382
|
return this.effectsEmit('onDiscountApplied', {
|
|
2353
2383
|
productList: tempOrder.products || [],
|
|
2354
2384
|
discountList: nextDiscountList,
|
|
2355
2385
|
selectedDiscountList: tempOrder.discount_list || [],
|
|
2356
2386
|
tempOrder: tempOrder
|
|
2357
2387
|
});
|
|
2358
|
-
case
|
|
2388
|
+
case 82:
|
|
2359
2389
|
return _context21.abrupt("return", {
|
|
2360
2390
|
productList: tempOrder.products || [],
|
|
2361
2391
|
discountList: nextDiscountList,
|
|
2362
2392
|
availableWalletIds: this.getAvailableWalletIds()
|
|
2363
2393
|
});
|
|
2364
|
-
case
|
|
2394
|
+
case 83:
|
|
2365
2395
|
case "end":
|
|
2366
2396
|
return _context21.stop();
|
|
2367
2397
|
}
|
|
2368
|
-
}, _callee21, this, [[
|
|
2398
|
+
}, _callee21, this, [[45, 64, 67, 70]]);
|
|
2369
2399
|
}));
|
|
2370
2400
|
function loadDiscountConfig(_x16) {
|
|
2371
2401
|
return _loadDiscountConfig.apply(this, arguments);
|
|
@@ -2409,11 +2439,10 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2409
2439
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
2410
2440
|
case 12:
|
|
2411
2441
|
if (!rulesModule) {
|
|
2412
|
-
_context22.next =
|
|
2442
|
+
_context22.next = 23;
|
|
2413
2443
|
break;
|
|
2414
2444
|
}
|
|
2415
2445
|
orderTotalAmount = Number(((_orderStore$summary2 = orderStore.summary) === null || _orderStore$summary2 === void 0 ? void 0 : _orderStore$summary2.total_amount) || 0);
|
|
2416
|
-
console.log('[BaseSales.bestDiscount.calcDiscount]');
|
|
2417
2446
|
result = rulesModule.calcDiscount({
|
|
2418
2447
|
productList: tempOrder.products,
|
|
2419
2448
|
discountList: nextDiscountList,
|
|
@@ -2427,14 +2456,14 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2427
2456
|
tempOrder.products = preserveManualProductDiscountProducts(tempOrder.products, result.productList);
|
|
2428
2457
|
}
|
|
2429
2458
|
if (!result.discountList) {
|
|
2430
|
-
_context22.next =
|
|
2459
|
+
_context22.next = 23;
|
|
2431
2460
|
break;
|
|
2432
2461
|
}
|
|
2433
2462
|
nextDiscountList = this.mergeHistoricalDiscountList(result.discountList, tempOrder.products || []);
|
|
2434
2463
|
OrderModule.populateSavedAmounts(tempOrder.products, nextDiscountList);
|
|
2435
|
-
_context22.next =
|
|
2464
|
+
_context22.next = 21;
|
|
2436
2465
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
2437
|
-
case
|
|
2466
|
+
case 21:
|
|
2438
2467
|
tempOrder.discount_list = nextDiscountList.filter(function (discount) {
|
|
2439
2468
|
return discount.isSelected;
|
|
2440
2469
|
});
|
|
@@ -2442,24 +2471,24 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2442
2471
|
productList: tempOrder.products,
|
|
2443
2472
|
discountList: nextDiscountList
|
|
2444
2473
|
};
|
|
2445
|
-
case
|
|
2446
|
-
_context22.next =
|
|
2474
|
+
case 23:
|
|
2475
|
+
_context22.next = 25;
|
|
2447
2476
|
return this.store.order.recalculateSummary({
|
|
2448
2477
|
createIfMissing: true
|
|
2449
2478
|
});
|
|
2450
|
-
case
|
|
2479
|
+
case 25:
|
|
2451
2480
|
this.store.order.persistTempOrder();
|
|
2452
|
-
_context22.next =
|
|
2481
|
+
_context22.next = 28;
|
|
2453
2482
|
return this.effectsEmit('onDiscountApplied', {
|
|
2454
2483
|
productList: tempOrder.products || [],
|
|
2455
2484
|
discountList: nextDiscountList,
|
|
2456
2485
|
selectedDiscountList: tempOrder.discount_list || [],
|
|
2457
2486
|
tempOrder: tempOrder
|
|
2458
2487
|
});
|
|
2459
|
-
case
|
|
2488
|
+
case 28:
|
|
2460
2489
|
cb === null || cb === void 0 || cb(result);
|
|
2461
2490
|
return _context22.abrupt("return", result);
|
|
2462
|
-
case
|
|
2491
|
+
case 30:
|
|
2463
2492
|
case "end":
|
|
2464
2493
|
return _context22.stop();
|
|
2465
2494
|
}
|
|
@@ -2628,7 +2657,6 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2628
2657
|
case 13:
|
|
2629
2658
|
if (rulesModule) {
|
|
2630
2659
|
orderTotalAmount = Number(((_orderStore$summary3 = orderStore.summary) === null || _orderStore$summary3 === void 0 ? void 0 : _orderStore$summary3.total_amount) || 0);
|
|
2631
|
-
console.log('[BaseSales.setDiscountSelected.calcDiscount]');
|
|
2632
2660
|
result = rulesModule.calcDiscount({
|
|
2633
2661
|
productList: tempOrder.products,
|
|
2634
2662
|
discountList: updated,
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { OrderProduct } from '../../../modules/Order/types';
|
|
2
|
+
/**
|
|
3
|
+
* 运行态商品行标记:该行由“不合并商品”加车策略创建,促销重算时必须保持独立。
|
|
4
|
+
* `normalizeSubmitProduct` 会按白名单裁剪 metadata,不会把此字段提交到后端。
|
|
5
|
+
*/
|
|
6
|
+
export declare const PRODUCT_LINE_MERGE_DISABLED_METADATA_KEY = "_productLineMergeDisabled";
|
|
2
7
|
/**
|
|
3
8
|
* Cart promotion 工具集(OS 内部纯函数)
|
|
4
9
|
*
|
|
@@ -23,6 +23,12 @@ import { cloneDeep } from 'lodash-es';
|
|
|
23
23
|
import { composeLinePrice, createUuidV4, getProductSkuOptions, sumOptionUnitPrice } from "../../../modules/Order/utils";
|
|
24
24
|
import { buildProductLineFingerprint, getSafeProductNum } from "../../ScanOrder/utils";
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* 运行态商品行标记:该行由“不合并商品”加车策略创建,促销重算时必须保持独立。
|
|
28
|
+
* `normalizeSubmitProduct` 会按白名单裁剪 metadata,不会把此字段提交到后端。
|
|
29
|
+
*/
|
|
30
|
+
export var PRODUCT_LINE_MERGE_DISABLED_METADATA_KEY = '_productLineMergeDisabled';
|
|
31
|
+
|
|
26
32
|
/**
|
|
27
33
|
* Cart promotion 工具集(OS 内部纯函数)
|
|
28
34
|
*
|
|
@@ -483,10 +489,13 @@ function hasGoodPassDiscount(product) {
|
|
|
483
489
|
}
|
|
484
490
|
|
|
485
491
|
/**
|
|
486
|
-
*
|
|
492
|
+
* 不合并商品、商品券、自定义商品、称重行以及编辑订单历史行都有各自的促销合并边界。
|
|
487
493
|
*/
|
|
488
494
|
function getPromotionLineMergeBoundary(product) {
|
|
489
|
-
var _product$product_sku, _product$
|
|
495
|
+
var _product$metadata3, _product$product_sku, _product$metadata4;
|
|
496
|
+
if ((product === null || product === void 0 || (_product$metadata3 = product.metadata) === null || _product$metadata3 === void 0 ? void 0 : _product$metadata3[PRODUCT_LINE_MERGE_DISABLED_METADATA_KEY]) === true) {
|
|
497
|
+
return "separate:".concat(getOrderProductUid(product));
|
|
498
|
+
}
|
|
490
499
|
if ((product === null || product === void 0 ? void 0 : product.product_id) === undefined || (product === null || product === void 0 ? void 0 : product.product_id) === null) {
|
|
491
500
|
return "custom:".concat(getOrderProductUid(product));
|
|
492
501
|
}
|
|
@@ -496,7 +505,7 @@ function getPromotionLineMergeBoundary(product) {
|
|
|
496
505
|
if (Number((product === null || product === void 0 || (_product$product_sku = product.product_sku) === null || _product$product_sku === void 0 ? void 0 : _product$product_sku.open_sold_weight) || 0) === 1) {
|
|
497
506
|
return "weighing:".concat(getOrderProductUid(product));
|
|
498
507
|
}
|
|
499
|
-
if ((product === null || product === void 0 || (_product$
|
|
508
|
+
if ((product === null || product === void 0 || (_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.is_edit_for_runtime) !== true) return '';
|
|
500
509
|
return "edit:".concat(getOrderProductUid(product));
|
|
501
510
|
}
|
|
502
511
|
function isPersistedGeneratedVoucher(product) {
|
|
@@ -921,13 +930,13 @@ export function resolveStrategyEligibleProducts(matched) {
|
|
|
921
930
|
export function calculateUnfulfilledPromotions(processedProducts, applicableStrategiesResult, mainProducts) {
|
|
922
931
|
var unfulfilledMap = new Map();
|
|
923
932
|
var _loop2 = function _loop2() {
|
|
924
|
-
var _product$
|
|
933
|
+
var _product$metadata5, _ref13, _product$_originalPro, _product$metadata6, _product$num2;
|
|
925
934
|
var product = processedProducts[i];
|
|
926
|
-
var promotion = product === null || product === void 0 || (_product$
|
|
935
|
+
var promotion = product === null || product === void 0 || (_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5._promotion;
|
|
927
936
|
if (!promotion || promotion.inPromotion !== false) return 0; // continue
|
|
928
937
|
var strategyId = promotion.strategyId;
|
|
929
938
|
if (!strategyId) return 0; // continue
|
|
930
|
-
var lookupUid = String((_ref13 = (_product$_originalPro = product === null || product === void 0 ? void 0 : product._originalProductUid) !== null && _product$_originalPro !== void 0 ? _product$_originalPro : product === null || product === void 0 || (_product$
|
|
939
|
+
var lookupUid = String((_ref13 = (_product$_originalPro = product === null || product === void 0 ? void 0 : product._originalProductUid) !== null && _product$_originalPro !== void 0 ? _product$_originalPro : product === null || product === void 0 || (_product$metadata6 = product.metadata) === null || _product$metadata6 === void 0 ? void 0 : _product$metadata6.unique_identification_number) !== null && _ref13 !== void 0 ? _ref13 : '');
|
|
931
940
|
var originalIndex = mainProducts.findIndex(function (item) {
|
|
932
941
|
return getOrderProductUid(item) === lookupUid;
|
|
933
942
|
});
|
|
@@ -326,7 +326,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
326
326
|
date: string;
|
|
327
327
|
status: string;
|
|
328
328
|
week: string;
|
|
329
|
-
weekNum: 0 | 1 |
|
|
329
|
+
weekNum: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
330
330
|
}[]>;
|
|
331
331
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
332
332
|
private getScheduleDataByIds;
|