@pisell/pisellos 2.3.73 → 2.3.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/dist/core/index.d.ts +7 -0
  2. package/dist/core/index.js +111 -71
  3. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  4. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  5. package/dist/model/strategy/strategy-example.js +5 -19
  6. package/dist/modules/Cart/index.js +0 -3
  7. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  8. package/dist/modules/Date/index.js +1 -5
  9. package/dist/modules/Discount/index.js +2 -4
  10. package/dist/modules/OpenData/index.js +0 -2
  11. package/dist/modules/Order/index.d.ts +1 -1
  12. package/dist/modules/Order/index.js +36 -64
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Quotation/index.d.ts +6 -0
  15. package/dist/modules/Quotation/index.js +75 -19
  16. package/dist/modules/Rules/index.js +1 -4
  17. package/dist/modules/Schedule/index.js +0 -1
  18. package/dist/modules/Schedule/utils.js +0 -1
  19. package/dist/modules/Step/index.js +0 -1
  20. package/dist/plugins/request.d.ts +1 -0
  21. package/dist/plugins/request.js +1 -4
  22. package/dist/plugins/window.js +2 -6
  23. package/dist/server/index.d.ts +8 -2
  24. package/dist/server/index.js +303 -269
  25. package/dist/server/modules/floor-plan/index.d.ts +4 -0
  26. package/dist/server/modules/floor-plan/index.js +240 -98
  27. package/dist/server/modules/menu/index.js +75 -59
  28. package/dist/server/modules/order/index.d.ts +17 -7
  29. package/dist/server/modules/order/index.js +421 -211
  30. package/dist/server/modules/products/index.d.ts +8 -2
  31. package/dist/server/modules/products/index.js +191 -117
  32. package/dist/server/modules/quotation/index.js +29 -38
  33. package/dist/server/modules/resource/index.js +24 -17
  34. package/dist/server/modules/schedule/index.js +27 -35
  35. package/dist/server/utils/product.js +0 -1
  36. package/dist/solution/BaseSales/index.js +38 -41
  37. package/dist/solution/BookingByStep/index.d.ts +1 -1
  38. package/dist/solution/BookingByStep/index.js +7 -59
  39. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  40. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  41. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  42. package/dist/solution/BookingTicket/index.js +0 -2
  43. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  44. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  45. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  46. package/dist/solution/BuyTickets/index.js +9 -12
  47. package/dist/solution/Checkout/index.js +177 -252
  48. package/dist/solution/Checkout/utils/index.js +4 -16
  49. package/dist/solution/RegisterAndLogin/index.js +30 -76
  50. package/dist/solution/ScanOrder/index.js +50 -60
  51. package/dist/solution/ShopDiscount/index.js +2 -7
  52. package/dist/solution/VenueBooking/index.js +45 -55
  53. package/dist/utils/task.js +15 -18
  54. package/dist/utils/watch.js +0 -1
  55. package/lib/apis/picoding.js +2 -0
  56. package/lib/core/index.d.ts +7 -0
  57. package/lib/core/index.js +149 -131
  58. package/lib/effects/index.js +46 -57
  59. package/lib/index.js +82 -49
  60. package/lib/model/index.js +14 -21
  61. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  62. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  63. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  64. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  65. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  66. package/lib/model/strategy/adapter/index.js +100 -64
  67. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  68. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  69. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  70. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  71. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  72. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  73. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  74. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  75. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  76. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  77. package/lib/model/strategy/adapter/type.js +4 -16
  78. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  79. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  80. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  81. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  82. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  83. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  84. package/lib/model/strategy/engine.js +270 -168
  85. package/lib/model/strategy/index.js +49 -34
  86. package/lib/model/strategy/strategy-example.js +243 -239
  87. package/lib/model/strategy/type.js +100 -40
  88. package/lib/modules/Account/index.js +39 -53
  89. package/lib/modules/Account/types.js +20 -33
  90. package/lib/modules/AccountList/index.js +116 -154
  91. package/lib/modules/AccountList/types.js +30 -31
  92. package/lib/modules/AccountList/utils.js +18 -30
  93. package/lib/modules/BaseModule.js +23 -42
  94. package/lib/modules/BookingContext/index.js +158 -136
  95. package/lib/modules/BookingContext/types.js +46 -32
  96. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  97. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  98. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  99. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  100. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  101. package/lib/modules/BookingContext/utils/index.js +124 -41
  102. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  103. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  104. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  105. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  106. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  107. package/lib/modules/BookingContext/utils/resources.js +209 -167
  108. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  109. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  110. package/lib/modules/Cart/index.js +170 -124
  111. package/lib/modules/Cart/types.js +46 -51
  112. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  113. package/lib/modules/Cart/utils/cartDate.js +56 -61
  114. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  115. package/lib/modules/Cart/utils/cartNote.js +27 -32
  116. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  117. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  118. package/lib/modules/Cart/utils/cartResource.js +70 -78
  119. package/lib/modules/Cart/utils/changePrice.js +22 -50
  120. package/lib/modules/Cart/utils/index.js +106 -48
  121. package/lib/modules/Customer/constants.js +13 -34
  122. package/lib/modules/Customer/index.js +235 -172
  123. package/lib/modules/Customer/types.js +38 -35
  124. package/lib/modules/Date/index.js +116 -115
  125. package/lib/modules/Date/types.js +16 -28
  126. package/lib/modules/Date/utils.js +174 -123
  127. package/lib/modules/Discount/index.js +122 -127
  128. package/lib/modules/Discount/types.js +9 -31
  129. package/lib/modules/Guests/index.js +30 -56
  130. package/lib/modules/Guests/types.js +23 -33
  131. package/lib/modules/Holder/index.js +209 -189
  132. package/lib/modules/Holder/types.js +4 -16
  133. package/lib/modules/Holder/utils.js +20 -49
  134. package/lib/modules/OpenData/index.js +70 -76
  135. package/lib/modules/OpenData/types.js +4 -16
  136. package/lib/modules/OpenData/utils.js +44 -78
  137. package/lib/modules/Order/index.d.ts +1 -1
  138. package/lib/modules/Order/index.js +1713 -2118
  139. package/lib/modules/Order/payment-utils.js +77 -120
  140. package/lib/modules/Order/types.js +88 -35
  141. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  142. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  143. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  144. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  145. package/lib/modules/Order/utils.js +814 -647
  146. package/lib/modules/Payment/cash.js +20 -33
  147. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  148. package/lib/modules/Payment/eftpos.js +16 -30
  149. package/lib/modules/Payment/index.js +532 -399
  150. package/lib/modules/Payment/mx51.js +1 -0
  151. package/lib/modules/Payment/types.js +230 -108
  152. package/lib/modules/Payment/utils.js +52 -51
  153. package/lib/modules/Payment/walletpass.js +485 -660
  154. package/lib/modules/Product/index.js +51 -46
  155. package/lib/modules/Product/types.js +4 -16
  156. package/lib/modules/Product/utils.js +32 -33
  157. package/lib/modules/ProductList/index.js +113 -123
  158. package/lib/modules/ProductList/types.js +9 -31
  159. package/lib/modules/Quotation/index.d.ts +6 -0
  160. package/lib/modules/Quotation/index.js +110 -103
  161. package/lib/modules/Quotation/types.js +4 -16
  162. package/lib/modules/Resource/index.js +27 -59
  163. package/lib/modules/Resource/types.js +22 -32
  164. package/lib/modules/Resource/utils.js +30 -38
  165. package/lib/modules/ResourcePlanner/index.js +25 -23
  166. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  167. package/lib/modules/ResourcePlanner/planner.js +589 -770
  168. package/lib/modules/ResourcePlanner/types.js +10 -29
  169. package/lib/modules/Rules/index.js +1218 -959
  170. package/lib/modules/Rules/types.js +17 -40
  171. package/lib/modules/SalesSummary/index.js +85 -90
  172. package/lib/modules/SalesSummary/types.js +4 -16
  173. package/lib/modules/SalesSummary/utils.js +355 -430
  174. package/lib/modules/ScanOrderLogger/index.js +59 -79
  175. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  176. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  177. package/lib/modules/ScanOrderLogger/types.js +4 -16
  178. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  179. package/lib/modules/Schedule/index.js +100 -114
  180. package/lib/modules/Schedule/type.js +4 -16
  181. package/lib/modules/Schedule/types.js +4 -16
  182. package/lib/modules/Schedule/utils.js +433 -291
  183. package/lib/modules/Step/index.js +40 -52
  184. package/lib/modules/Step/tyeps.js +4 -16
  185. package/lib/modules/Summary/index.js +66 -71
  186. package/lib/modules/Summary/types.js +4 -16
  187. package/lib/modules/Summary/utils.js +773 -418
  188. package/lib/modules/SurchargeList/index.js +46 -60
  189. package/lib/modules/SurchargeList/types.js +4 -16
  190. package/lib/modules/index.js +245 -63
  191. package/lib/plugins/app.js +4 -16
  192. package/lib/plugins/index.js +36 -25
  193. package/lib/plugins/request.d.ts +1 -0
  194. package/lib/plugins/request.js +137 -126
  195. package/lib/plugins/shopStore.js +4 -16
  196. package/lib/plugins/user.js +4 -16
  197. package/lib/plugins/window.js +171 -179
  198. package/lib/server/index.d.ts +8 -2
  199. package/lib/server/index.js +3083 -2663
  200. package/lib/server/modules/floor-plan/index.d.ts +4 -0
  201. package/lib/server/modules/floor-plan/index.js +159 -127
  202. package/lib/server/modules/floor-plan/types.js +15 -30
  203. package/lib/server/modules/index.js +106 -68
  204. package/lib/server/modules/menu/index.js +170 -124
  205. package/lib/server/modules/menu/types.js +18 -31
  206. package/lib/server/modules/order/index.d.ts +17 -7
  207. package/lib/server/modules/order/index.js +916 -977
  208. package/lib/server/modules/order/types.js +122 -33
  209. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  210. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  211. package/lib/server/modules/payment/index.js +59 -83
  212. package/lib/server/modules/payment/types.js +4 -16
  213. package/lib/server/modules/products/index.d.ts +8 -2
  214. package/lib/server/modules/products/index.js +656 -471
  215. package/lib/server/modules/products/types.js +44 -34
  216. package/lib/server/modules/quotation/index.js +137 -172
  217. package/lib/server/modules/quotation/types.js +21 -31
  218. package/lib/server/modules/resource/index.js +225 -186
  219. package/lib/server/modules/resource/types.js +42 -33
  220. package/lib/server/modules/schedule/index.js +135 -123
  221. package/lib/server/modules/schedule/types.js +14 -21
  222. package/lib/server/modules/schedule/utils.js +334 -163
  223. package/lib/server/types.js +4 -16
  224. package/lib/server/utils/index.js +25 -23
  225. package/lib/server/utils/product.js +196 -139
  226. package/lib/server/utils/schedule.js +34 -41
  227. package/lib/server/utils/small-ticket.js +479 -456
  228. package/lib/server/utils/time.js +40 -49
  229. package/lib/solution/BaseSales/index.js +1186 -1410
  230. package/lib/solution/BaseSales/types.js +42 -38
  231. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  232. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  233. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  234. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  235. package/lib/solution/BaseSales/utils.js +158 -143
  236. package/lib/solution/BookingByStep/index.d.ts +1 -1
  237. package/lib/solution/BookingByStep/index.js +1527 -1340
  238. package/lib/solution/BookingByStep/types.js +40 -99
  239. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  240. package/lib/solution/BookingByStep/utils/products.js +42 -52
  241. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  242. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  243. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  244. package/lib/solution/BookingTicket/index.js +607 -522
  245. package/lib/solution/BookingTicket/types.js +99 -77
  246. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  247. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  248. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  249. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  250. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  251. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  252. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  253. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  254. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  255. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  256. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  257. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  258. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  259. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  260. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  261. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  262. package/lib/solution/BuyTickets/index.js +67 -70
  263. package/lib/solution/BuyTickets/types.js +22 -38
  264. package/lib/solution/Checkout/index.js +1451 -1158
  265. package/lib/solution/Checkout/types.js +91 -61
  266. package/lib/solution/Checkout/utils/index.js +228 -156
  267. package/lib/solution/PlaceOrder/index.js +55 -0
  268. package/lib/solution/RegisterAndLogin/config.js +493 -460
  269. package/lib/solution/RegisterAndLogin/index.js +633 -630
  270. package/lib/solution/RegisterAndLogin/types.js +189 -76
  271. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  272. package/lib/solution/Sales/index.js +328 -324
  273. package/lib/solution/Sales/types.js +27 -33
  274. package/lib/solution/ScanOrder/index.js +832 -864
  275. package/lib/solution/ScanOrder/types.js +33 -34
  276. package/lib/solution/ScanOrder/utils.js +409 -374
  277. package/lib/solution/ShopDiscount/index.js +226 -232
  278. package/lib/solution/ShopDiscount/types.js +15 -37
  279. package/lib/solution/ShopDiscount/utils.js +300 -172
  280. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  281. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  282. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  283. package/lib/solution/VenueBooking/index.js +811 -879
  284. package/lib/solution/VenueBooking/types.js +19 -39
  285. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  286. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  287. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  288. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  289. package/lib/solution/VenueBooking/utils.js +130 -67
  290. package/lib/solution/index.js +124 -41
  291. package/lib/store/createStore.js +32 -29
  292. package/lib/types/index.js +4 -16
  293. package/lib/utils/payment-number.js +26 -46
  294. package/lib/utils/task.js +36 -36
  295. package/lib/utils/watch.js +81 -47
  296. package/package.json +2 -1
@@ -1,35 +1,44 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/server/modules/resource/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- ResourceHooks: () => ResourceHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var ResourceHooks = /* @__PURE__ */ ((ResourceHooks2) => {
26
- ResourceHooks2["onResourcesLoaded"] = "resource:onResourcesLoaded";
27
- ResourceHooks2["onResourcesChanged"] = "resource:onResourcesChanged";
28
- ResourceHooks2["onResourcesSyncCompleted"] = "resource:onResourcesSyncCompleted";
29
- ResourceHooks2["onBookingsChanged"] = "resource:onBookingsChanged";
30
- return ResourceHooks2;
31
- })(ResourceHooks || {});
32
- // Annotate the CommonJS export names for ESM import in node:
33
- 0 && (module.exports = {
34
- ResourceHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
35
5
  });
6
+ exports.ResourceHooks = void 0;
7
+ /**
8
+ * Resource 模块主键类型
9
+ */
10
+ /**
11
+ * Sales / ScheduleEventResource:预约条目内关联资源(仅 ID 与占用,详情由设备端基准数据解析)
12
+ * @see 统一 Sales 数据协议 3.4.1 resources
13
+ */
14
+ /**
15
+ * 资源预订数据结构
16
+ */
17
+ /**
18
+ * 资源数据结构(兼容历史数据)
19
+ */
20
+ /**
21
+ * 查询选项
22
+ */
23
+ /**
24
+ * Resource 模块状态
25
+ */
26
+ /**
27
+ * 与 ResourceDataSource 对齐的分页查询参数
28
+ */
29
+ /**
30
+ * 与 ResourceDataSource 对齐的分页返回结构
31
+ */
32
+ /**
33
+ * ResourceSyncMessage - pubsub 同步消息结构
34
+ */
35
+ /**
36
+ * Resource 模块钩子
37
+ */
38
+ let ResourceHooks = exports.ResourceHooks = /*#__PURE__*/function (ResourceHooks) {
39
+ ResourceHooks["onResourcesLoaded"] = "resource:onResourcesLoaded";
40
+ ResourceHooks["onResourcesChanged"] = "resource:onResourcesChanged";
41
+ ResourceHooks["onResourcesSyncCompleted"] = "resource:onResourcesSyncCompleted";
42
+ ResourceHooks["onBookingsChanged"] = "resource:onBookingsChanged";
43
+ return ResourceHooks;
44
+ }({});
@@ -1,55 +1,40 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
28
2
 
29
- // src/server/modules/schedule/index.ts
30
- var schedule_exports = {};
31
- __export(schedule_exports, {
32
- ScheduleModuleEx: () => ScheduleModuleEx
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
34
- module.exports = __toCommonJS(schedule_exports);
35
- var import_lodash_es = require("lodash-es");
36
- var import_BaseModule = require("../../../modules/BaseModule");
37
- var import_dayjs = __toESM(require("dayjs"));
38
- var import_isSameOrBefore = __toESM(require("dayjs/plugin/isSameOrBefore"));
39
- var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter"));
40
- var import_utils = require("../../../solution/ShopDiscount/utils");
41
- import_dayjs.default.extend(import_isSameOrBefore.default);
42
- import_dayjs.default.extend(import_isSameOrAfter.default);
43
- var SCHEDULE_STORE_NAME = "schedule";
44
- var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
6
+ exports.ScheduleModuleEx = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ var _BaseModule = require("../../../modules/BaseModule");
9
+ var _dayjs = _interopRequireDefault(require("dayjs"));
10
+ var _isSameOrBefore = _interopRequireDefault(require("dayjs/plugin/isSameOrBefore"));
11
+ var _isSameOrAfter = _interopRequireDefault(require("dayjs/plugin/isSameOrAfter"));
12
+ var _utils = require("../../../solution/ShopDiscount/utils");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ _dayjs.default.extend(_isSameOrBefore.default);
15
+ _dayjs.default.extend(_isSameOrAfter.default);
16
+
17
+ /**
18
+ * SQLite 存储名称
19
+ */
20
+ const SCHEDULE_STORE_NAME = 'schedule';
21
+
22
+ /**
23
+ * Schedule 模块(扩展版本)
24
+ * 在原有基础上添加了 getAvailableScheduleIds 方法
25
+ */
26
+ class ScheduleModuleEx extends _BaseModule.BaseModule {
27
+ defaultName = 'schedule';
28
+ defaultVersion = '1.1.0';
29
+ request;
30
+ store = {};
31
+ dbManager; // SQLiteAdapter 实例
32
+ logger; // LoggerManager 实例
33
+ hasLoadedScheduleList = false;
45
34
  constructor(name, version) {
46
35
  super(name, version);
47
- this.defaultName = "schedule";
48
- this.defaultVersion = "1.1.0";
49
- this.store = {};
50
- // LoggerManager 实例
51
- this.hasLoadedScheduleList = false;
52
36
  }
37
+
53
38
  /**
54
39
  * 记录信息日志
55
40
  * @param title 日志标题
@@ -59,14 +44,16 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
59
44
  try {
60
45
  if (this.logger) {
61
46
  this.logger.addLog({
62
- type: "info",
47
+ type: 'info',
63
48
  title: `[ScheduleModule] ${title}`,
64
49
  metadata: metadata || {}
65
50
  });
66
51
  }
67
52
  } catch {
53
+ // 日志记录失败不影响主流程
68
54
  }
69
55
  }
56
+
70
57
  /**
71
58
  * 记录警告日志
72
59
  * @param title 日志标题
@@ -76,14 +63,16 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
76
63
  try {
77
64
  if (this.logger) {
78
65
  this.logger.addLog({
79
- type: "warning",
66
+ type: 'warning',
80
67
  title: `[ScheduleModule] ${title}`,
81
68
  metadata: metadata || {}
82
69
  });
83
70
  }
84
71
  } catch {
72
+ // 日志记录失败不影响主流程
85
73
  }
86
74
  }
75
+
87
76
  /**
88
77
  * 记录错误日志
89
78
  * @param title 日志标题
@@ -93,73 +82,79 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
93
82
  try {
94
83
  if (this.logger) {
95
84
  this.logger.addLog({
96
- type: "error",
85
+ type: 'error',
97
86
  title: `[ScheduleModule] ${title}`,
98
87
  metadata: metadata || {}
99
88
  });
100
89
  }
101
90
  } catch {
91
+ // 日志记录失败不影响主流程
102
92
  }
103
93
  }
104
94
  async initialize(core, options) {
105
95
  this.core = core;
106
- this.request = core.getPlugin("request");
96
+
97
+ // 获取依赖的插件
98
+ this.request = core.getPlugin('request');
107
99
  if (!this.request) {
108
- throw new Error("ScheduleModule 需要 request 插件支持");
100
+ throw new Error('ScheduleModule 需要 request 插件支持');
109
101
  }
110
- this.store = options == null ? void 0 : options.store;
102
+ this.store = options?.store;
111
103
  if (options.initialState) {
112
104
  this.store.scheduleList = options.initialState.scheduleList;
105
+ // 同步更新 Map 缓存
113
106
  this.syncScheduleMap();
114
107
  this.hasLoadedScheduleList = Array.isArray(options.initialState.scheduleList);
115
108
  } else {
116
109
  this.store.scheduleList = [];
117
- this.store.map = /* @__PURE__ */ new Map();
110
+ this.store.map = new Map();
118
111
  this.hasLoadedScheduleList = false;
119
112
  }
120
- const appPlugin = core.getPlugin("app");
113
+
114
+ // 获取并存储 SQLite 和 logger
115
+ const appPlugin = core.getPlugin('app');
121
116
  if (appPlugin) {
122
117
  const app = appPlugin.getApp();
123
118
  this.dbManager = app.sqlite;
124
119
  this.logger = app.logger;
125
- if (this.dbManager) {
126
- console.log("[Schedule] SQLite 已初始化");
127
- } else {
128
- console.warn("[Schedule] SQLite 未找到");
120
+ if (this.dbManager) {} else {
121
+ console.warn('[Schedule] SQLite 未找到');
129
122
  }
130
123
  }
131
- this.logInfo("模块初始化完成", {
124
+ this.logInfo('模块初始化完成', {
132
125
  hasDbManager: !!this.dbManager,
133
126
  hasLogger: !!this.logger,
134
127
  initialScheduleCount: this.store.scheduleList.length
135
128
  });
136
129
  }
130
+
137
131
  /**
138
132
  * 加载当前店铺下所有 schedule(从服务器)
139
133
  */
140
134
  async loadAllSchedule() {
141
- var _a;
142
- this.logInfo("开始从服务器加载日程列表");
135
+ this.logInfo('开始从服务器加载日程列表');
143
136
  const startTime = Date.now();
144
137
  try {
145
- const scheduleList = await this.request.get(
146
- `/schedule`,
147
- { num: 999 },
148
- { cache: void 0 }
149
- );
150
- const list = ((_a = scheduleList.data) == null ? void 0 : _a.list) || [];
138
+ const scheduleList = await this.request.get(`/schedule`, {
139
+ num: 999
140
+ }, {
141
+ cache: undefined
142
+ });
143
+ const list = scheduleList.data?.list || [];
151
144
  const duration = Date.now() - startTime;
152
- this.logInfo("从服务器加载日程列表成功", {
145
+ this.logInfo('从服务器加载日程列表成功', {
153
146
  scheduleCount: list.length,
154
147
  duration: `${duration}ms`
155
148
  });
149
+
150
+ // 保存到 SQLite
156
151
  await this.saveScheduleToSQLite(list);
157
152
  this.setScheduleList(list);
158
153
  return list;
159
154
  } catch (error) {
160
155
  const duration = Date.now() - startTime;
161
156
  const errorMessage = error instanceof Error ? error.message : String(error);
162
- this.logError("从服务器加载日程列表失败", {
157
+ this.logError('从服务器加载日程列表失败', {
163
158
  duration: `${duration}ms`,
164
159
  error: errorMessage
165
160
  });
@@ -169,8 +164,10 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
169
164
  setScheduleList(list) {
170
165
  this.store.scheduleList = list;
171
166
  this.hasLoadedScheduleList = true;
167
+ // 同步更新 Map 缓存
172
168
  this.syncScheduleMap();
173
169
  }
170
+
174
171
  /**
175
172
  * 获取所有日程列表
176
173
  */
@@ -180,30 +177,34 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
180
177
  isScheduleListLoaded() {
181
178
  return this.hasLoadedScheduleList;
182
179
  }
180
+
183
181
  /**
184
182
  * 根据 schedule IDs 获取日程数据
185
183
  * 使用 Map 快速查询,时间复杂度 O(m),m 为 ids 数量
186
184
  */
187
185
  getScheduleByIds(ids) {
188
186
  if (!ids || ids.length === 0) {
189
- this.logInfo("getScheduleByIds: 未提供有效的 ids", { idsCount: 0 });
187
+ this.logInfo('getScheduleByIds: 未提供有效的 ids', {
188
+ idsCount: 0
189
+ });
190
190
  return [];
191
191
  }
192
192
  const result = [];
193
193
  const scheduleList = this.store.scheduleList || [];
194
194
  for (const id of ids) {
195
- const schedule = this.store.map.get(id) || scheduleList.find((item) => String(item.id) === String(id));
195
+ const schedule = this.store.map.get(id) || scheduleList.find(item => String(item.id) === String(id));
196
196
  if (schedule) {
197
197
  result.push(schedule);
198
198
  }
199
199
  }
200
- this.logInfo("getScheduleByIds: 查询完成", {
200
+ this.logInfo('getScheduleByIds: 查询完成', {
201
201
  requestedCount: ids.length,
202
202
  foundCount: result.length,
203
203
  notFoundCount: ids.length - result.length
204
204
  });
205
205
  return result;
206
206
  }
207
+
207
208
  /**
208
209
  * 同步更新日程 Map 缓存
209
210
  * 将 scheduleList 中的日程同步到 map,以 id 为 key
@@ -214,30 +215,33 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
214
215
  for (const schedule of this.store.scheduleList) {
215
216
  this.store.map.set(schedule.id, schedule);
216
217
  }
217
- console.log(`[Schedule] Map 缓存已同步,共 ${this.store.map.size} 个日程`);
218
218
  }
219
+
219
220
  /**
220
221
  * 清除缓存
221
222
  */
222
223
  async clear() {
223
- this.logInfo("开始清空缓存", {
224
+ this.logInfo('开始清空缓存', {
224
225
  currentScheduleCount: this.store.scheduleList.length
225
226
  });
226
227
  this.store.scheduleList = [];
227
228
  this.store.map.clear();
229
+ // 同时清空 SQLite 中的数据
228
230
  if (this.dbManager) {
229
231
  try {
230
232
  await this.dbManager.clear(SCHEDULE_STORE_NAME);
231
- console.log("[Schedule] SQLite 缓存已清空");
232
- this.logInfo("SQLite 缓存已清空");
233
+ this.logInfo('SQLite 缓存已清空');
233
234
  } catch (error) {
234
235
  const errorMessage = error instanceof Error ? error.message : String(error);
235
- console.error("[Schedule] 清空 SQLite 缓存失败:", error);
236
- this.logError("清空 SQLite 缓存失败", { error: errorMessage });
236
+ console.error('[Schedule] 清空 SQLite 缓存失败:', error);
237
+ this.logError('清空 SQLite 缓存失败', {
238
+ error: errorMessage
239
+ });
237
240
  }
238
241
  }
239
- this.logInfo("缓存清空完成");
242
+ this.logInfo('缓存清空完成');
240
243
  }
244
+
241
245
  /**
242
246
  * 判断日期是否在日程范围内
243
247
  * @param date 日期
@@ -246,129 +250,137 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
246
250
  */
247
251
  getDateIsInSchedule(date, scheduleList) {
248
252
  const scheduleListData = [];
249
- scheduleList.forEach((item) => {
250
- if (typeof item === "number") {
253
+ scheduleList.forEach(item => {
254
+ if (typeof item === 'number') {
251
255
  scheduleListData.push(...this.getScheduleByIds([item]));
252
256
  } else {
253
257
  scheduleListData.push(item);
254
258
  }
255
259
  });
256
- const result = (0, import_utils.getDateIsInSchedule)(date, scheduleListData);
257
- this.logInfo("getDateIsInSchedule: 判断日期是否在日程范围内", {
260
+ const result = (0, _utils.getDateIsInSchedule)(date, scheduleListData);
261
+ this.logInfo('getDateIsInSchedule: 判断日期是否在日程范围内', {
258
262
  date,
259
263
  scheduleCount: scheduleListData.length,
260
264
  isInSchedule: result
261
265
  });
262
266
  return result;
263
267
  }
268
+
264
269
  /**
265
270
  * 从 SQLite 加载日程数据
266
271
  * @private
267
272
  */
268
273
  async loadScheduleFromSQLite() {
269
274
  if (!this.dbManager) {
270
- this.logWarning("loadScheduleFromSQLite: SQLite 不可用");
275
+ this.logWarning('loadScheduleFromSQLite: SQLite 不可用');
271
276
  return [];
272
277
  }
273
278
  try {
279
+ // 直接获取所有日程记录
274
280
  const scheduleList = await this.dbManager.getAll(SCHEDULE_STORE_NAME);
275
- this.logInfo("从 SQLite 加载日程数据", {
276
- scheduleCount: (scheduleList == null ? void 0 : scheduleList.length) ?? 0
281
+ this.logInfo('从 SQLite 加载日程数据', {
282
+ scheduleCount: scheduleList?.length ?? 0
277
283
  });
278
284
  return scheduleList || [];
279
285
  } catch (error) {
280
286
  const errorMessage = error instanceof Error ? error.message : String(error);
281
- console.error("[Schedule] 从 SQLite 读取数据失败:", error);
282
- this.logError("从 SQLite 读取数据失败", { error: errorMessage });
287
+ console.error('[Schedule] 从 SQLite 读取数据失败:', error);
288
+ this.logError('从 SQLite 读取数据失败', {
289
+ error: errorMessage
290
+ });
283
291
  return [];
284
292
  }
285
293
  }
294
+
286
295
  /**
287
296
  * 保存日程数据到 SQLite
288
297
  * @private
289
298
  */
290
299
  async saveScheduleToSQLite(scheduleList) {
291
300
  if (!this.dbManager) {
292
- this.logWarning("saveScheduleToSQLite: SQLite 不可用");
301
+ this.logWarning('saveScheduleToSQLite: SQLite 不可用');
293
302
  return;
294
303
  }
295
- this.logInfo("开始保存日程数据到 SQLite", { scheduleCount: scheduleList.length });
304
+ this.logInfo('开始保存日程数据到 SQLite', {
305
+ scheduleCount: scheduleList.length
306
+ });
296
307
  try {
308
+ // 先清空现有的日程数据
297
309
  await this.dbManager.clear(SCHEDULE_STORE_NAME);
298
310
  if (scheduleList.length > 0) {
299
- if (typeof this.dbManager.bulkAdd === "function") {
311
+ if (typeof this.dbManager.bulkAdd === 'function') {
300
312
  await this.dbManager.bulkAdd(SCHEDULE_STORE_NAME, scheduleList);
301
- } else if (typeof this.dbManager.bulkUpdate === "function") {
313
+ } else if (typeof this.dbManager.bulkUpdate === 'function') {
302
314
  await this.dbManager.bulkUpdate(SCHEDULE_STORE_NAME, scheduleList);
303
315
  } else {
304
- await Promise.all(scheduleList.map(
305
- (schedule) => this.dbManager.add(SCHEDULE_STORE_NAME, schedule)
306
- ));
316
+ await Promise.all(scheduleList.map(schedule => this.dbManager.add(SCHEDULE_STORE_NAME, schedule)));
307
317
  }
308
318
  }
309
- console.log(
310
- `[Schedule] 已将 ${scheduleList.length} 条日程数据保存到 SQLite`
311
- );
312
- this.logInfo("日程数据已保存到 SQLite", { scheduleCount: scheduleList.length });
319
+ this.logInfo('日程数据已保存到 SQLite', {
320
+ scheduleCount: scheduleList.length
321
+ });
313
322
  } catch (error) {
314
323
  const errorMessage = error instanceof Error ? error.message : String(error);
315
- console.error("[Schedule] 保存数据到 SQLite 失败:", error);
316
- this.logError("保存数据到 SQLite 失败", {
324
+ console.error('[Schedule] 保存数据到 SQLite 失败:', error);
325
+ this.logError('保存数据到 SQLite 失败', {
317
326
  scheduleCount: scheduleList.length,
318
327
  error: errorMessage
319
328
  });
320
329
  }
321
330
  }
331
+
322
332
  /**
323
333
  * 预加载模块数据(统一接口)
324
334
  * 在模块注册后自动调用
325
335
  */
326
336
  async preload() {
327
- console.log("[Schedule] 开始预加载数据...");
328
337
  const startTime = Date.now();
329
- this.logInfo("开始预加载数据");
338
+ this.logInfo('开始预加载数据');
330
339
  try {
340
+ // 1. 尝试从 SQLite 加载数据
331
341
  const cachedData = await this.loadScheduleFromSQLite();
332
342
  if (cachedData && cachedData.length > 0) {
333
- console.log(
334
- `[Schedule] SQLite 加载了 ${cachedData.length} 条日程数据`
335
- );
336
- this.store.scheduleList = (0, import_lodash_es.cloneDeep)(cachedData);
343
+ // 将缓存数据放入 store
344
+ this.store.scheduleList = (0, _lodashEs.cloneDeep)(cachedData);
345
+ // 同步更新 Map 缓存
337
346
  this.syncScheduleMap();
338
347
  const duration = Date.now() - startTime;
339
- this.logInfo("预加载完成(从 SQLite)", {
348
+ this.logInfo('预加载完成(从 SQLite)', {
340
349
  scheduleCount: cachedData.length,
341
350
  duration: `${duration}ms`,
342
- source: "SQLite"
351
+ source: 'SQLite'
343
352
  });
344
353
  return;
345
354
  }
346
- console.log("[Schedule] SQLite 中没有缓存数据,从服务器加载...");
347
- this.logInfo("SQLite 中没有缓存数据,准备从服务器加载");
355
+ this.logInfo('SQLite 中没有缓存数据,准备从服务器加载');
348
356
  } catch (error) {
349
357
  const errorMessage = error instanceof Error ? error.message : String(error);
350
- console.warn("[Schedule] 从 SQLite 加载数据失败:", error);
351
- this.logWarning("从 SQLite 加载数据失败,准备从服务器加载", { error: errorMessage });
358
+ console.warn('[Schedule] 从 SQLite 加载数据失败:', error);
359
+ this.logWarning('从 SQLite 加载数据失败,准备从服务器加载', {
360
+ error: errorMessage
361
+ });
352
362
  }
363
+
364
+ // 2. 如果 SQLite 中没有数据,从服务器加载
353
365
  const scheduleList = await this.loadAllSchedule();
366
+
367
+ // 3. 将服务器数据放入 store
354
368
  if (scheduleList && scheduleList.length > 0) {
355
- this.store.scheduleList = (0, import_lodash_es.cloneDeep)(scheduleList);
369
+ this.store.scheduleList = (0, _lodashEs.cloneDeep)(scheduleList);
370
+ // 同步更新 Map 缓存
356
371
  this.syncScheduleMap();
357
372
  const duration = Date.now() - startTime;
358
- this.logInfo("预加载完成(从服务器)", {
373
+ this.logInfo('预加载完成(从服务器)', {
359
374
  scheduleCount: scheduleList.length,
360
375
  duration: `${duration}ms`,
361
- source: "Server"
376
+ source: 'Server'
362
377
  });
363
378
  } else {
364
379
  const duration = Date.now() - startTime;
365
- this.logWarning("预加载完成但未获取到数据", {
380
+ this.logWarning('预加载完成但未获取到数据', {
366
381
  duration: `${duration}ms`
367
382
  });
368
383
  }
369
384
  }
370
- };
371
- // Annotate the CommonJS export names for ESM import in node:
372
- 0 && (module.exports = {
373
- ScheduleModuleEx
374
- });
385
+ }
386
+ exports.ScheduleModuleEx = ScheduleModuleEx;
@@ -1,23 +1,16 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
15
2
 
16
- // src/server/modules/schedule/types.ts
17
- var types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
19
- __reExport(types_exports, require("../../../modules/Schedule/types"), module.exports);
20
- // Annotate the CommonJS export names for ESM import in node:
21
- 0 && (module.exports = {
22
- ...require("../../../modules/Schedule/types")
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
6
+ var _types = require("../../../modules/Schedule/types");
7
+ Object.keys(_types).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _types[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _types[key];
14
+ }
15
+ });
16
+ });