@pisell/pisellos 0.0.569 → 0.10.2

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 (328) hide show
  1. package/dist/core/index.js +10 -6
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -3
  4. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  5. package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
  6. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  7. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  8. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  9. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  10. package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
  11. package/dist/model/strategy/strategy-example.js +19 -5
  12. package/dist/modules/BaseModule.d.ts +1 -1
  13. package/dist/modules/BaseModule.js +8 -10
  14. package/dist/modules/Cart/index.js +3 -0
  15. package/dist/modules/Cart/utils/cartProduct.js +1 -0
  16. package/dist/modules/Cart/utils/cartResource.js +0 -2
  17. package/dist/modules/Cart/utils/changePrice.js +9 -16
  18. package/dist/modules/Date/index.js +5 -1
  19. package/dist/modules/Discount/index.d.ts +0 -1
  20. package/dist/modules/Discount/index.js +7 -22
  21. package/dist/modules/Discount/types.d.ts +0 -1
  22. package/dist/modules/OpenData/index.js +2 -0
  23. package/dist/modules/Order/index.js +70 -40
  24. package/dist/modules/Payment/index.js +162 -97
  25. package/dist/modules/Payment/types.d.ts +4 -8
  26. package/dist/modules/Payment/walletpass.d.ts +0 -2
  27. package/dist/modules/Payment/walletpass.js +5 -4
  28. package/dist/modules/ProductList/index.d.ts +1 -1
  29. package/dist/modules/ProductList/index.js +3 -12
  30. package/dist/modules/ProductList/types.d.ts +0 -1
  31. package/dist/modules/Rules/index.js +126 -427
  32. package/dist/modules/SalesSummary/utils.js +1 -2
  33. package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
  34. package/dist/modules/Schedule/index.js +1 -0
  35. package/dist/modules/Schedule/utils.js +1 -0
  36. package/dist/modules/Step/index.js +1 -0
  37. package/dist/modules/Summary/utils.js +22 -43
  38. package/dist/plugins/request.js +4 -1
  39. package/dist/plugins/window.js +6 -2
  40. package/dist/server/index.js +129 -97
  41. package/dist/server/modules/menu/index.js +41 -32
  42. package/dist/server/modules/order/index.js +4 -2
  43. package/dist/server/modules/products/index.js +42 -24
  44. package/dist/server/modules/quotation/index.js +38 -29
  45. package/dist/server/modules/resource/index.js +4 -3
  46. package/dist/server/modules/schedule/index.js +35 -27
  47. package/dist/server/utils/product.js +1 -0
  48. package/dist/solution/BaseSales/index.js +41 -38
  49. package/dist/solution/BookingByStep/index.d.ts +1 -1
  50. package/dist/solution/BookingByStep/index.js +60 -11
  51. package/dist/solution/BookingByStep/utils/capacity.js +11 -1
  52. package/dist/solution/BookingByStep/utils/resources.js +3 -1
  53. package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
  54. package/dist/solution/BookingTicket/index.d.ts +1 -1
  55. package/dist/solution/BookingTicket/index.js +2 -0
  56. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
  57. package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
  58. package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
  59. package/dist/solution/BuyTickets/index.js +12 -9
  60. package/dist/solution/Checkout/index.js +252 -177
  61. package/dist/solution/Checkout/utils/index.js +16 -4
  62. package/dist/solution/RegisterAndLogin/index.js +76 -30
  63. package/dist/solution/ScanOrder/index.js +60 -50
  64. package/dist/solution/ShopDiscount/index.js +14 -15
  65. package/dist/solution/ShopDiscount/types.d.ts +4 -5
  66. package/dist/solution/ShopDiscount/utils.d.ts +0 -9
  67. package/dist/solution/ShopDiscount/utils.js +0 -9
  68. package/dist/solution/VenueBooking/index.d.ts +3 -31
  69. package/dist/solution/VenueBooking/index.js +496 -651
  70. package/dist/solution/VenueBooking/types.d.ts +1 -3
  71. package/dist/solution/VenueBooking/types.js +0 -1
  72. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  73. package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
  74. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  75. package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
  76. package/dist/types/index.d.ts +1 -1
  77. package/dist/utils/task.js +18 -15
  78. package/dist/utils/watch.js +1 -0
  79. package/lib/apis/picoding.js +0 -2
  80. package/lib/core/index.js +132 -130
  81. package/lib/effects/index.js +57 -46
  82. package/lib/index.d.ts +0 -1
  83. package/lib/index.js +50 -92
  84. package/lib/model/index.js +21 -14
  85. package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
  86. package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
  87. package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
  88. package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
  89. package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
  90. package/lib/model/strategy/adapter/index.js +64 -100
  91. package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
  92. package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
  93. package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
  94. package/lib/model/strategy/adapter/itemRule/index.js +57 -83
  95. package/lib/model/strategy/adapter/itemRule/type.js +36 -97
  96. package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
  97. package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
  98. package/lib/model/strategy/adapter/promotion/examples.js +159 -139
  99. package/lib/model/strategy/adapter/promotion/index.js +49 -1
  100. package/lib/model/strategy/adapter/promotion/type.js +35 -199
  101. package/lib/model/strategy/adapter/type.js +16 -4
  102. package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
  103. package/lib/model/strategy/adapter/walletPass/example.js +190 -217
  104. package/lib/model/strategy/adapter/walletPass/index.js +51 -75
  105. package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
  106. package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
  107. package/lib/model/strategy/adapter/walletPass/type.js +16 -4
  108. package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  109. package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
  110. package/lib/model/strategy/engine.js +168 -270
  111. package/lib/model/strategy/index.js +34 -49
  112. package/lib/model/strategy/strategy-example.js +239 -243
  113. package/lib/model/strategy/type.js +40 -100
  114. package/lib/modules/Account/index.js +53 -39
  115. package/lib/modules/Account/types.js +33 -20
  116. package/lib/modules/AccountList/index.js +154 -116
  117. package/lib/modules/AccountList/types.js +31 -30
  118. package/lib/modules/AccountList/utils.js +30 -18
  119. package/lib/modules/BaseModule.d.ts +1 -1
  120. package/lib/modules/BaseModule.js +46 -25
  121. package/lib/modules/BookingContext/index.js +136 -158
  122. package/lib/modules/BookingContext/types.js +32 -46
  123. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
  124. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
  125. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
  126. package/lib/modules/BookingContext/utils/flexible.js +55 -38
  127. package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
  128. package/lib/modules/BookingContext/utils/index.js +41 -124
  129. package/lib/modules/BookingContext/utils/noResource.js +70 -58
  130. package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
  131. package/lib/modules/BookingContext/utils/productExtend.js +155 -202
  132. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  133. package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
  134. package/lib/modules/BookingContext/utils/resources.js +167 -209
  135. package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
  136. package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
  137. package/lib/modules/Cart/index.js +124 -170
  138. package/lib/modules/Cart/types.js +51 -46
  139. package/lib/modules/Cart/utils/cartAccount.js +39 -40
  140. package/lib/modules/Cart/utils/cartDate.js +61 -56
  141. package/lib/modules/Cart/utils/cartDiscount.js +33 -28
  142. package/lib/modules/Cart/utils/cartNote.js +32 -27
  143. package/lib/modules/Cart/utils/cartProduct.js +251 -321
  144. package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
  145. package/lib/modules/Cart/utils/cartResource.js +78 -72
  146. package/lib/modules/Cart/utils/changePrice.js +50 -28
  147. package/lib/modules/Cart/utils/index.js +48 -106
  148. package/lib/modules/Customer/constants.js +34 -13
  149. package/lib/modules/Customer/index.js +169 -232
  150. package/lib/modules/Customer/types.js +35 -38
  151. package/lib/modules/Date/index.js +115 -116
  152. package/lib/modules/Date/types.js +28 -16
  153. package/lib/modules/Date/utils.js +123 -174
  154. package/lib/modules/Discount/index.d.ts +0 -1
  155. package/lib/modules/Discount/index.js +128 -130
  156. package/lib/modules/Discount/types.d.ts +0 -1
  157. package/lib/modules/Discount/types.js +31 -9
  158. package/lib/modules/Guests/index.js +56 -30
  159. package/lib/modules/Guests/types.js +33 -23
  160. package/lib/modules/Holder/index.js +189 -209
  161. package/lib/modules/Holder/types.js +16 -4
  162. package/lib/modules/Holder/utils.js +49 -20
  163. package/lib/modules/OpenData/index.js +76 -69
  164. package/lib/modules/OpenData/types.js +16 -4
  165. package/lib/modules/OpenData/utils.js +78 -44
  166. package/lib/modules/Order/index.js +1909 -1572
  167. package/lib/modules/Order/types.js +35 -78
  168. package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
  169. package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
  170. package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
  171. package/lib/modules/Order/utils.js +634 -799
  172. package/lib/modules/Payment/cash.js +33 -20
  173. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  174. package/lib/modules/Payment/eftpos.js +30 -16
  175. package/lib/modules/Payment/index.js +378 -518
  176. package/lib/modules/Payment/mx51.js +0 -1
  177. package/lib/modules/Payment/types.d.ts +4 -8
  178. package/lib/modules/Payment/types.js +107 -216
  179. package/lib/modules/Payment/utils.js +48 -51
  180. package/lib/modules/Payment/walletpass.d.ts +0 -2
  181. package/lib/modules/Payment/walletpass.js +211 -226
  182. package/lib/modules/Product/index.js +46 -51
  183. package/lib/modules/Product/types.js +16 -4
  184. package/lib/modules/Product/utils.js +33 -32
  185. package/lib/modules/ProductList/index.d.ts +1 -1
  186. package/lib/modules/ProductList/index.js +117 -117
  187. package/lib/modules/ProductList/types.d.ts +0 -1
  188. package/lib/modules/ProductList/types.js +31 -9
  189. package/lib/modules/Quotation/index.js +100 -66
  190. package/lib/modules/Quotation/types.js +16 -4
  191. package/lib/modules/Resource/index.js +59 -27
  192. package/lib/modules/Resource/types.js +32 -22
  193. package/lib/modules/Resource/utils.js +38 -30
  194. package/lib/modules/ResourcePlanner/index.js +61 -60
  195. package/lib/modules/ResourcePlanner/planner.js +384 -346
  196. package/lib/modules/ResourcePlanner/types.js +16 -4
  197. package/lib/modules/Rules/index.js +903 -1475
  198. package/lib/modules/Rules/types.js +40 -17
  199. package/lib/modules/SalesSummary/index.js +90 -85
  200. package/lib/modules/SalesSummary/types.js +16 -4
  201. package/lib/modules/SalesSummary/utils.js +427 -351
  202. package/lib/modules/ScanOrderLogger/index.js +79 -59
  203. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  204. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  205. package/lib/modules/ScanOrderLogger/types.js +16 -4
  206. package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
  207. package/lib/modules/Schedule/index.js +114 -100
  208. package/lib/modules/Schedule/type.js +16 -4
  209. package/lib/modules/Schedule/types.js +16 -4
  210. package/lib/modules/Schedule/utils.js +291 -433
  211. package/lib/modules/Step/index.js +52 -40
  212. package/lib/modules/Step/tyeps.js +16 -4
  213. package/lib/modules/Summary/index.js +71 -66
  214. package/lib/modules/Summary/types.js +16 -4
  215. package/lib/modules/Summary/utils.js +418 -791
  216. package/lib/modules/SurchargeList/index.js +60 -46
  217. package/lib/modules/SurchargeList/types.js +16 -4
  218. package/lib/modules/index.js +63 -245
  219. package/lib/plugins/app.js +16 -4
  220. package/lib/plugins/index.js +25 -36
  221. package/lib/plugins/request.js +126 -137
  222. package/lib/plugins/shopStore.js +16 -4
  223. package/lib/plugins/user.js +16 -4
  224. package/lib/plugins/window.js +179 -171
  225. package/lib/server/index.js +2337 -2675
  226. package/lib/server/modules/floor-plan/index.js +123 -102
  227. package/lib/server/modules/floor-plan/types.js +30 -15
  228. package/lib/server/modules/index.js +68 -106
  229. package/lib/server/modules/menu/index.js +122 -146
  230. package/lib/server/modules/menu/types.js +31 -18
  231. package/lib/server/modules/order/index.js +642 -567
  232. package/lib/server/modules/order/types.js +32 -117
  233. package/lib/server/modules/order/utils/filterBookings.js +194 -219
  234. package/lib/server/modules/order/utils/filterOrders.js +92 -118
  235. package/lib/server/modules/payment/index.js +83 -59
  236. package/lib/server/modules/payment/types.js +16 -4
  237. package/lib/server/modules/products/index.js +459 -575
  238. package/lib/server/modules/products/types.js +34 -44
  239. package/lib/server/modules/quotation/index.js +172 -137
  240. package/lib/server/modules/quotation/types.js +31 -21
  241. package/lib/server/modules/resource/index.js +184 -213
  242. package/lib/server/modules/resource/types.js +33 -42
  243. package/lib/server/modules/schedule/index.js +123 -135
  244. package/lib/server/modules/schedule/types.js +21 -14
  245. package/lib/server/modules/schedule/utils.js +163 -334
  246. package/lib/server/types.js +16 -4
  247. package/lib/server/utils/index.js +23 -25
  248. package/lib/server/utils/product.js +139 -196
  249. package/lib/server/utils/schedule.js +41 -34
  250. package/lib/server/utils/small-ticket.js +456 -478
  251. package/lib/server/utils/time.js +49 -40
  252. package/lib/solution/BaseSales/index.js +1016 -850
  253. package/lib/solution/BaseSales/types.js +37 -41
  254. package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
  255. package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
  256. package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
  257. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
  258. package/lib/solution/BaseSales/utils.js +140 -155
  259. package/lib/solution/BookingByStep/index.d.ts +1 -1
  260. package/lib/solution/BookingByStep/index.js +1340 -1530
  261. package/lib/solution/BookingByStep/types.js +99 -40
  262. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  263. package/lib/solution/BookingByStep/utils/products.js +52 -42
  264. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  265. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  266. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  267. package/lib/solution/BookingTicket/index.d.ts +1 -1
  268. package/lib/solution/BookingTicket/index.js +459 -543
  269. package/lib/solution/BookingTicket/types.js +77 -99
  270. package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
  271. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
  272. package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
  273. package/lib/solution/BookingTicket/utils/cartView.js +94 -110
  274. package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
  275. package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
  276. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
  277. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
  278. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
  279. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
  280. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
  281. package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
  282. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  283. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
  284. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
  285. package/lib/solution/BuyTickets/index.js +70 -67
  286. package/lib/solution/BuyTickets/types.js +38 -22
  287. package/lib/solution/Checkout/index.js +1158 -1451
  288. package/lib/solution/Checkout/types.js +61 -91
  289. package/lib/solution/Checkout/utils/index.js +156 -228
  290. package/lib/solution/PlaceOrder/index.js +0 -55
  291. package/lib/solution/RegisterAndLogin/config.js +460 -493
  292. package/lib/solution/RegisterAndLogin/index.js +630 -633
  293. package/lib/solution/RegisterAndLogin/types.js +76 -189
  294. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  295. package/lib/solution/Sales/index.js +320 -317
  296. package/lib/solution/Sales/types.js +33 -27
  297. package/lib/solution/ScanOrder/index.js +862 -831
  298. package/lib/solution/ScanOrder/types.js +34 -33
  299. package/lib/solution/ScanOrder/utils.js +371 -406
  300. package/lib/solution/ShopDiscount/index.js +233 -235
  301. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  302. package/lib/solution/ShopDiscount/types.js +37 -15
  303. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  304. package/lib/solution/ShopDiscount/utils.js +172 -309
  305. package/lib/solution/UnifiedBookingSales/index.js +405 -379
  306. package/lib/solution/UnifiedBookingSales/types.js +31 -12
  307. package/lib/solution/VenueBooking/index.d.ts +3 -31
  308. package/lib/solution/VenueBooking/index.js +916 -967
  309. package/lib/solution/VenueBooking/types.d.ts +1 -3
  310. package/lib/solution/VenueBooking/types.js +39 -20
  311. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  312. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  313. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  314. package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
  315. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  316. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  317. package/lib/solution/VenueBooking/utils.js +67 -130
  318. package/lib/solution/index.js +41 -124
  319. package/lib/store/createStore.js +29 -32
  320. package/lib/types/index.d.ts +1 -1
  321. package/lib/types/index.js +16 -4
  322. package/lib/utils/task.js +36 -36
  323. package/lib/utils/watch.js +47 -81
  324. package/package.json +2 -4
  325. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  326. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  327. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  328. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
@@ -1,130 +1,129 @@
1
- "use strict";
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);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/server/modules/menu/index.ts
20
+ var menu_exports = {};
21
+ __export(menu_exports, {
22
+ MenuModule: () => MenuModule
5
23
  });
6
- exports.MenuModule = void 0;
7
- var _lodashEs = require("lodash-es");
8
- var _BaseModule = require("../../../modules/BaseModule");
9
- var _types = require("./types");
10
- /**
11
- * IndexDB 存储名称
12
- */
13
- const INDEXDB_STORE_NAME = 'menu';
14
-
15
- /**
16
- * 餐牌模块 - 用于管理餐牌数据和根据餐牌过滤商品
17
- */
18
- class MenuModule extends _BaseModule.BaseModule {
19
- defaultName = 'menu';
20
- defaultVersion = '1.0.0';
21
- request;
22
- store;
23
- dbManager; // IndexDBManager 实例
24
- logger; // LoggerManager 实例
25
-
24
+ module.exports = __toCommonJS(menu_exports);
25
+ var import_lodash_es = require("lodash-es");
26
+ var import_BaseModule = require("../../../modules/BaseModule");
27
+ var import_types = require("./types");
28
+ var INDEXDB_STORE_NAME = "menu";
29
+ var MenuModule = class extends import_BaseModule.BaseModule {
30
+ // LoggerManager 实例
26
31
  constructor(name, version) {
27
32
  super(name, version);
33
+ this.defaultName = "menu";
34
+ this.defaultVersion = "1.0.0";
28
35
  }
29
36
  async initialize(core, options) {
37
+ var _a;
30
38
  this.core = core;
31
- this.store = options?.store;
32
-
33
- // 获取依赖的插件
34
- this.request = core.getPlugin('request');
39
+ this.store = options == null ? void 0 : options.store;
40
+ this.request = core.getPlugin("request");
35
41
  if (!this.request) {
36
- throw new Error('MenuModule 需要 request 插件支持');
42
+ throw new Error("MenuModule 需要 request 插件支持");
37
43
  }
38
- if (Array.isArray(options?.initialState?.menuList)) {
39
- this.store.menuList = options?.initialState.menuList;
40
- // 同步更新 Map 缓存
44
+ if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.menuList)) {
45
+ this.store.menuList = options == null ? void 0 : options.initialState.menuList;
41
46
  this.syncMenuMap();
42
- this.core.effects.emit(_types.MenuHooks.onMenuChanged, this.store.menuList);
47
+ this.core.effects.emit(import_types.MenuHooks.onMenuChanged, this.store.menuList);
43
48
  } else {
44
49
  this.store.menuList = [];
45
- this.store.map = new Map();
50
+ this.store.map = /* @__PURE__ */ new Map();
46
51
  }
47
-
48
- // 获取并存储 dbManager
49
- const appPlugin = core.getPlugin('app');
52
+ const appPlugin = core.getPlugin("app");
50
53
  if (appPlugin) {
51
54
  const app = appPlugin.getApp();
52
55
  this.dbManager = app.dbManager;
53
56
  this.logger = app.logger;
54
- if (this.dbManager) {} else {
55
- console.warn('[Menu] IndexDB Manager 未找到');
57
+ if (this.dbManager) {
58
+ console.log("[Menu] IndexDB Manager 已初始化");
59
+ } else {
60
+ console.warn("[Menu] IndexDB Manager 未找到");
56
61
  }
57
62
  }
58
- this.logInfo('模块初始化完成', {
63
+ this.logInfo("模块初始化完成", {
59
64
  hasDbManager: !!this.dbManager,
60
65
  hasLogger: !!this.logger,
61
66
  initialMenuCount: this.store.menuList.length
62
67
  });
63
68
  }
64
-
65
69
  /**
66
70
  * 加载餐牌列表(从服务器)
67
71
  */
68
72
  async loadMenuList() {
69
- this.logInfo('开始从服务器加载餐牌列表');
73
+ var _a;
74
+ this.logInfo("开始从服务器加载餐牌列表");
70
75
  const startTime = Date.now();
71
76
  try {
72
- const response = await this.request.get(`/form/data/v1`, {
73
- skip: 1,
74
- num: 999,
75
- code: 'menu_list'
76
- }, {
77
- cache: undefined
78
- });
79
- const menuList = response?.data?.list || [];
77
+ const response = await this.request.get(
78
+ `/form/data/v1`,
79
+ {
80
+ skip: 1,
81
+ num: 999,
82
+ code: "menu_list"
83
+ },
84
+ { cache: void 0 }
85
+ );
86
+ const menuList = ((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.list) || [];
80
87
  const duration = Date.now() - startTime;
81
- this.logInfo('从服务器加载餐牌列表成功', {
88
+ this.logInfo("从服务器加载餐牌列表成功", {
82
89
  menuCount: menuList.length,
83
90
  duration: `${duration}ms`
84
91
  });
85
-
86
- // 保存到 IndexDB
87
92
  await this.saveMenuToIndexDB(menuList);
88
93
  await this.setMenuList(menuList);
89
94
  return menuList;
90
95
  } catch (error) {
91
96
  const duration = Date.now() - startTime;
92
97
  const errorMessage = error instanceof Error ? error.message : String(error);
93
- console.error('[Menu] 加载餐牌数据失败:', error);
94
- this.logError('从服务器加载餐牌列表失败', {
98
+ console.error("[Menu] 加载餐牌数据失败:", error);
99
+ this.logError("从服务器加载餐牌列表失败", {
95
100
  duration: `${duration}ms`,
96
101
  error: errorMessage
97
102
  });
98
103
  return [];
99
104
  }
100
105
  }
101
-
102
106
  /**
103
107
  * 设置餐牌列表
104
108
  */
105
109
  async setMenuList(menuList) {
106
110
  this.store.menuList = menuList;
107
- // 同步更新 Map 缓存
108
111
  this.syncMenuMap();
109
- await this.core.effects.emit(_types.MenuHooks.onMenuLoaded, menuList);
112
+ await this.core.effects.emit(import_types.MenuHooks.onMenuLoaded, menuList);
110
113
  }
111
-
112
114
  /**
113
115
  * 获取餐牌列表
114
116
  */
115
117
  getMenuList() {
116
118
  return this.store.menuList;
117
119
  }
118
-
119
120
  /**
120
121
  * 根据 form_record_id 数组获取餐牌详情
121
122
  * 使用 Map 快速查询,时间复杂度 O(m),m 为 ids 数量
122
123
  */
123
124
  getMenuByIds(ids) {
124
125
  if (!ids || ids.length === 0) {
125
- this.logInfo('getMenuByIds: 未提供有效的 ids', {
126
- idsCount: 0
127
- });
126
+ this.logInfo("getMenuByIds: 未提供有效的 ids", { idsCount: 0 });
128
127
  return [];
129
128
  }
130
129
  const result = [];
@@ -134,14 +133,13 @@ class MenuModule extends _BaseModule.BaseModule {
134
133
  result.push(menu);
135
134
  }
136
135
  }
137
- this.logInfo('getMenuByIds: 查询完成', {
136
+ this.logInfo("getMenuByIds: 查询完成", {
138
137
  requestedCount: ids.length,
139
138
  foundCount: result.length,
140
139
  notFoundCount: ids.length - result.length
141
140
  });
142
141
  return result;
143
142
  }
144
-
145
143
  /**
146
144
  * 同步更新餐牌 Map 缓存
147
145
  * 将 menuList 中的餐牌同步到 map,以 form_record_id 为 key
@@ -152,171 +150,151 @@ class MenuModule extends _BaseModule.BaseModule {
152
150
  for (const menu of this.store.menuList) {
153
151
  this.store.map.set(menu.form_record_id, menu);
154
152
  }
153
+ console.log(`[Menu] Map 缓存已同步,共 ${this.store.map.size} 个餐牌`);
155
154
  }
156
-
157
155
  /**
158
156
  * 清空缓存
159
157
  */
160
158
  async clear() {
161
- this.logInfo('开始清空缓存', {
159
+ this.logInfo("开始清空缓存", {
162
160
  currentMenuCount: this.store.menuList.length
163
161
  });
164
162
  this.store.menuList = [];
165
163
  this.store.map.clear();
166
- this.store.currentMenu = undefined;
167
-
168
- // 同时清空 IndexDB 中的数据
164
+ this.store.currentMenu = void 0;
169
165
  if (this.dbManager) {
170
166
  try {
171
167
  await this.dbManager.clear(INDEXDB_STORE_NAME);
172
- this.logInfo('IndexDB 缓存已清空');
168
+ console.log("[Menu] IndexDB 缓存已清空");
169
+ this.logInfo("IndexDB 缓存已清空");
173
170
  } catch (error) {
174
171
  const errorMessage = error instanceof Error ? error.message : String(error);
175
- console.error('[Menu] 清空 IndexDB 缓存失败:', error);
176
- this.logError('清空 IndexDB 缓存失败', {
177
- error: errorMessage
178
- });
172
+ console.error("[Menu] 清空 IndexDB 缓存失败:", error);
173
+ this.logError("清空 IndexDB 缓存失败", { error: errorMessage });
179
174
  }
180
175
  }
181
- this.logInfo('缓存清空完成');
176
+ console.log("[Menu] 缓存已清空");
177
+ this.logInfo("缓存清空完成");
182
178
  }
183
-
184
179
  /**
185
180
  * 从 IndexDB 加载餐牌数据
186
181
  * @private
187
182
  */
188
183
  async loadMenuFromIndexDB() {
189
184
  if (!this.dbManager) {
190
- this.logWarning('loadMenuFromIndexDB: dbManager 不可用');
185
+ this.logWarning("loadMenuFromIndexDB: dbManager 不可用");
191
186
  return [];
192
187
  }
193
188
  try {
194
- // 直接获取所有餐牌记录
195
189
  const menuList = await this.dbManager.getAll(INDEXDB_STORE_NAME);
196
- this.logInfo('从 IndexDB 加载餐牌数据', {
197
- menuCount: menuList?.length ?? 0
190
+ this.logInfo("从 IndexDB 加载餐牌数据", {
191
+ menuCount: (menuList == null ? void 0 : menuList.length) ?? 0
198
192
  });
199
193
  return menuList || [];
200
194
  } catch (error) {
201
195
  const errorMessage = error instanceof Error ? error.message : String(error);
202
- console.error('[Menu] 从 IndexDB 读取数据失败:', error);
203
- this.logError('从 IndexDB 读取数据失败', {
204
- error: errorMessage
205
- });
196
+ console.error("[Menu] 从 IndexDB 读取数据失败:", error);
197
+ this.logError("从 IndexDB 读取数据失败", { error: errorMessage });
206
198
  return [];
207
199
  }
208
200
  }
209
-
210
201
  /**
211
202
  * 保存餐牌数据到 IndexDB
212
203
  * @private
213
204
  */
214
205
  async saveMenuToIndexDB(menuList) {
215
206
  if (!this.dbManager) {
216
- this.logWarning('saveMenuToIndexDB: dbManager 不可用');
207
+ this.logWarning("saveMenuToIndexDB: dbManager 不可用");
217
208
  return;
218
209
  }
219
- this.logInfo('开始保存餐牌数据到 IndexDB', {
220
- menuCount: menuList.length
221
- });
210
+ this.logInfo("开始保存餐牌数据到 IndexDB", { menuCount: menuList.length });
222
211
  try {
223
- // 先清空现有的餐牌数据
224
212
  await this.dbManager.clear(INDEXDB_STORE_NAME);
225
-
226
- // 逐个保存餐牌(每个餐牌是独立的记录)
227
- const savePromises = menuList.map(menu => this.dbManager.add(INDEXDB_STORE_NAME, menu));
213
+ const savePromises = menuList.map(
214
+ (menu) => this.dbManager.add(INDEXDB_STORE_NAME, menu)
215
+ );
228
216
  await Promise.all(savePromises);
229
- this.logInfo('餐牌数据已保存到 IndexDB', {
230
- menuCount: menuList.length
231
- });
217
+ console.log(`[Menu] 已将 ${menuList.length} 条餐牌数据保存到 IndexDB`);
218
+ this.logInfo("餐牌数据已保存到 IndexDB", { menuCount: menuList.length });
232
219
  } catch (error) {
233
220
  const errorMessage = error instanceof Error ? error.message : String(error);
234
- console.error('[Menu] 保存数据到 IndexDB 失败:', error);
235
- this.logError('保存数据到 IndexDB 失败', {
221
+ console.error("[Menu] 保存数据到 IndexDB 失败:", error);
222
+ this.logError("保存数据到 IndexDB 失败", {
236
223
  menuCount: menuList.length,
237
224
  error: errorMessage
238
225
  });
239
226
  }
240
227
  }
241
-
242
228
  /**
243
229
  * 预加载模块数据(统一接口)
244
230
  * 在模块注册后自动调用
245
231
  */
246
232
  async preload() {
233
+ console.log("[Menu] 开始预加载数据...");
247
234
  const startTime = Date.now();
248
- this.logInfo('开始预加载数据');
235
+ this.logInfo("开始预加载数据");
249
236
  try {
250
- // 1. 尝试从 IndexDB 加载数据
251
237
  const cachedData = await this.loadMenuFromIndexDB();
252
238
  if (cachedData && cachedData.length > 0) {
253
- // 将缓存数据放入 store
254
- this.store.menuList = (0, _lodashEs.cloneDeep)(cachedData);
255
- // 同步更新 Map 缓存
239
+ console.log(`[Menu] 从 IndexDB 加载了 ${cachedData.length} 条餐牌数据`);
240
+ this.store.menuList = (0, import_lodash_es.cloneDeep)(cachedData);
256
241
  this.syncMenuMap();
257
- this.core.effects.emit(_types.MenuHooks.onMenuChanged, this.store.menuList);
242
+ this.core.effects.emit(import_types.MenuHooks.onMenuChanged, this.store.menuList);
258
243
  const duration = Date.now() - startTime;
259
- this.logInfo('预加载完成(从 IndexDB)', {
244
+ this.logInfo("预加载完成(从 IndexDB)", {
260
245
  menuCount: cachedData.length,
261
246
  duration: `${duration}ms`,
262
- source: 'IndexDB'
247
+ source: "IndexDB"
263
248
  });
264
249
  return;
265
250
  }
266
- this.logInfo('IndexDB 中没有缓存数据,准备从服务器加载');
251
+ console.log("[Menu] IndexDB 中没有缓存数据,从服务器加载...");
252
+ this.logInfo("IndexDB 中没有缓存数据,准备从服务器加载");
267
253
  } catch (error) {
268
254
  const errorMessage = error instanceof Error ? error.message : String(error);
269
- console.warn('[Menu] 从 IndexDB 加载数据失败:', error);
270
- this.logWarning('从 IndexDB 加载数据失败,准备从服务器加载', {
271
- error: errorMessage
272
- });
255
+ console.warn("[Menu] 从 IndexDB 加载数据失败:", error);
256
+ this.logWarning("从 IndexDB 加载数据失败,准备从服务器加载", { error: errorMessage });
273
257
  }
274
-
275
- // 2. 如果 IndexDB 中没有数据,从服务器加载
276
258
  const menuList = await this.loadMenuList();
277
-
278
- // 3. 将服务器数据保存到 IndexDB 和 store
279
259
  if (menuList && menuList.length > 0) {
280
260
  await this.saveMenuToIndexDB(menuList);
281
- this.store.menuList = (0, _lodashEs.cloneDeep)(menuList);
282
- // 同步更新 Map 缓存
261
+ this.store.menuList = (0, import_lodash_es.cloneDeep)(menuList);
283
262
  this.syncMenuMap();
284
- this.core.effects.emit(_types.MenuHooks.onMenuChanged, this.store.menuList);
263
+ this.core.effects.emit(import_types.MenuHooks.onMenuChanged, this.store.menuList);
285
264
  const duration = Date.now() - startTime;
286
- this.logInfo('预加载完成(从服务器)', {
265
+ this.logInfo("预加载完成(从服务器)", {
287
266
  menuCount: menuList.length,
288
267
  duration: `${duration}ms`,
289
- source: 'Server'
268
+ source: "Server"
290
269
  });
291
270
  } else {
292
271
  const duration = Date.now() - startTime;
293
- this.logWarning('预加载完成但未获取到数据', {
272
+ this.logWarning("预加载完成但未获取到数据", {
294
273
  duration: `${duration}ms`
295
274
  });
296
275
  }
297
276
  }
298
-
299
277
  /**
300
278
  * 获取模块的路由定义
301
279
  * 返回该模块需要注册的 API 路由
302
280
  */
303
281
  getRoutes() {
304
282
  return [
305
- // GET /api/menu - 获取所有餐牌
306
- {
307
- method: 'get',
308
- path: '/api/menu',
309
- handler: async () => {
310
- const menuList = this.getMenuList();
311
- return {
312
- success: true,
313
- data: menuList,
314
- total: menuList.length
315
- };
283
+ // GET /api/menu - 获取所有餐牌
284
+ {
285
+ method: "get",
286
+ path: "/api/menu",
287
+ handler: async () => {
288
+ const menuList = this.getMenuList();
289
+ return {
290
+ success: true,
291
+ data: menuList,
292
+ total: menuList.length
293
+ };
294
+ }
316
295
  }
317
- }];
296
+ ];
318
297
  }
319
-
320
298
  /**
321
299
  * 记录信息日志
322
300
  * @param title 日志标题
@@ -326,16 +304,14 @@ class MenuModule extends _BaseModule.BaseModule {
326
304
  try {
327
305
  if (this.logger) {
328
306
  this.logger.addLog({
329
- type: 'info',
307
+ type: "info",
330
308
  title: `[MenuModule] ${title}`,
331
309
  metadata: metadata || {}
332
310
  });
333
311
  }
334
312
  } catch {
335
- // 日志记录失败不影响主流程
336
313
  }
337
314
  }
338
-
339
315
  /**
340
316
  * 记录警告日志
341
317
  * @param title 日志标题
@@ -345,16 +321,14 @@ class MenuModule extends _BaseModule.BaseModule {
345
321
  try {
346
322
  if (this.logger) {
347
323
  this.logger.addLog({
348
- type: 'warning',
324
+ type: "warning",
349
325
  title: `[MenuModule] ${title}`,
350
326
  metadata: metadata || {}
351
327
  });
352
328
  }
353
329
  } catch {
354
- // 日志记录失败不影响主流程
355
330
  }
356
331
  }
357
-
358
332
  /**
359
333
  * 记录错误日志
360
334
  * @param title 日志标题
@@ -364,14 +338,16 @@ class MenuModule extends _BaseModule.BaseModule {
364
338
  try {
365
339
  if (this.logger) {
366
340
  this.logger.addLog({
367
- type: 'error',
341
+ type: "error",
368
342
  title: `[MenuModule] ${title}`,
369
343
  metadata: metadata || {}
370
344
  });
371
345
  }
372
346
  } catch {
373
- // 日志记录失败不影响主流程
374
347
  }
375
348
  }
376
- }
377
- exports.MenuModule = MenuModule;
349
+ };
350
+ // Annotate the CommonJS export names for ESM import in node:
351
+ 0 && (module.exports = {
352
+ MenuModule
353
+ });
@@ -1,20 +1,33 @@
1
- "use strict";
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);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/server/modules/menu/types.ts
20
+ var types_exports = {};
21
+ __export(types_exports, {
22
+ MenuHooks: () => MenuHooks
23
+ });
24
+ module.exports = __toCommonJS(types_exports);
25
+ var MenuHooks = /* @__PURE__ */ ((MenuHooks2) => {
26
+ MenuHooks2["onMenuLoaded"] = "menu:onMenuLoaded";
27
+ MenuHooks2["onMenuChanged"] = "menu:onMenuChanged";
28
+ return MenuHooks2;
29
+ })(MenuHooks || {});
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ MenuHooks
5
33
  });
6
- exports.MenuHooks = void 0;
7
- /**
8
- * 餐牌模块状态
9
- */
10
- /**
11
- * 餐牌数据结构
12
- */
13
- /**
14
- * 餐牌模块钩子
15
- */
16
- let MenuHooks = exports.MenuHooks = /*#__PURE__*/function (MenuHooks) {
17
- MenuHooks["onMenuLoaded"] = "menu:onMenuLoaded";
18
- MenuHooks["onMenuChanged"] = "menu:onMenuChanged";
19
- return MenuHooks;
20
- }({});