@pisell/pisellos 0.0.567 → 0.0.569
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/evaluator.js +3 -2
- package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +7 -7
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/BaseModule.d.ts +2 -2
- package/dist/modules/BaseModule.js +4 -4
- package/dist/modules/BookingContext/index.d.ts +48 -0
- package/dist/modules/BookingContext/index.js +566 -0
- package/dist/modules/BookingContext/types.d.ts +102 -0
- package/dist/modules/BookingContext/types.js +51 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +302 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +149 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +249 -0
- package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/dist/modules/BookingContext/utils/flexible.js +56 -0
- package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
- package/dist/modules/BookingContext/utils/index.d.ts +11 -0
- package/dist/modules/BookingContext/utils/index.js +11 -0
- package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/dist/modules/BookingContext/utils/noResource.js +77 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
- package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/dist/modules/BookingContext/utils/productExtend.js +339 -0
- package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
- package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
- package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
- package/dist/modules/BookingContext/utils/resources.js +486 -0
- package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
- package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +26 -6
- package/dist/modules/Cart/utils/changePrice.js +27 -20
- package/dist/modules/Customer/index.d.ts +20 -0
- package/dist/modules/Customer/index.js +172 -83
- package/dist/modules/Customer/types.d.ts +2 -0
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.d.ts +2 -1
- package/dist/modules/Discount/index.js +37 -12
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/OpenData/index.d.ts +8 -0
- package/dist/modules/OpenData/index.js +35 -17
- package/dist/modules/Order/index.d.ts +449 -24
- package/dist/modules/Order/index.js +5437 -608
- package/dist/modules/Order/types.d.ts +693 -88
- package/dist/modules/Order/types.js +68 -1
- package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
- package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -0
- package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
- package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
- package/dist/modules/Order/utils/orderCollectionIdentity.js +405 -0
- package/dist/modules/Order/utils.d.ts +167 -18
- package/dist/modules/Order/utils.js +960 -165
- package/dist/modules/Payment/index.d.ts +10 -9
- package/dist/modules/Payment/index.js +508 -874
- package/dist/modules/Payment/types.d.ts +40 -16
- package/dist/modules/Payment/utils.d.ts +1 -1
- package/dist/modules/Payment/utils.js +4 -3
- package/dist/modules/Payment/walletpass.js +48 -34
- package/dist/modules/Product/types.d.ts +29 -7
- package/dist/modules/ProductList/index.d.ts +17 -13
- package/dist/modules/ProductList/index.js +184 -74
- package/dist/modules/ProductList/types.d.ts +17 -0
- package/dist/modules/Quotation/index.d.ts +22 -2
- package/dist/modules/Quotation/index.js +108 -42
- package/dist/modules/Quotation/types.d.ts +19 -0
- package/dist/modules/ResourcePlanner/index.d.ts +24 -0
- package/dist/modules/ResourcePlanner/index.js +181 -0
- package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
- package/dist/modules/ResourcePlanner/planner.js +1069 -0
- package/dist/modules/ResourcePlanner/types.d.ts +227 -0
- package/dist/modules/ResourcePlanner/types.js +1 -0
- package/dist/modules/Rules/index.d.ts +8 -10
- package/dist/modules/Rules/index.js +219 -114
- package/dist/modules/Rules/types.d.ts +14 -3
- package/dist/modules/SalesSummary/index.d.ts +23 -26
- package/dist/modules/SalesSummary/index.js +152 -46
- package/dist/modules/SalesSummary/types.d.ts +9 -1
- package/dist/modules/SalesSummary/utils.d.ts +3 -22
- package/dist/modules/SalesSummary/utils.js +803 -163
- package/dist/modules/Schedule/getDateIsInSchedule.js +14 -7
- package/dist/modules/Schedule/index.d.ts +18 -5
- package/dist/modules/Schedule/index.js +78 -24
- package/dist/modules/Schedule/types.d.ts +2 -0
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/modules/Summary/index.js +4 -3
- package/dist/modules/SurchargeList/index.d.ts +18 -0
- package/dist/modules/SurchargeList/index.js +185 -0
- package/dist/modules/SurchargeList/types.d.ts +15 -0
- package/dist/modules/SurchargeList/types.js +1 -0
- package/dist/modules/index.d.ts +3 -0
- package/dist/modules/index.js +4 -1
- package/dist/plugins/app.d.ts +2 -0
- 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 +462 -8
- package/dist/server/index.js +6137 -714
- package/dist/server/modules/floor-plan/index.d.ts +39 -0
- package/dist/server/modules/floor-plan/index.js +595 -0
- package/dist/server/modules/floor-plan/types.d.ts +43 -0
- package/dist/server/modules/floor-plan/types.js +13 -0
- package/dist/server/modules/index.d.ts +7 -2
- package/dist/server/modules/index.js +6 -0
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.d.ts +207 -14
- package/dist/server/modules/order/index.js +2326 -379
- package/dist/server/modules/order/types.d.ts +76 -5
- package/dist/server/modules/order/types.js +14 -1
- package/dist/server/modules/order/utils/filterBookings.d.ts +7 -1
- package/dist/server/modules/order/utils/filterBookings.js +118 -11
- package/dist/server/modules/order/utils/filterOrders.js +242 -14
- package/dist/server/modules/payment/index.d.ts +28 -0
- package/dist/server/modules/payment/index.js +305 -0
- package/dist/server/modules/payment/types.d.ts +9 -0
- package/dist/server/modules/payment/types.js +1 -0
- package/dist/server/modules/products/index.d.ts +105 -14
- package/dist/server/modules/products/index.js +1397 -540
- package/dist/server/modules/products/types.d.ts +34 -1
- package/dist/server/modules/products/types.js +4 -0
- package/dist/server/modules/quotation/index.d.ts +39 -0
- package/dist/server/modules/quotation/index.js +289 -86
- package/dist/server/modules/resource/index.d.ts +2 -3
- package/dist/server/modules/resource/index.js +105 -84
- package/dist/server/modules/schedule/index.d.ts +6 -4
- package/dist/server/modules/schedule/index.js +137 -114
- package/dist/server/test.json +713 -0
- package/dist/server/types.d.ts +2 -0
- package/dist/server/utils/product.js +2 -3
- package/dist/server/utils/small-ticket.d.ts +71 -0
- package/dist/server/utils/small-ticket.js +963 -0
- package/dist/solution/BaseSales/index.d.ts +378 -0
- package/dist/solution/BaseSales/index.js +4006 -0
- package/dist/solution/BaseSales/types.d.ts +394 -0
- package/dist/solution/BaseSales/types.js +40 -0
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +1450 -0
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
- package/dist/solution/BaseSales/utils/parseSalesResponse.js +157 -0
- package/dist/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
- package/dist/solution/BaseSales/utils/quotationPrice.js +250 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +218 -0
- package/dist/solution/BaseSales/utils.d.ts +40 -0
- package/dist/solution/BaseSales/utils.js +263 -0
- 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.d.ts +393 -24
- package/dist/solution/BookingTicket/index.js +2506 -445
- package/dist/solution/BookingTicket/types.d.ts +191 -6
- package/dist/solution/BookingTicket/types.js +83 -10
- package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.js +136 -0
- package/dist/solution/BookingTicket/utils/cartView.d.ts +29 -0
- package/dist/solution/BookingTicket/utils/cartView.js +209 -0
- package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
- package/dist/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
- package/dist/solution/BookingTicket/utils/orderCustomer.js +31 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +41 -1
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
- package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +36 -34
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +26 -18
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.d.ts +1 -0
- package/dist/solution/Checkout/index.js +199 -277
- package/dist/solution/Checkout/utils/index.js +8 -20
- package/dist/solution/RegisterAndLogin/config.js +2 -10
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/Sales/index.d.ts +50 -5
- package/dist/solution/Sales/index.js +484 -92
- package/dist/solution/Sales/types.d.ts +26 -2
- package/dist/solution/ScanOrder/index.d.ts +27 -21
- package/dist/solution/ScanOrder/index.js +509 -454
- package/dist/solution/ScanOrder/types.d.ts +33 -11
- package/dist/solution/ScanOrder/types.js +4 -5
- package/dist/solution/ScanOrder/utils.d.ts +4 -1
- package/dist/solution/ScanOrder/utils.js +109 -34
- package/dist/solution/ShopDiscount/index.js +6 -11
- package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/dist/solution/UnifiedBookingSales/index.js +1871 -0
- package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/dist/solution/UnifiedBookingSales/types.js +11 -0
- package/dist/solution/VenueBooking/index.d.ts +34 -20
- package/dist/solution/VenueBooking/index.js +630 -505
- package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
- package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
- package/dist/solution/index.d.ts +2 -0
- package/dist/solution/index.js +3 -1
- package/dist/types/index.d.ts +11 -1
- 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 +130 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +92 -53
- 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 +84 -63
- package/lib/model/strategy/adapter/promotion/evaluator.js +383 -232
- package/lib/model/strategy/adapter/promotion/examples.js +139 -159
- package/lib/model/strategy/adapter/promotion/index.js +1 -49
- package/lib/model/strategy/adapter/promotion/type.js +199 -35
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
- 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 +654 -402
- 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.d.ts +2 -2
- package/lib/modules/BaseModule.js +26 -49
- package/lib/modules/BookingContext/index.d.ts +48 -0
- package/lib/modules/BookingContext/index.js +390 -0
- package/lib/modules/BookingContext/types.d.ts +102 -0
- package/lib/modules/BookingContext/types.js +48 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +286 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +242 -0
- package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/lib/modules/BookingContext/utils/flexible.js +63 -0
- package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/lib/modules/BookingContext/utils/formatResourceList.js +35 -0
- package/lib/modules/BookingContext/utils/index.d.ts +11 -0
- package/lib/modules/BookingContext/utils/index.js +126 -0
- package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/lib/modules/BookingContext/utils/noResource.js +78 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +29 -0
- package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/lib/modules/BookingContext/utils/productExtend.js +330 -0
- package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
- package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/lib/modules/BookingContext/utils/resourceSelection.js +24 -0
- package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
- package/lib/modules/BookingContext/utils/resources.js +419 -0
- package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/lib/modules/BookingContext/utils/serviceTimes.js +161 -0
- package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/lib/modules/BookingContext/utils/timeSlices.js +114 -0
- 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 +331 -244
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +72 -78
- package/lib/modules/Cart/utils/changePrice.js +37 -67
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.d.ts +20 -0
- package/lib/modules/Customer/index.js +270 -154
- package/lib/modules/Customer/types.d.ts +2 -0
- 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.d.ts +2 -1
- package/lib/modules/Discount/index.js +133 -113
- package/lib/modules/Discount/types.d.ts +1 -0
- 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.d.ts +8 -0
- package/lib/modules/OpenData/index.js +81 -74
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +449 -24
- package/lib/modules/Order/index.js +3834 -489
- package/lib/modules/Order/types.d.ts +693 -88
- package/lib/modules/Order/types.js +78 -33
- package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
- package/lib/modules/Order/utils/bundleDiscountHydration.js +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.js +207 -0
- package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
- package/lib/modules/Order/utils/orderCollectionIdentity.js +353 -0
- package/lib/modules/Order/utils.d.ts +167 -18
- package/lib/modules/Order/utils.js +1247 -345
- 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.d.ts +10 -9
- package/lib/modules/Payment/index.js +542 -502
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.d.ts +40 -16
- package/lib/modules/Payment/types.js +216 -107
- package/lib/modules/Payment/utils.d.ts +1 -1
- package/lib/modules/Payment/utils.js +53 -49
- package/lib/modules/Payment/walletpass.js +231 -203
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.d.ts +29 -7
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.d.ts +17 -13
- package/lib/modules/ProductList/index.js +160 -118
- package/lib/modules/ProductList/types.d.ts +17 -0
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.d.ts +22 -2
- package/lib/modules/Quotation/index.js +123 -89
- package/lib/modules/Quotation/types.d.ts +19 -0
- 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.d.ts +24 -0
- package/lib/modules/ResourcePlanner/index.js +147 -0
- package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
- package/lib/modules/ResourcePlanner/planner.js +895 -0
- package/lib/modules/ResourcePlanner/types.d.ts +227 -0
- package/lib/modules/ResourcePlanner/types.js +5 -0
- package/lib/modules/Rules/index.d.ts +8 -10
- package/lib/modules/Rules/index.js +1286 -894
- package/lib/modules/Rules/types.d.ts +14 -3
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.d.ts +23 -26
- package/lib/modules/SalesSummary/index.js +130 -71
- package/lib/modules/SalesSummary/types.d.ts +9 -1
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.d.ts +3 -22
- package/lib/modules/SalesSummary/utils.js +738 -250
- 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 +345 -171
- package/lib/modules/Schedule/index.d.ts +18 -5
- package/lib/modules/Schedule/index.js +139 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.d.ts +2 -0
- 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 -70
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +782 -429
- package/lib/modules/SurchargeList/index.d.ts +18 -0
- package/lib/modules/SurchargeList/index.js +95 -0
- package/lib/modules/SurchargeList/types.d.ts +15 -0
- package/lib/modules/SurchargeList/types.js +5 -0
- package/lib/modules/index.d.ts +3 -0
- package/lib/modules/index.js +245 -57
- package/lib/plugins/app.d.ts +2 -0
- 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 +462 -8
- package/lib/server/index.js +4668 -713
- package/lib/server/modules/floor-plan/index.d.ts +39 -0
- package/lib/server/modules/floor-plan/index.js +306 -0
- package/lib/server/modules/floor-plan/types.d.ts +43 -0
- package/lib/server/modules/floor-plan/types.js +19 -0
- package/lib/server/modules/index.d.ts +7 -2
- package/lib/server/modules/index.js +106 -59
- package/lib/server/modules/menu/index.js +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.d.ts +207 -14
- package/lib/server/modules/order/index.js +1463 -316
- package/lib/server/modules/order/types.d.ts +76 -5
- package/lib/server/modules/order/types.js +117 -32
- package/lib/server/modules/order/utils/filterBookings.d.ts +7 -1
- package/lib/server/modules/order/utils/filterBookings.js +288 -146
- package/lib/server/modules/order/utils/filterOrders.js +318 -64
- package/lib/server/modules/payment/index.d.ts +28 -0
- package/lib/server/modules/payment/index.js +168 -0
- package/lib/server/modules/payment/types.d.ts +9 -0
- package/lib/server/modules/payment/types.js +5 -0
- package/lib/server/modules/products/index.d.ts +105 -14
- package/lib/server/modules/products/index.js +969 -383
- package/lib/server/modules/products/types.d.ts +34 -1
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.d.ts +39 -0
- package/lib/server/modules/quotation/index.js +220 -77
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.d.ts +2 -3
- package/lib/server/modules/resource/index.js +269 -214
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.d.ts +6 -4
- package/lib/server/modules/schedule/index.js +158 -132
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/test.json +713 -0
- package/lib/server/types.d.ts +2 -0
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +197 -140
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.d.ts +71 -0
- package/lib/server/utils/small-ticket.js +926 -0
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.d.ts +378 -0
- package/lib/solution/BaseSales/index.js +2367 -0
- package/lib/solution/BaseSales/types.d.ts +394 -0
- package/lib/solution/BaseSales/types.js +47 -0
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +1155 -0
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +140 -0
- package/lib/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
- package/lib/solution/BaseSales/utils/quotationPrice.js +231 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +215 -0
- package/lib/solution/BaseSales/utils.d.ts +40 -0
- package/lib/solution/BaseSales/utils.js +259 -0
- package/lib/solution/BookingByStep/index.js +1530 -1343
- 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.d.ts +393 -24
- package/lib/solution/BookingTicket/index.js +1459 -160
- package/lib/solution/BookingTicket/types.d.ts +191 -6
- package/lib/solution/BookingTicket/types.js +101 -66
- package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.js +353 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +94 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.js +136 -0
- package/lib/solution/BookingTicket/utils/cartView.d.ts +29 -0
- package/lib/solution/BookingTicket/utils/cartView.js +200 -0
- package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +35 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +387 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +220 -0
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +85 -80
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +64 -0
- package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -80
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +103 -95
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +115 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +83 -0
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.d.ts +1 -0
- package/lib/solution/Checkout/index.js +1461 -1169
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -159
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +495 -470
- 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.d.ts +50 -5
- package/lib/solution/Sales/index.js +495 -220
- package/lib/solution/Sales/types.d.ts +26 -2
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.d.ts +27 -21
- package/lib/solution/ScanOrder/index.js +908 -904
- package/lib/solution/ScanOrder/types.d.ts +33 -11
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.d.ts +4 -1
- package/lib/solution/ScanOrder/utils.js +457 -344
- package/lib/solution/ShopDiscount/index.js +230 -236
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +309 -172
- package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/lib/solution/UnifiedBookingSales/index.js +1050 -0
- package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/lib/solution/UnifiedBookingSales/types.js +14 -0
- package/lib/solution/VenueBooking/index.d.ts +34 -20
- package/lib/solution/VenueBooking/index.js +982 -950
- package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/lib/solution/VenueBooking/types.js +20 -40
- package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
- package/lib/solution/VenueBooking/utils/slotMerge.js +96 -108
- package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.d.ts +2 -0
- package/lib/solution/index.js +124 -37
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.d.ts +11 -1
- package/lib/types/index.js +4 -16
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
- package/dist/solution/Checkout/appointmentDemo.json +0 -1
- package/lib/solution/Checkout/appointmentDemo.json +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 平面图(floor-plan)Server 模块类型
|
|
3
|
+
* 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
|
|
4
|
+
*/
|
|
5
|
+
export interface FloorPlanItem {
|
|
6
|
+
id: number;
|
|
7
|
+
shop_id?: number;
|
|
8
|
+
code: string;
|
|
9
|
+
name: string | Record<string, string>;
|
|
10
|
+
layout: unknown[];
|
|
11
|
+
canvas_width: number;
|
|
12
|
+
canvas_height: number;
|
|
13
|
+
sort: number;
|
|
14
|
+
status: number;
|
|
15
|
+
created_at?: string;
|
|
16
|
+
updated_at?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface FloorPlanState {
|
|
19
|
+
list: FloorPlanItem[];
|
|
20
|
+
map: Map<string, FloorPlanItem>;
|
|
21
|
+
codeMap: Map<string, FloorPlanItem>;
|
|
22
|
+
}
|
|
23
|
+
/** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
|
|
24
|
+
export interface FloorPlanSyncMessage {
|
|
25
|
+
module?: string;
|
|
26
|
+
action?: string;
|
|
27
|
+
operation?: string;
|
|
28
|
+
id?: number;
|
|
29
|
+
ids?: number[];
|
|
30
|
+
body?: Partial<FloorPlanItem> & {
|
|
31
|
+
id?: number;
|
|
32
|
+
};
|
|
33
|
+
message_uuid?: string;
|
|
34
|
+
timestamp?: string;
|
|
35
|
+
_channelKey?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare const FloorPlanHooks: {
|
|
38
|
+
/** 本地列表变更(预加载、合并、删除后) */
|
|
39
|
+
readonly onFloorPlansChanged: "server_floor_plan:onFloorPlansChanged";
|
|
40
|
+
/** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
|
|
41
|
+
readonly onFloorPlanSyncCompleted: "server_floor_plan:onFloorPlanSyncCompleted";
|
|
42
|
+
};
|
|
43
|
+
export type FloorPlanHooksType = (typeof FloorPlanHooks)[keyof typeof FloorPlanHooks];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 平面图(floor-plan)Server 模块类型
|
|
3
|
+
* 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
|
|
7
|
+
|
|
8
|
+
export var FloorPlanHooks = {
|
|
9
|
+
/** 本地列表变更(预加载、合并、删除后) */
|
|
10
|
+
onFloorPlansChanged: 'server_floor_plan:onFloorPlansChanged',
|
|
11
|
+
/** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
|
|
12
|
+
onFloorPlanSyncCompleted: 'server_floor_plan:onFloorPlanSyncCompleted'
|
|
13
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 包含新增的 Products、Menu、Quotation 和扩展的 Schedule 模块
|
|
4
4
|
*/
|
|
5
5
|
export { ProductsModule } from './products';
|
|
6
|
-
export type { ProductsState } from './products/types';
|
|
6
|
+
export type { ProductIdScope, ProductsState } from './products/types';
|
|
7
7
|
export { ProductsHooks } from './products/types';
|
|
8
8
|
export { MenuModule } from './menu';
|
|
9
9
|
export type { MenuState, MenuData } from './menu/types';
|
|
@@ -14,8 +14,13 @@ export { QuotationHooks } from './quotation/types';
|
|
|
14
14
|
export { ScheduleModuleEx } from './schedule';
|
|
15
15
|
export type { ScheduleState, ScheduleItem } from './schedule/types';
|
|
16
16
|
export { OrderModule } from './order';
|
|
17
|
-
export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, BookingFilterResult, OrderModulePagedResult, } from './order/types';
|
|
17
|
+
export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, OrderFilterRejectDetail, OrderFilterRejectedEntry, BookingFilterResult, OrderModulePagedResult, } from './order/types';
|
|
18
18
|
export { OrderHooks } from './order/types';
|
|
19
|
+
export { PaymentServerModule } from './payment';
|
|
20
|
+
export type { PaymentMethod, PaymentMethodsChangedEventData, PaymentServerState } from './payment/types';
|
|
21
|
+
export { FloorPlanModule } from './floor-plan';
|
|
22
|
+
export type { FloorPlanItem, FloorPlanState, FloorPlanSyncMessage } from './floor-plan/types';
|
|
23
|
+
export { FloorPlanHooks } from './floor-plan/types';
|
|
19
24
|
export { ResourceModule, resourceModule } from './resource';
|
|
20
25
|
export type { ResourceState, ResourceData, ResourceId, ResourceBooking, ResourcePageQuery, ResourcePageResult, QueryOptions, ScheduleEventResource, } from './resource';
|
|
21
26
|
export { ResourceHooks } from './resource';
|
|
@@ -21,6 +21,12 @@ export { ScheduleModuleEx } from "./schedule";
|
|
|
21
21
|
export { OrderModule } from "./order";
|
|
22
22
|
export { OrderHooks } from "./order/types";
|
|
23
23
|
|
|
24
|
+
// Payment 模块
|
|
25
|
+
export { PaymentServerModule } from "./payment";
|
|
26
|
+
// 平面图(floor-plan)
|
|
27
|
+
export { FloorPlanModule } from "./floor-plan";
|
|
28
|
+
export { FloorPlanHooks } from "./floor-plan/types";
|
|
29
|
+
|
|
24
30
|
// Resource 模块
|
|
25
31
|
export { ResourceModule, resourceModule } from "./resource";
|
|
26
32
|
export { ResourceHooks } from "./resource";
|
|
@@ -84,9 +84,7 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
84
84
|
app = appPlugin.getApp();
|
|
85
85
|
this.dbManager = app.dbManager;
|
|
86
86
|
this.logger = app.logger;
|
|
87
|
-
if (this.dbManager) {
|
|
88
|
-
console.log('[Menu] IndexDB Manager 已初始化');
|
|
89
|
-
} else {
|
|
87
|
+
if (this.dbManager) {} else {
|
|
90
88
|
console.warn('[Menu] IndexDB Manager 未找到');
|
|
91
89
|
}
|
|
92
90
|
}
|
|
@@ -262,7 +260,6 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
262
260
|
} finally {
|
|
263
261
|
_iterator2.f();
|
|
264
262
|
}
|
|
265
|
-
console.log("[Menu] Map \u7F13\u5B58\u5DF2\u540C\u6B65\uFF0C\u5171 ".concat(this.store.map.size, " \u4E2A\u9910\u724C"));
|
|
266
263
|
}
|
|
267
264
|
|
|
268
265
|
/**
|
|
@@ -285,33 +282,31 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
285
282
|
|
|
286
283
|
// 同时清空 IndexDB 中的数据
|
|
287
284
|
if (!this.dbManager) {
|
|
288
|
-
_context4.next =
|
|
285
|
+
_context4.next = 16;
|
|
289
286
|
break;
|
|
290
287
|
}
|
|
291
288
|
_context4.prev = 5;
|
|
292
289
|
_context4.next = 8;
|
|
293
290
|
return this.dbManager.clear(INDEXDB_STORE_NAME);
|
|
294
291
|
case 8:
|
|
295
|
-
console.log('[Menu] IndexDB 缓存已清空');
|
|
296
292
|
this.logInfo('IndexDB 缓存已清空');
|
|
297
|
-
_context4.next =
|
|
293
|
+
_context4.next = 16;
|
|
298
294
|
break;
|
|
299
|
-
case
|
|
300
|
-
_context4.prev =
|
|
295
|
+
case 11:
|
|
296
|
+
_context4.prev = 11;
|
|
301
297
|
_context4.t0 = _context4["catch"](5);
|
|
302
298
|
errorMessage = _context4.t0 instanceof Error ? _context4.t0.message : String(_context4.t0);
|
|
303
299
|
console.error('[Menu] 清空 IndexDB 缓存失败:', _context4.t0);
|
|
304
300
|
this.logError('清空 IndexDB 缓存失败', {
|
|
305
301
|
error: errorMessage
|
|
306
302
|
});
|
|
307
|
-
case
|
|
308
|
-
console.log('[Menu] 缓存已清空');
|
|
303
|
+
case 16:
|
|
309
304
|
this.logInfo('缓存清空完成');
|
|
310
|
-
case
|
|
305
|
+
case 17:
|
|
311
306
|
case "end":
|
|
312
307
|
return _context4.stop();
|
|
313
308
|
}
|
|
314
|
-
}, _callee4, this, [[5,
|
|
309
|
+
}, _callee4, this, [[5, 11]]);
|
|
315
310
|
}));
|
|
316
311
|
function clear() {
|
|
317
312
|
return _clear.apply(this, arguments);
|
|
@@ -402,14 +397,13 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
402
397
|
_context6.next = 10;
|
|
403
398
|
return Promise.all(savePromises);
|
|
404
399
|
case 10:
|
|
405
|
-
console.log("[Menu] \u5DF2\u5C06 ".concat(menuList.length, " \u6761\u9910\u724C\u6570\u636E\u4FDD\u5B58\u5230 IndexDB"));
|
|
406
400
|
this.logInfo('餐牌数据已保存到 IndexDB', {
|
|
407
401
|
menuCount: menuList.length
|
|
408
402
|
});
|
|
409
|
-
_context6.next =
|
|
403
|
+
_context6.next = 18;
|
|
410
404
|
break;
|
|
411
|
-
case
|
|
412
|
-
_context6.prev =
|
|
405
|
+
case 13:
|
|
406
|
+
_context6.prev = 13;
|
|
413
407
|
_context6.t0 = _context6["catch"](4);
|
|
414
408
|
errorMessage = _context6.t0 instanceof Error ? _context6.t0.message : String(_context6.t0);
|
|
415
409
|
console.error('[Menu] 保存数据到 IndexDB 失败:', _context6.t0);
|
|
@@ -417,11 +411,11 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
417
411
|
menuCount: menuList.length,
|
|
418
412
|
error: errorMessage
|
|
419
413
|
});
|
|
420
|
-
case
|
|
414
|
+
case 18:
|
|
421
415
|
case "end":
|
|
422
416
|
return _context6.stop();
|
|
423
417
|
}
|
|
424
|
-
}, _callee6, this, [[4,
|
|
418
|
+
}, _callee6, this, [[4, 13]]);
|
|
425
419
|
}));
|
|
426
420
|
function saveMenuToIndexDB(_x4) {
|
|
427
421
|
return _saveMenuToIndexDB.apply(this, arguments);
|
|
@@ -441,19 +435,17 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
441
435
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
442
436
|
while (1) switch (_context7.prev = _context7.next) {
|
|
443
437
|
case 0:
|
|
444
|
-
console.log('[Menu] 开始预加载数据...');
|
|
445
438
|
startTime = Date.now();
|
|
446
439
|
this.logInfo('开始预加载数据');
|
|
447
|
-
_context7.prev =
|
|
448
|
-
_context7.next =
|
|
440
|
+
_context7.prev = 2;
|
|
441
|
+
_context7.next = 5;
|
|
449
442
|
return this.loadMenuFromIndexDB();
|
|
450
|
-
case
|
|
443
|
+
case 5:
|
|
451
444
|
cachedData = _context7.sent;
|
|
452
445
|
if (!(cachedData && cachedData.length > 0)) {
|
|
453
|
-
_context7.next =
|
|
446
|
+
_context7.next = 13;
|
|
454
447
|
break;
|
|
455
448
|
}
|
|
456
|
-
console.log("[Menu] \u4ECE IndexDB \u52A0\u8F7D\u4E86 ".concat(cachedData.length, " \u6761\u9910\u724C\u6570\u636E"));
|
|
457
449
|
// 将缓存数据放入 store
|
|
458
450
|
this.store.menuList = cloneDeep(cachedData);
|
|
459
451
|
// 同步更新 Map 缓存
|
|
@@ -466,31 +458,30 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
466
458
|
source: 'IndexDB'
|
|
467
459
|
});
|
|
468
460
|
return _context7.abrupt("return");
|
|
469
|
-
case
|
|
470
|
-
console.log('[Menu] IndexDB 中没有缓存数据,从服务器加载...');
|
|
461
|
+
case 13:
|
|
471
462
|
this.logInfo('IndexDB 中没有缓存数据,准备从服务器加载');
|
|
472
|
-
_context7.next =
|
|
463
|
+
_context7.next = 21;
|
|
473
464
|
break;
|
|
474
|
-
case
|
|
475
|
-
_context7.prev =
|
|
476
|
-
_context7.t0 = _context7["catch"](
|
|
465
|
+
case 16:
|
|
466
|
+
_context7.prev = 16;
|
|
467
|
+
_context7.t0 = _context7["catch"](2);
|
|
477
468
|
errorMessage = _context7.t0 instanceof Error ? _context7.t0.message : String(_context7.t0);
|
|
478
469
|
console.warn('[Menu] 从 IndexDB 加载数据失败:', _context7.t0);
|
|
479
470
|
this.logWarning('从 IndexDB 加载数据失败,准备从服务器加载', {
|
|
480
471
|
error: errorMessage
|
|
481
472
|
});
|
|
482
|
-
case
|
|
483
|
-
_context7.next =
|
|
473
|
+
case 21:
|
|
474
|
+
_context7.next = 23;
|
|
484
475
|
return this.loadMenuList();
|
|
485
|
-
case
|
|
476
|
+
case 23:
|
|
486
477
|
menuList = _context7.sent;
|
|
487
478
|
if (!(menuList && menuList.length > 0)) {
|
|
488
|
-
_context7.next =
|
|
479
|
+
_context7.next = 34;
|
|
489
480
|
break;
|
|
490
481
|
}
|
|
491
|
-
_context7.next =
|
|
482
|
+
_context7.next = 27;
|
|
492
483
|
return this.saveMenuToIndexDB(menuList);
|
|
493
|
-
case
|
|
484
|
+
case 27:
|
|
494
485
|
this.store.menuList = cloneDeep(menuList);
|
|
495
486
|
// 同步更新 Map 缓存
|
|
496
487
|
this.syncMenuMap();
|
|
@@ -501,18 +492,18 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
501
492
|
duration: "".concat(_duration2, "ms"),
|
|
502
493
|
source: 'Server'
|
|
503
494
|
});
|
|
504
|
-
_context7.next =
|
|
495
|
+
_context7.next = 36;
|
|
505
496
|
break;
|
|
506
|
-
case
|
|
497
|
+
case 34:
|
|
507
498
|
_duration3 = Date.now() - startTime;
|
|
508
499
|
this.logWarning('预加载完成但未获取到数据', {
|
|
509
500
|
duration: "".concat(_duration3, "ms")
|
|
510
501
|
});
|
|
511
|
-
case
|
|
502
|
+
case 36:
|
|
512
503
|
case "end":
|
|
513
504
|
return _context7.stop();
|
|
514
505
|
}
|
|
515
|
-
}, _callee7, this, [[
|
|
506
|
+
}, _callee7, this, [[2, 16]]);
|
|
516
507
|
}));
|
|
517
508
|
function preload() {
|
|
518
509
|
return _preload.apply(this, arguments);
|
|
@@ -13,17 +13,28 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
13
13
|
private orderDataSource;
|
|
14
14
|
private pendingSyncMessages;
|
|
15
15
|
private syncTimer?;
|
|
16
|
-
private
|
|
17
|
-
private
|
|
16
|
+
private isProcessingSyncBatch;
|
|
17
|
+
private isIdlePhase;
|
|
18
18
|
private logger;
|
|
19
19
|
private storage;
|
|
20
|
+
private orderSQLiteSaveQueue; /** 按 storageKey 记录最近一次 SQLite 写入来源与时间,用于去重 */
|
|
21
|
+
private recentSqliteWriteByStorageKey;
|
|
22
|
+
/** 最近一次 SSE 全量拉取完成时间 */
|
|
23
|
+
private lastServerFullFetchAtMs;
|
|
20
24
|
constructor(name?: string, version?: string);
|
|
25
|
+
/**
|
|
26
|
+
* 广播订单变更事件,兼容全量列表订阅并额外携带本次变更订单。
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* await this.emitOrdersChanged([freshOrder], 'pubsub.bodyUpsert')
|
|
30
|
+
*/
|
|
31
|
+
private emitOrdersChanged;
|
|
21
32
|
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
|
|
22
33
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
34
|
+
* 记录信息日志
|
|
35
|
+
* @param title 日志标题
|
|
36
|
+
* @param metadata 日志元数据
|
|
37
|
+
*/
|
|
27
38
|
private logInfo;
|
|
28
39
|
/**
|
|
29
40
|
* 记录错误日志
|
|
@@ -31,46 +42,190 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
31
42
|
* @param metadata 日志元数据
|
|
32
43
|
*/
|
|
33
44
|
private logError;
|
|
45
|
+
private logWarning;
|
|
46
|
+
/**
|
|
47
|
+
* 在订单进入内存或 SQLite 前统一压缩子项强身份重复并补齐协议 UID。
|
|
48
|
+
* 仅记录计数与订单标识,不输出商品、预约、支付或客户明细。
|
|
49
|
+
*/
|
|
50
|
+
private normalizeOrderCollectionsForIngress;
|
|
51
|
+
/**
|
|
52
|
+
* incoming 决定权威成员集合;同一持久化行仍从 existing 补齐 incoming 省略的本地展示字段。
|
|
53
|
+
*/
|
|
54
|
+
private mergeAuthoritativeOrderCollection;
|
|
55
|
+
private reconcileOverwriteOrderCollections;
|
|
56
|
+
/**
|
|
57
|
+
* 记录订单最近一次 SQLite 写入,供 pubsub 回声去重使用。
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* this.recordRecentSqliteWrite('upsertOrdersFromRemote', orders)
|
|
61
|
+
*/
|
|
62
|
+
private recordRecentSqliteWrite;
|
|
63
|
+
/**
|
|
64
|
+
* 过滤 pubsub 触发的冗余 SQLite patch(业务 API 刚写入过的 update 回声)。
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const { toWrite, skipped } = this.filterRedundantPatchOrders('pubsub.bodyUpsert', orders, mergeActions)
|
|
68
|
+
*/
|
|
69
|
+
private filterRedundantPatchOrders;
|
|
70
|
+
/**
|
|
71
|
+
* 过滤 pubsub HTTP 增量拉取 ids:本地刚由业务 API 写入的单可跳过 HTTP。
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* const ids = this.filterRedundantHttpRefreshIds([99331, 99332])
|
|
75
|
+
*/
|
|
76
|
+
private filterRedundantHttpRefreshIds;
|
|
77
|
+
/**
|
|
78
|
+
* 解析 pubsub 消息会走哪条同步分支,便于对照为何触发 HTTP 重拉或 body 直写。
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* this.resolveSyncMessageRoute(msg)
|
|
82
|
+
* // => { route: 'httpRefresh.batchIds', ... }
|
|
83
|
+
*/
|
|
84
|
+
private resolveSyncMessageRoute;
|
|
85
|
+
private updateCreateStore;
|
|
86
|
+
private getOrderSyncThrottleMs;
|
|
34
87
|
preload(): Promise<void>;
|
|
35
88
|
getOrders(): OrderData[];
|
|
36
89
|
getOrderById(id: OrderId): OrderData | undefined;
|
|
37
|
-
/** 按 order_id
|
|
90
|
+
/** 按 order_id 查询内存订单。 */
|
|
38
91
|
getOrderByOrderId(orderId: OrderId): OrderData | undefined;
|
|
92
|
+
getLocalOrderFromMemoryByLookup(lookup: OrderId): OrderData | null;
|
|
93
|
+
getLocalOrderByLookup(lookup: OrderId): Promise<OrderData | null>;
|
|
39
94
|
loadOrdersByServer(): Promise<OrderData[]>;
|
|
40
|
-
|
|
95
|
+
/**
|
|
96
|
+
* 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
|
|
97
|
+
* 拿到完整数据后一次性替换 store,触发订单变更与同步完成事件
|
|
98
|
+
* @returns 刷新后的订单列表
|
|
99
|
+
*/
|
|
100
|
+
silentRefresh(): Promise<OrderData[]>;
|
|
101
|
+
private normalizeOrderForMemoryList;
|
|
102
|
+
/**
|
|
103
|
+
* 仅覆盖本地已存在的订单;不存在则直接跳过,不落库、不 emit。
|
|
104
|
+
* 适用于"按 order_id 主动刷新本地订单详情"的代理场景。
|
|
105
|
+
*/
|
|
106
|
+
overwriteExistingOrder(fresh: OrderData): Promise<{
|
|
107
|
+
overwritten: boolean;
|
|
108
|
+
}>;
|
|
109
|
+
/**
|
|
110
|
+
* 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
|
|
111
|
+
* 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
|
|
112
|
+
*/
|
|
113
|
+
upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
|
|
114
|
+
markOrderSyncedByExternalSaleNumber(params: {
|
|
115
|
+
externalSaleNumber: OrderId;
|
|
116
|
+
patch?: Partial<OrderData>;
|
|
117
|
+
}): Promise<{
|
|
118
|
+
updated: boolean;
|
|
119
|
+
order?: OrderData;
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* 将本地待同步订单按 SQLite storage key 合并进 store 并落库。
|
|
123
|
+
* checkout 离线兜底可能没有 order_id,但通常会有 external_sale_number。
|
|
124
|
+
*/
|
|
125
|
+
upsertPendingSyncOrders(pendingOrders: OrderData[]): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
128
|
+
*/
|
|
129
|
+
fetchOrdersBySSE(query?: Record<string, any>): Promise<OrderData[]>;
|
|
41
130
|
getRoutes(): RouteDefinition[];
|
|
42
131
|
destroy(): void;
|
|
43
132
|
private syncOrdersMap;
|
|
44
|
-
private
|
|
133
|
+
private getOrderMapKey;
|
|
134
|
+
private isBlankIdentityValue;
|
|
135
|
+
private getOrderIdentityEntries;
|
|
136
|
+
private getOrderIdentityKeys;
|
|
45
137
|
private getOrderDateKey;
|
|
46
138
|
/**
|
|
47
139
|
* 初始化 OrderDataSource 实例
|
|
48
140
|
*/
|
|
49
141
|
private initOrderDataSource;
|
|
50
142
|
/**
|
|
51
|
-
* 初始化 pubsub
|
|
143
|
+
* 初始化 pubsub 订阅,监听订单变更(纯订阅,不拉数据;全量 SSE 由 loadOrdersByServer 负责)
|
|
52
144
|
*/
|
|
53
145
|
private setupOrderSync;
|
|
54
146
|
/**
|
|
55
|
-
*
|
|
147
|
+
* 调度订单同步节流窗口(leading-edge throttle):
|
|
148
|
+
* - 空闲状态下收到的第一条消息立即触发批处理,无需等待;
|
|
149
|
+
* - 首条处理后进入冷却窗口,窗口期间的后续消息聚合,窗口结束后批量处理;
|
|
150
|
+
* - 若当前批处理执行中,则由批处理结束后决定是否开启下一轮窗口。
|
|
151
|
+
*/
|
|
152
|
+
private scheduleOrderSyncThrottle;
|
|
153
|
+
/**
|
|
154
|
+
* 执行一次节流批处理并在需要时续约下一轮窗口。
|
|
155
|
+
* 批处理完成且无后续消息时恢复空闲状态,下一条消息将立即触发。
|
|
156
|
+
*/
|
|
157
|
+
private flushOrderSyncMessagesByThrottle;
|
|
158
|
+
/**
|
|
159
|
+
* 处理节流窗口内聚合后的同步消息批次
|
|
56
160
|
*
|
|
57
161
|
* 后端统一发送 change 消息,不再区分新增/编辑/删除。
|
|
58
162
|
* - 单条(id/order_id):若携带 body/data 则直接 upsert 到本地
|
|
59
163
|
* - 批量(ids):通过 HTTP 按 ids 增量拉取,再 merge 到本地
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* // pending 队列中存在 8 条消息时,仅处理一次批次并统一 merge
|
|
167
|
+
* await this.processOrderSyncMessages()
|
|
60
168
|
*/
|
|
61
169
|
private processOrderSyncMessages;
|
|
62
170
|
/**
|
|
63
|
-
* 通过 HTTP 按 ids
|
|
171
|
+
* 通过 HTTP 按 ids 批量拉取订单详情(走 orderDataSource)。
|
|
172
|
+
*
|
|
173
|
+
* - 优先使用 `orderDataSource.fetchOrdersByIds`(如适配器实现了该方法)
|
|
174
|
+
* - 否则回退到 `orderDataSource.run({ http: { query: { ids } } })`
|
|
175
|
+
* - 失败统一返回空数组(由调用方按"返回缺失的 id" 判断单笔失败)
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* const fresh = await orderModule.fetchOrdersByHttp(['96971', '96972'])
|
|
64
179
|
*/
|
|
65
|
-
|
|
180
|
+
fetchOrdersByHttp(ids: OrderId[]): Promise<OrderData[]>;
|
|
66
181
|
/**
|
|
67
182
|
* 将增量订单合并到 store
|
|
68
183
|
*/
|
|
69
184
|
private mergeOrdersToStore;
|
|
185
|
+
/**
|
|
186
|
+
* 在身份索引中查找与目标订单共享任一身份键的已存在订单下标。
|
|
187
|
+
* 返回所有命中键里最小的下标,等价于原 findOrderIndexByIdentity 的「取首个匹配」语义。
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* const idx = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, freshIdentityKeys)
|
|
191
|
+
*/
|
|
192
|
+
private lookupOrderIndexByIdentityKeys;
|
|
193
|
+
private isRemoteEchoMergeSource;
|
|
194
|
+
/**
|
|
195
|
+
* 将订单的全部身份键登记到索引并指向其在列表中的下标。
|
|
196
|
+
* 合并后订单新增的身份字段(如挂单同步后拿到 order_id)也会被登记。
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex)
|
|
200
|
+
*/
|
|
201
|
+
private registerOrderIdentityKeys;
|
|
202
|
+
/**
|
|
203
|
+
* 合并热路径去重兜底:默认直接返回原列表(增量索引已保证无重复)。
|
|
204
|
+
* 仅当 ORDER_MERGE_SELF_CHECK 开启时,额外做一次全表压缩并在发现残留重复时告警。
|
|
205
|
+
*/
|
|
206
|
+
private runOrderStoreSelfCheck;
|
|
70
207
|
private normalizeOrderSyncMessage;
|
|
71
208
|
private normalizeOrderSyncPayload;
|
|
72
209
|
private uniqueOrderIds;
|
|
73
210
|
private getIdKey;
|
|
211
|
+
private isOrderLookupMatch;
|
|
212
|
+
/**
|
|
213
|
+
* 解析订单 SQLite 主键,规则与宿主 OrderDataSource.getOrderStorageKey 一致。
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* const key = this.getOrderStorageKey({ order_id: 1001, external_sale_number: 'S-1001' })
|
|
217
|
+
* // => 'S-1001'
|
|
218
|
+
*/
|
|
219
|
+
private getOrderStorageKey;
|
|
220
|
+
private getOrderIdentityMatchKeys;
|
|
221
|
+
private doOrdersShareIdentity;
|
|
222
|
+
private findOrderIndexByIdentity;
|
|
223
|
+
private getOrderCompletenessScore;
|
|
224
|
+
private pickPreferredOrder;
|
|
225
|
+
private mergeOrderRecords;
|
|
226
|
+
private summarizeDuplicateOrders;
|
|
227
|
+
private logDuplicateOrders;
|
|
228
|
+
private compactOrderListByIdentity;
|
|
74
229
|
/**
|
|
75
230
|
* 当前订单拉取窗口:
|
|
76
231
|
* - 优先使用 createdAtQuery.sales_time_between(已按营业日边界初始化)
|
|
@@ -82,6 +237,44 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
82
237
|
private getStorageItem;
|
|
83
238
|
private setStorageItem;
|
|
84
239
|
private loadOrdersFromSQLite;
|
|
85
|
-
private
|
|
240
|
+
private isPendingSyncOrder;
|
|
241
|
+
private normalizeRemoteSyncedOrder;
|
|
242
|
+
private mergeRemoteSnapshotWithPendingOrders;
|
|
243
|
+
/**
|
|
244
|
+
* 串行执行订单 SQLite 写入任务,避免快照替换与增量 upsert 并发交错。
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* await this.runInOrderSQLiteSaveQueue(async () => {
|
|
248
|
+
* await this.dbManager.bulkUpdate(INDEXDB_STORE_NAME, orders)
|
|
249
|
+
* })
|
|
250
|
+
*/
|
|
251
|
+
private runInOrderSQLiteSaveQueue;
|
|
252
|
+
/**
|
|
253
|
+
* 批量增量 upsert 订单到 SQLite,不清空表;用于 pubsub / HTTP 增量合并。
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* await this.patchOrdersInSQLite(freshOrders)
|
|
257
|
+
*/
|
|
258
|
+
private patchOrdersInSQLite;
|
|
259
|
+
/**
|
|
260
|
+
* 单条 upsert 订单到 SQLite;用于 overwriteExistingOrder 等单条覆盖场景。
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* await this.updateOrderInSQLite(freshOrder)
|
|
264
|
+
*/
|
|
265
|
+
private updateOrderInSQLite;
|
|
266
|
+
/**
|
|
267
|
+
* 全量快照替换 orders 表(clear + bulkAdd),用于 SSE 全量拉取与营业日窗口裁剪。
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* await this.replaceOrdersSnapshotInSQLite(orderList)
|
|
271
|
+
*/
|
|
272
|
+
private replaceOrdersSnapshotInSQLite;
|
|
273
|
+
/**
|
|
274
|
+
* 清空订单模块的内存数据和本地 SQLite 订单表。
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* await orderModule.clear()
|
|
278
|
+
*/
|
|
86
279
|
clear(): Promise<void>;
|
|
87
280
|
}
|