@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
@@ -45,6 +45,7 @@ var PisellOSCore = /*#__PURE__*/function () {
45
45
  this.serverOptions = options.server;
46
46
  }
47
47
  this.initialize(options);
48
+ console.log('constructor1234');
48
49
  }
49
50
  _createClass(PisellOSCore, [{
50
51
  key: "initialize",
@@ -106,20 +107,21 @@ var PisellOSCore = /*#__PURE__*/function () {
106
107
  _context.next = 16;
107
108
  return this.server.initialize(this.serverOptions.modules, this.serverOptions.autoInitData !== false, options);
108
109
  case 16:
110
+ console.log('[PisellOS] ✅ Server 初始化完成,所有数据已预加载');
109
111
  this.log('[PisellOS] Server 初始化完成');
110
- _context.next = 24;
112
+ _context.next = 25;
111
113
  break;
112
- case 19:
113
- _context.prev = 19;
114
+ case 20:
115
+ _context.prev = 20;
114
116
  _context.t0 = _context["catch"](6);
115
117
  console.error('[PisellOS] ❌ Server 初始化失败:', _context.t0);
116
118
  this.log("Server \u521D\u59CB\u5316\u5931\u8D25: ".concat(_context.t0), 'error');
117
119
  throw _context.t0;
118
- case 24:
120
+ case 25:
119
121
  case "end":
120
122
  return _context.stop();
121
123
  }
122
- }, _callee, this, [[6, 19]]);
124
+ }, _callee, this, [[6, 20]]);
123
125
  }));
124
126
  function initializeServer(_x) {
125
127
  return _initializeServer.apply(this, arguments);
@@ -137,10 +139,11 @@ var PisellOSCore = /*#__PURE__*/function () {
137
139
  var prefix = '[PisellOS]';
138
140
  switch (level) {
139
141
  case 'info':
142
+ console.log("".concat(prefix, " ").concat(message));
140
143
  break;
141
144
  case 'warn':
142
145
  // 使用 console.log 避免显示堆栈跟踪,提升性能
143
-
146
+ console.log("%c".concat(prefix, "%c ").concat(message), 'color: #f59e0b; font-weight: bold;', 'color: #f59e0b;');
144
147
  break;
145
148
  case 'error':
146
149
  console.error("".concat(prefix, " ").concat(message));
@@ -247,6 +250,7 @@ var PisellOSCore = /*#__PURE__*/function () {
247
250
  }
248
251
  // 预先给模块初始化值系统
249
252
  var _createStore = createStore((options === null || options === void 0 ? void 0 : options.initialState) || {}, module.name, function (path, value) {
253
+ console.log('core 检测到模块值更新', module.name, path, value);
250
254
  _this3.effects.emit("".concat(module.name, ":changed"), {
251
255
  path: path,
252
256
  value: value
package/dist/index.d.ts CHANGED
@@ -8,6 +8,5 @@ export * from './plugins';
8
8
  export * from './solution';
9
9
  export * from './model';
10
10
  export { PisellOSCore } from './core';
11
- export { DataVariantEvaluator } from './model/strategy/adapter/dataVariant/evaluator';
12
11
  import PisellOSCore from './core';
13
12
  export default PisellOSCore;
package/dist/index.js CHANGED
@@ -13,9 +13,6 @@ export * from "./model";
13
13
  // 导出核心实现
14
14
  export { PisellOSCore } from "./core";
15
15
 
16
- // 策略评估器(宿主注入 smart pricing / promotion 等场景使用)
17
- export { DataVariantEvaluator } from "./model/strategy/adapter/dataVariant/evaluator";
18
-
19
16
  // 导出框架主类
20
17
  import PisellOSCore from "./core";
21
18
  export default PisellOSCore;
@@ -0,0 +1,9 @@
1
+ // 导出评估器
2
+ export { PromotionEvaluator } from "./evaluator";
3
+
4
+ // 导出适配器
5
+ export { PromotionAdapter } from "./adapter";
6
+ export { default } from "./adapter";
7
+
8
+ // 导出策略配置示例常量
9
+ export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY } from "./examples";
@@ -11,7 +11,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
11
11
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
12
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
13
  import { StrategyEngine } from "../../index";
14
- import { processVouchers as _processVouchers, recalculateVouchers as _recalculateVouchers, getApplicableProductIds, getMainProductPrice, getBundleItemPrice, getProductQuantity, getBundleItemIsOriginalPrice, getTaxAndFeeRoundingRemainder, getBundleItemTaxAndFeeRoundingRemainder, getProductDiscountDifference, getBundleItemDiscountDifference } from "./utils";
14
+ import { processVouchers as _processVouchers, recalculateVouchers as _recalculateVouchers, getApplicableProductIds, getMainProductPrice, getBundleItemPrice, getProductQuantity, getBundleItemIsOriginalPrice } from "./utils";
15
15
  import { locales } from "./locales";
16
16
  import Decimal from 'decimal.js';
17
17
  var defaultStrategyMetadataCustom = {
@@ -257,6 +257,7 @@ export var WalletPassEvaluator = /*#__PURE__*/function () {
257
257
  var rawText = this.getText(reasonCode);
258
258
  // 金额类型字段:从 otherParams.getData 取货币符号;非金额或取不到则留空
259
259
  var currency = failedField && AMOUNT_FIELDS.has(failedField) ? ((_this$otherParams = this.otherParams) === null || _this$otherParams === void 0 || (_this$otherParams$get = (_this$otherParams2 = _this$otherParams).getData) === null || _this$otherParams$get === void 0 ? void 0 : _this$otherParams$get.call(_this$otherParams2, 'shop_symbol')) || '' : '';
260
+ console.log(currency, 'currency12345');
260
261
  var reason = thresholdValue !== undefined ? formatReason(rawText, thresholdValue, currency) : rawText;
261
262
  results.push({
262
263
  voucher: voucher,
@@ -505,6 +506,7 @@ export var WalletPassEvaluator = /*#__PURE__*/function () {
505
506
  }, {
506
507
  key: "calculateApplicableProducts",
507
508
  value: function calculateApplicableProducts(products, applicableProductIds, deductTaxAndFee) {
509
+ console.log(products, 'products1234');
508
510
  var total = 0;
509
511
  var count = 0;
510
512
 
@@ -521,8 +523,8 @@ export var WalletPassEvaluator = /*#__PURE__*/function () {
521
523
  // 检查主商品是否适用
522
524
  var isMainProductApplicable = applicableProductIds === null || applicableProductIds.includes(product.product_id);
523
525
  if (isMainProductApplicable) {
524
- // 计算主商品价格(包含加减价子商品)= 单价 * 数量 + 舍入余数 - 商品差额
525
- total += getMainProductPrice(product, deductTaxAndFee) * productQuantity + getTaxAndFeeRoundingRemainder(product, deductTaxAndFee) - getProductDiscountDifference(product);
526
+ // 计算主商品价格(包含加减价子商品)
527
+ total += getMainProductPrice(product, deductTaxAndFee) * productQuantity;
526
528
  count += productQuantity;
527
529
  }
528
530
 
@@ -534,9 +536,9 @@ export var WalletPassEvaluator = /*#__PURE__*/function () {
534
536
  // 检查子商品是否适用
535
537
  var isBundleItemApplicable = applicableProductIds === null || applicableProductIds.includes(bundleItem.bundle_product_id);
536
538
  if (isBundleItemApplicable) {
537
- // 计算原价子商品价格 = 总价 + 舍入余数 - 商品差额
539
+ // 计算原价子商品价格
538
540
  var bundleItemQuantity = bundleItem.num * productQuantity;
539
- total += getBundleItemPrice(bundleItem, productQuantity, deductTaxAndFee) + getBundleItemTaxAndFeeRoundingRemainder(bundleItem, deductTaxAndFee) - getBundleItemDiscountDifference(bundleItem);
541
+ total += getBundleItemPrice(bundleItem, productQuantity, deductTaxAndFee);
540
542
  count += bundleItemQuantity;
541
543
  }
542
544
  }
@@ -164,6 +164,8 @@ var strategyConfigs = [
164
164
  // ============================================
165
165
 
166
166
  function runExample() {
167
+ console.log('========== WalletPass 评估器示例 ==========\n');
168
+
167
169
  // 创建评估器实例
168
170
  var evaluator = new WalletPassEvaluator();
169
171
 
@@ -176,17 +178,38 @@ function runExample() {
176
178
  });
177
179
 
178
180
  // 输出结果
179
-
181
+ console.log('订单信息:');
182
+ console.log("- \u603B\u91D1\u989D: ".concat(180, " \u5143"));
183
+ console.log("- \u5546\u54C1: ".concat(products.map(function (p) {
184
+ return "".concat(p.name, "(").concat(p.quantity, "\u4EF6)");
185
+ }).join(', '), "\n"));
186
+ console.log('评估结果:\n');
180
187
  results.forEach(function (result, index) {
181
- if (result.isApplicable) {} else {}
188
+ console.log("Voucher ".concat(index + 1, ": ").concat(result.voucher.id));
189
+ console.log(" \u9762\u989D: ".concat(result.voucher.amount, " \u5143"));
190
+ console.log(" \u53EF\u7528: ".concat(result.isApplicable ? '✅ 是' : '❌ 否'));
191
+ if (result.isApplicable) {
192
+ console.log(" \u6700\u5927\u62B5\u6263: ".concat(result.maxDeduction, " \u5143"));
193
+ console.log(" \u6BCF\u5355\u53EF\u7528: ".concat(result.canUseCount, " \u5F20"));
194
+ console.log(" \u62B5\u6263\u7A0E\u8D39: ".concat(result.deductTaxAndFee ? '是' : '否'));
195
+ console.log(" \u9002\u7528\u5546\u54C1: ".concat(result.applicableProductIds.join(', ')));
196
+ } else {
197
+ console.log(" \u539F\u56E0: ".concat(result.reason));
198
+ console.log(" \u539F\u56E0\u7801: ".concat(result.reasonCode));
199
+ }
200
+ console.log('');
182
201
  });
183
202
 
184
203
  // 筛选可用的 vouchers
185
204
  var availableVouchers = results.filter(function (r) {
186
205
  return r.isApplicable;
187
206
  });
207
+ console.log("\n\u5171 ".concat(availableVouchers.length, " \u5F20\u53EF\u7528"));
188
208
  if (availableVouchers.length > 0) {
189
- availableVouchers.forEach(function (v) {});
209
+ console.log('可用 voucher ID:');
210
+ availableVouchers.forEach(function (v) {
211
+ console.log(" - ".concat(v.voucher.id, ": \u6700\u591A\u62B5\u6263 ").concat(v.maxDeduction, " \u5143"));
212
+ });
190
213
  }
191
214
  }
192
215
 
@@ -5,7 +5,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
7
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
- import { getApplicableProductIds, getMainProductPrice, getBundleItemPrice, getProductQuantity, getBundleItemIsOriginalPrice, getTaxAndFeeRoundingRemainder, getBundleItemTaxAndFeeRoundingRemainder, getProductDiscountDifference, getBundleItemDiscountDifference } from "./utils";
8
+ import { getApplicableProductIds, getMainProductPrice, getBundleItemPrice, getProductQuantity, getBundleItemIsOriginalPrice } from "./utils";
9
9
 
10
10
  /**
11
11
  * Wallet Pass 适配器
@@ -149,8 +149,8 @@ var WalletPassAdapter = /*#__PURE__*/function () {
149
149
  // 检查主商品是否适用
150
150
  var isMainProductApplicable = applicableProductIds === null || applicableProductIds.includes(product.product_id);
151
151
  if (isMainProductApplicable) {
152
- // 计算主商品价格(包含加减价子商品)= 单价 * 数量 + 舍入余数 - 商品差额
153
- total += getMainProductPrice(product, deductTaxAndFee) * productQuantity + getTaxAndFeeRoundingRemainder(product, deductTaxAndFee) - getProductDiscountDifference(product);
152
+ // 计算主商品价格(包含加减价子商品)
153
+ total += getMainProductPrice(product, deductTaxAndFee) * productQuantity;
154
154
  count += productQuantity;
155
155
  }
156
156
 
@@ -162,9 +162,9 @@ var WalletPassAdapter = /*#__PURE__*/function () {
162
162
  // 检查子商品是否适用
163
163
  var isBundleItemApplicable = applicableProductIds === null || applicableProductIds.includes(bundleItem.bundle_product_id);
164
164
  if (isBundleItemApplicable) {
165
- // 计算原价子商品价格 = 总价 + 舍入余数 - 商品差额
165
+ // 计算原价子商品价格
166
166
  var bundleItemQuantity = bundleItem.num * productQuantity;
167
- total += getBundleItemPrice(bundleItem, productQuantity, deductTaxAndFee) + getBundleItemTaxAndFeeRoundingRemainder(bundleItem, deductTaxAndFee) - getBundleItemDiscountDifference(bundleItem);
167
+ total += getBundleItemPrice(bundleItem, productQuantity, deductTaxAndFee);
168
168
  count += bundleItemQuantity;
169
169
  }
170
170
  }
@@ -82,8 +82,6 @@ export interface Product {
82
82
  surcharge_rounding_remainder?: number;
83
83
  tax_fee_rounding_remainder?: number;
84
84
  main_product_selling_price: number;
85
- /** 商品折扣差额 */
86
- product_discount_difference?: number;
87
85
  };
88
86
  is_price_include_tax: 0 | 1;
89
87
  product_bundle: {
@@ -101,7 +99,6 @@ export interface Product {
101
99
  surcharge_fee: number;
102
100
  surcharge_rounding_remainder?: number;
103
101
  tax_fee_rounding_remainder?: number;
104
- product_discount_difference?: number;
105
102
  };
106
103
  }[];
107
104
  }
@@ -29,19 +29,6 @@ export declare function recalculateVouchers(allVouchers: any[], selectedVouchers
29
29
  allWithUpdatedStatus: any[];
30
30
  selectedWithDetails: any[];
31
31
  };
32
- /**
33
- * 获取税费和附加费的舍入余数
34
- * @param product 商品
35
- * @param isDeductTaxAndFee 是否抵扣税费与附加费
36
- * @returns 舍入余数(税费 + 附加费的舍入余数)
37
- */
38
- export declare const getTaxAndFeeRoundingRemainder: (product: Product, isDeductTaxAndFee: boolean) => number;
39
- /**
40
- * 获取主商品的商品差额
41
- * @param product 商品
42
- * @returns 商品差额(与数量无关,计算总价时需要减去)
43
- */
44
- export declare const getProductDiscountDifference: (product: Product) => number;
45
32
  /**
46
33
  * 获取主商品价格(单价,不含舍入余数)
47
34
  * @param product 商品
@@ -49,19 +36,6 @@ export declare const getProductDiscountDifference: (product: Product) => number;
49
36
  * @returns 商品单价
50
37
  */
51
38
  export declare const getMainProductPrice: (product: Product, isDeductTaxAndFee: boolean) => number;
52
- /**
53
- * 获取套餐子商品税费和附加费的舍入余数
54
- * @param bundleItem 套餐子商品
55
- * @param isDeductTaxAndFee 是否抵扣税费与附加费
56
- * @returns 舍入余数(税费 + 附加费的舍入余数)
57
- */
58
- export declare const getBundleItemTaxAndFeeRoundingRemainder: (bundleItem: any, isDeductTaxAndFee: boolean) => number;
59
- /**
60
- * 获取套餐子商品的商品差额
61
- * @param bundleItem 套餐子商品
62
- * @returns 商品差额(与数量无关,计算总价时需要减去)
63
- */
64
- export declare const getBundleItemDiscountDifference: (bundleItem: any) => number;
65
39
  /**
66
40
  * 获取套餐子商品价格(不含舍入余数)
67
41
  * @param bundleItem 套餐子商品
@@ -72,6 +72,7 @@ function applyMaxPassUsageIncrements(usageMap, walletPassProductId, maxPassesPer
72
72
  // 辅助函数:根据 deductTaxAndFee 配置获取推荐使用金额
73
73
  var getRecommendedAmount = function getRecommendedAmount(voucher) {
74
74
  var _config$deductTaxAndF;
75
+ console.log('voucher312', voucher);
75
76
  var config = voucher.config,
76
77
  recommended_usage_amount = voucher.recommended_usage_amount,
77
78
  recommended_pure_product_usage_amount = voucher.recommended_pure_product_usage_amount;
@@ -165,6 +166,8 @@ var getApplicableProducts = function getApplicableProducts(voucher, productsData
165
166
  * @returns 返回推荐券列表和全部列表,每个券包含 _available_max_amount 和 _unified_available_status
166
167
  */
167
168
  export function processVouchers(applicableVouchers, orderTotalAmount, products) {
169
+ console.log(products, 'products123');
170
+
168
171
  // 拆分商品数据,同时维护含税和不含税两个金额池
169
172
  // remainingAmountWithTax: 含税费的剩余可抵扣金额
170
173
  // remainingAmountPure: 纯商品金额(不含税费)的剩余可抵扣金额
@@ -939,40 +942,6 @@ export function recalculateVouchers(allVouchers, selectedVouchers, orderTotalAmo
939
942
  };
940
943
  }
941
944
 
942
- /**
943
- * 获取税费和附加费的舍入余数
944
- * @param product 商品
945
- * @param isDeductTaxAndFee 是否抵扣税费与附加费
946
- * @returns 舍入余数(税费 + 附加费的舍入余数)
947
- */
948
- export var getTaxAndFeeRoundingRemainder = function getTaxAndFeeRoundingRemainder(product, isDeductTaxAndFee) {
949
- var _product$metadata2;
950
- if (!isDeductTaxAndFee) {
951
- return 0;
952
- }
953
-
954
- // 税费舍入余数(如果价格包含税则为0)
955
- var taxFeeRoundingRemainder = new Decimal(0);
956
- if (product.is_price_include_tax !== 1) {
957
- var _product$metadata;
958
- taxFeeRoundingRemainder = new Decimal((product === null || product === void 0 || (_product$metadata = product.metadata) === null || _product$metadata === void 0 ? void 0 : _product$metadata.tax_fee_rounding_remainder) || 0);
959
- }
960
-
961
- // 附加费舍入余数
962
- var surchargeFeeRoundingRemainder = new Decimal((product === null || product === void 0 || (_product$metadata2 = product.metadata) === null || _product$metadata2 === void 0 ? void 0 : _product$metadata2.surcharge_rounding_remainder) || 0);
963
- return taxFeeRoundingRemainder.add(surchargeFeeRoundingRemainder).toNumber();
964
- };
965
-
966
- /**
967
- * 获取主商品的商品差额
968
- * @param product 商品
969
- * @returns 商品差额(与数量无关,计算总价时需要减去)
970
- */
971
- export var getProductDiscountDifference = function getProductDiscountDifference(product) {
972
- var _product$metadata3;
973
- return new Decimal((product === null || product === void 0 || (_product$metadata3 = product.metadata) === null || _product$metadata3 === void 0 ? void 0 : _product$metadata3.product_discount_difference) || 0).toNumber();
974
- };
975
-
976
945
  /**
977
946
  * 获取主商品价格(单价,不含舍入余数)
978
947
  * @param product 商品
@@ -980,8 +949,8 @@ export var getProductDiscountDifference = function getProductDiscountDifference(
980
949
  * @returns 商品单价
981
950
  */
982
951
  export var getMainProductPrice = function getMainProductPrice(product, isDeductTaxAndFee) {
983
- var _product$metadata4, _product$metadata5, _product$metadata6, _product$metadata7, _product$metadata8;
984
- var mainProductPrice = new Decimal((product === null || product === void 0 ? void 0 : product.main_product_selling_price) || ((_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.main_product_selling_price) || 0);
952
+ var _product$metadata, _product$metadata2, _product$metadata3, _product$metadata4, _product$metadata5;
953
+ var mainProductPrice = new Decimal((product === null || product === void 0 ? void 0 : product.main_product_selling_price) || ((_product$metadata = product.metadata) === null || _product$metadata === void 0 ? void 0 : _product$metadata.main_product_selling_price) || 0);
985
954
  var _iterator6 = _createForOfIteratorHelper((product === null || product === void 0 ? void 0 : product.product_bundle) || []),
986
955
  _step6;
987
956
  try {
@@ -1000,14 +969,14 @@ export var getMainProductPrice = function getMainProductPrice(product, isDeductT
1000
969
  } finally {
1001
970
  _iterator6.f();
1002
971
  }
1003
- var taxFee = new Decimal((product === null || product === void 0 ? void 0 : product.tax_fee) || (product === null || product === void 0 || (_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5.main_product_attached_bundle_tax_fee) || 0).add((product === null || product === void 0 || (_product$metadata6 = product.metadata) === null || _product$metadata6 === void 0 ? void 0 : _product$metadata6.tax_fee_rounding_remainder) || 0);
972
+ var taxFee = new Decimal((product === null || product === void 0 ? void 0 : product.tax_fee) || (product === null || product === void 0 || (_product$metadata2 = product.metadata) === null || _product$metadata2 === void 0 ? void 0 : _product$metadata2.main_product_attached_bundle_tax_fee) || 0).add((product === null || product === void 0 || (_product$metadata3 = product.metadata) === null || _product$metadata3 === void 0 ? void 0 : _product$metadata3.tax_fee_rounding_remainder) || 0);
1004
973
  if (product.is_price_include_tax === 1) {
1005
974
  taxFee = new Decimal(0);
1006
975
  }
1007
976
 
1008
977
  // 税费
1009
978
  // 附加费
1010
- var surchargeFee = new Decimal((product === null || product === void 0 || (_product$metadata7 = product.metadata) === null || _product$metadata7 === void 0 ? void 0 : _product$metadata7.main_product_attached_bundle_surcharge_fee) || 0).add((product === null || product === void 0 || (_product$metadata8 = product.metadata) === null || _product$metadata8 === void 0 ? void 0 : _product$metadata8.surcharge_rounding_remainder) || 0);
979
+ var surchargeFee = new Decimal((product === null || product === void 0 || (_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.main_product_attached_bundle_surcharge_fee) || 0).add((product === null || product === void 0 || (_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5.surcharge_rounding_remainder) || 0);
1011
980
 
1012
981
  // 税费附加费总额
1013
982
  var taxAndFeeTotal = taxFee.add(surchargeFee);
@@ -1019,40 +988,6 @@ export var getMainProductPrice = function getMainProductPrice(product, isDeductT
1019
988
  return mainProductPrice.toNumber();
1020
989
  };
1021
990
 
1022
- /**
1023
- * 获取套餐子商品税费和附加费的舍入余数
1024
- * @param bundleItem 套餐子商品
1025
- * @param isDeductTaxAndFee 是否抵扣税费与附加费
1026
- * @returns 舍入余数(税费 + 附加费的舍入余数)
1027
- */
1028
- export var getBundleItemTaxAndFeeRoundingRemainder = function getBundleItemTaxAndFeeRoundingRemainder(bundleItem, isDeductTaxAndFee) {
1029
- var _bundleItem$metadata2;
1030
- if (!isDeductTaxAndFee) {
1031
- return 0;
1032
- }
1033
-
1034
- // 税费舍入余数(如果价格包含税则为0)
1035
- var taxFeeRoundingRemainder = new Decimal(0);
1036
- if (bundleItem.is_price_include_tax !== 1) {
1037
- var _bundleItem$metadata;
1038
- taxFeeRoundingRemainder = new Decimal(((_bundleItem$metadata = bundleItem.metadata) === null || _bundleItem$metadata === void 0 ? void 0 : _bundleItem$metadata.tax_fee_rounding_remainder) || 0);
1039
- }
1040
-
1041
- // 附加费舍入余数
1042
- var surchargeFeeRoundingRemainder = new Decimal(((_bundleItem$metadata2 = bundleItem.metadata) === null || _bundleItem$metadata2 === void 0 ? void 0 : _bundleItem$metadata2.surcharge_rounding_remainder) || 0);
1043
- return taxFeeRoundingRemainder.add(surchargeFeeRoundingRemainder).toNumber();
1044
- };
1045
-
1046
- /**
1047
- * 获取套餐子商品的商品差额
1048
- * @param bundleItem 套餐子商品
1049
- * @returns 商品差额(与数量无关,计算总价时需要减去)
1050
- */
1051
- export var getBundleItemDiscountDifference = function getBundleItemDiscountDifference(bundleItem) {
1052
- var _bundleItem$metadata3;
1053
- return new Decimal(((_bundleItem$metadata3 = bundleItem.metadata) === null || _bundleItem$metadata3 === void 0 ? void 0 : _bundleItem$metadata3.product_discount_difference) || 0).toNumber();
1054
- };
1055
-
1056
991
  /**
1057
992
  * 获取套餐子商品价格(不含舍入余数)
1058
993
  * @param bundleItem 套餐子商品
@@ -1068,14 +1003,14 @@ export var getBundleItemPrice = function getBundleItemPrice(bundleItem, parentQu
1068
1003
 
1069
1004
  // 根据 deductTaxAndFee 配置决定是否加上税费和附加费
1070
1005
  if (isDeductTaxAndFee) {
1071
- var _bundleItem$tax_fee, _bundleItem$metadata$, _bundleItem$metadata4;
1006
+ var _bundleItem$tax_fee, _bundleItem$metadata$, _bundleItem$metadata;
1072
1007
  // 税费
1073
1008
  var taxFee = new Decimal((_bundleItem$tax_fee = bundleItem.tax_fee) !== null && _bundleItem$tax_fee !== void 0 ? _bundleItem$tax_fee : 0).times(totalQuantity);
1074
1009
  if (bundleItem.is_price_include_tax === 1) {
1075
1010
  taxFee = new Decimal(0);
1076
1011
  }
1077
1012
  // 附加费
1078
- var surchargeFee = new Decimal((_bundleItem$metadata$ = (_bundleItem$metadata4 = bundleItem.metadata) === null || _bundleItem$metadata4 === void 0 ? void 0 : _bundleItem$metadata4.surcharge_fee) !== null && _bundleItem$metadata$ !== void 0 ? _bundleItem$metadata$ : 0).times(totalQuantity);
1013
+ var surchargeFee = new Decimal((_bundleItem$metadata$ = (_bundleItem$metadata = bundleItem.metadata) === null || _bundleItem$metadata === void 0 ? void 0 : _bundleItem$metadata.surcharge_fee) !== null && _bundleItem$metadata$ !== void 0 ? _bundleItem$metadata$ : 0).times(totalQuantity);
1079
1014
  bundleItemPrice = bundleItemPrice.add(taxFee).add(surchargeFee);
1080
1015
  }
1081
1016
  return bundleItemPrice.toNumber();
@@ -1097,11 +1032,6 @@ var expandProductsWithBundleItems = function expandProductsWithBundleItems(produ
1097
1032
  var unitPriceWithTax = getMainProductPrice(product, true);
1098
1033
  var unitPricePure = getMainProductPrice(product, false);
1099
1034
 
1100
- // 获取舍入余数(与数量无关,只加一次)
1101
- var roundingRemainderWithTax = getTaxAndFeeRoundingRemainder(product, true);
1102
- // 获取商品差额(与数量无关,计算总价时需要减去)
1103
- var discountDifference = getProductDiscountDifference(product);
1104
-
1105
1035
  // 1. 添加主商品(同时计算含税和不含税两个金额,以及单价和剩余数量)
1106
1036
  expandedProducts.push(_objectSpread(_objectSpread({}, product), {}, {
1107
1037
  is_bundle_item: false,
@@ -1113,10 +1043,10 @@ var expandProductsWithBundleItems = function expandProductsWithBundleItems(produ
1113
1043
  unitPricePure: new Decimal(unitPricePure),
1114
1044
  // 剩余可抵扣数量
1115
1045
  remainingQuantity: productQuantity,
1116
- // 含税费的剩余金额(单价 * 数量 + 舍入余数 - 商品差额)
1117
- remainingAmountWithTax: new Decimal(unitPriceWithTax).times(productQuantity).add(roundingRemainderWithTax).sub(discountDifference),
1118
- // 纯商品金额(不含税费,也需要减去商品差额)
1119
- remainingAmountPure: new Decimal(unitPricePure).times(productQuantity).sub(discountDifference)
1046
+ // 含税费的剩余金额
1047
+ remainingAmountWithTax: new Decimal(unitPriceWithTax).times(productQuantity),
1048
+ // 纯商品金额(不含税费)
1049
+ remainingAmountPure: new Decimal(unitPricePure).times(productQuantity)
1120
1050
  }));
1121
1051
 
1122
1052
  // 2. 添加原价子商品(作为独立商品项)
@@ -1129,11 +1059,6 @@ var expandProductsWithBundleItems = function expandProductsWithBundleItems(produ
1129
1059
  var bundleUnitPriceWithTax = new Decimal(getBundleItemPrice(bundleItem, 1, true)).dividedBy(bundleItem.num);
1130
1060
  var bundleUnitPricePure = new Decimal(getBundleItemPrice(bundleItem, 1, false)).dividedBy(bundleItem.num);
1131
1061
 
1132
- // 获取子商品舍入余数(与数量无关,只加一次)
1133
- var bundleRoundingRemainder = getBundleItemTaxAndFeeRoundingRemainder(bundleItem, true);
1134
- // 获取子商品差额(与数量无关,计算总价时需要减去)
1135
- var bundleDiscountDifference = getBundleItemDiscountDifference(bundleItem);
1136
-
1137
1062
  // 原价子商品作为独立商品
1138
1063
  expandedProducts.push(_objectSpread(_objectSpread({}, bundleItem), {}, {
1139
1064
  product_id: bundleItem.bundle_product_id,
@@ -1149,10 +1074,10 @@ var expandProductsWithBundleItems = function expandProductsWithBundleItems(produ
1149
1074
  unitPricePure: bundleUnitPricePure,
1150
1075
  // 剩余可抵扣数量
1151
1076
  remainingQuantity: bundleQuantity,
1152
- // 含税费的剩余金额(总价 + 舍入余数 - 商品差额)
1153
- remainingAmountWithTax: new Decimal(getBundleItemPrice(bundleItem, productQuantity, true)).add(bundleRoundingRemainder).sub(bundleDiscountDifference),
1154
- // 纯商品金额(不含税费,也需要减去商品差额)
1155
- remainingAmountPure: new Decimal(getBundleItemPrice(bundleItem, productQuantity, false)).sub(bundleDiscountDifference)
1077
+ // 含税费的剩余金额
1078
+ remainingAmountWithTax: new Decimal(getBundleItemPrice(bundleItem, productQuantity, true)),
1079
+ // 纯商品金额(不含税费)
1080
+ remainingAmountPure: new Decimal(getBundleItemPrice(bundleItem, productQuantity, false))
1156
1081
  }));
1157
1082
  }
1158
1083
  });
@@ -246,6 +246,8 @@ var codeContext = {
246
246
  // ============================================
247
247
 
248
248
  function runExamples() {
249
+ console.log('====== 策略模型使用示例 ======\n');
250
+
249
251
  // 创建引擎实例(开启调试和追踪)
250
252
  var engine = createStrategyEngine({
251
253
  debug: true,
@@ -253,23 +255,32 @@ function runExamples() {
253
255
  });
254
256
 
255
257
  // 示例1: 代金券
256
-
258
+ console.log('示例1: 10元代金券');
257
259
  var result1 = engine.evaluate(voucherConfig, voucherContext);
260
+ console.log('结果:', JSON.stringify(result1, null, 2));
261
+ console.log('\n');
258
262
 
259
263
  // 示例2: 阶梯满减
260
-
264
+ console.log('示例2: 阶梯满减(订单金额250)');
261
265
  var result2 = engine.evaluate(tieredDiscountConfig, tieredContext);
266
+ console.log('结果:', JSON.stringify(result2, null, 2));
267
+ console.log('\n');
262
268
 
263
269
  // 示例3: Code 模式
264
-
270
+ console.log('示例3: Code 模式条件');
265
271
  var result3 = engine.evaluate(codeConditionConfig, codeContext);
272
+ console.log('结果:', JSON.stringify(result3, null, 2));
273
+ console.log('\n');
266
274
 
267
275
  // 快速评估(不需要创建引擎实例)
268
-
276
+ console.log('示例4: 快速评估');
269
277
  var result4 = evaluate(voucherConfig, voucherContext);
278
+ console.log('适用:', result4.applicable);
279
+ console.log('匹配动作数:', result4.matchedActions.length);
280
+ console.log('\n');
270
281
 
271
282
  // 注册自定义运算符
272
-
283
+ console.log('示例5: 自定义运算符');
273
284
  engine.registerOperator('divisible_by', function (fieldValue, compareValue) {
274
285
  return Number(fieldValue) % Number(compareValue) === 0;
275
286
  });
@@ -306,8 +317,11 @@ function runExamples() {
306
317
  }
307
318
  };
308
319
  var result5 = engine.evaluate(customOperatorConfig, customContext);
320
+ console.log('结果:', result5.applicable ? '适用' : '不适用');
321
+ console.log('匹配动作:', result5.matchedActions);
309
322
 
310
323
  // 调试信息
324
+ console.log('\n引擎调试信息:', engine.getDebugInfo());
311
325
  }
312
326
 
313
327
  // 运行示例(如果直接执行此文件)
@@ -16,7 +16,7 @@ export declare class BaseModule {
16
16
  }): void;
17
17
  effectsOn(eventType: string, callback: (payload: any) => void): () => void;
18
18
  effectsOff(eventType: string, callback: (payload: any) => void): void;
19
- effectsOnce(eventType: string, callback: (payload: any) => void): void;
19
+ effectsOnce(eventType: string, callback: (payload: any) => void): () => void;
20
20
  effectsEmit(eventType: string, payload: any): Promise<{
21
21
  status: boolean;
22
22
  data: any;
@@ -1,6 +1,4 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
4
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -41,7 +39,7 @@ export var BaseModule = /*#__PURE__*/function () {
41
39
  var currentCacheData = window.sessionStorage.getItem(fatherModule);
42
40
  var currentCacheDataObj = JSON.parse(currentCacheData || '{}');
43
41
  if (!currentCacheData || !currentCacheDataObj[cacheId]) {
44
- currentCacheDataObj = _objectSpread(_defineProperty({}, cacheId, _defineProperty({}, this.name, {})), currentCacheDataObj);
42
+ currentCacheDataObj = _defineProperty({}, cacheId, _defineProperty({}, this.name, {}));
45
43
  }
46
44
  if (!currentCacheDataObj[cacheId][this.name]) {
47
45
  currentCacheDataObj[cacheId][this.name] = {};
@@ -52,17 +50,17 @@ export var BaseModule = /*#__PURE__*/function () {
52
50
  window.sessionStorage.setItem(fatherModule, JSON.stringify(currentCacheDataObj));
53
51
  } else {
54
52
  var _currentCacheData = window.sessionStorage.getItem(cacheId);
55
- var _currentCacheDataObj = JSON.parse(_currentCacheData || '{}');
56
- if (!_currentCacheDataObj) {
57
- _currentCacheDataObj = {};
53
+ var _currentCacheDataObj2 = JSON.parse(_currentCacheData || '{}');
54
+ if (!_currentCacheDataObj2) {
55
+ _currentCacheDataObj2 = {};
58
56
  }
59
- if (!_currentCacheDataObj[this.name]) {
60
- _currentCacheDataObj[this.name] = {};
57
+ if (!_currentCacheDataObj2[this.name]) {
58
+ _currentCacheDataObj2[this.name] = {};
61
59
  }
62
60
  cacheKey.forEach(function (key) {
63
- _currentCacheDataObj[_this.name][key] = store[key];
61
+ _currentCacheDataObj2[_this.name][key] = store[key];
64
62
  });
65
- window.sessionStorage.setItem(cacheId, JSON.stringify(_currentCacheDataObj));
63
+ window.sessionStorage.setItem(cacheId, JSON.stringify(_currentCacheDataObj2));
66
64
  }
67
65
  }
68
66
  }
@@ -95,6 +95,9 @@ export var CartModule = /*#__PURE__*/function (_BaseModule) {
95
95
  }
96
96
  throw new Error('购物车模块需要 window 插件支持');
97
97
  case 11:
98
+ // this.store.temp = {};
99
+ console.log('[CartModule] 初始化完成');
100
+ case 12:
98
101
  case "end":
99
102
  return _context.stop();
100
103
  }
@@ -63,6 +63,7 @@ export var handleVariantProduct = function handleVariantProduct(product) {
63
63
  */
64
64
  export var formatProductToCartItem = function formatProductToCartItem(params) {
65
65
  var _product$custom_depos;
66
+ console.log('formatProductToCartItem>>>>>>', params);
66
67
  var cartItem = params.cartItem,
67
68
  product = params.product,
68
69
  bundle = params.bundle,
@@ -80,8 +80,6 @@ export var formatResourceToCartItemOrigin = function formatResourceToCartItemOri
80
80
  origin.end_date = null;
81
81
  origin.end_time = null;
82
82
  }
83
- // origin.relation_type = '';
84
- // origin.relation_id = 0;
85
83
  return origin;
86
84
  };
87
85