@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,21 +1,36 @@
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/modules/Payment/cash.ts
20
+ var cash_exports = {};
21
+ __export(cash_exports, {
22
+ CashPaymentImpl: () => CashPaymentImpl
5
23
  });
6
- exports.CashPaymentImpl = void 0;
7
- var _cashRecommendationAlgorithm = require("./cashRecommendationAlgorithm");
8
- /**
9
- * 现金支付实现
10
- */
11
- class CashPaymentImpl {
24
+ module.exports = __toCommonJS(cash_exports);
25
+ var import_cashRecommendationAlgorithm = require("./cashRecommendationAlgorithm");
26
+ var CashPaymentImpl = class {
12
27
  constructor(paymentModule) {
13
28
  this.paymentModule = paymentModule;
14
29
  }
15
30
  async processCashPayment(amount, orderUuid) {
16
31
  const cashMethod = await this.paymentModule.getCashPaymentMethod();
17
32
  if (!cashMethod) {
18
- throw new Error('现金支付方式未找到');
33
+ throw new Error("现金支付方式未找到");
19
34
  }
20
35
  const paymentItem = {
21
36
  amount: amount.toString(),
@@ -23,15 +38,13 @@ class CashPaymentImpl {
23
38
  custom_payment_id: cashMethod.id,
24
39
  name: cashMethod.name,
25
40
  type: cashMethod.type,
26
- voucher_id: ''
41
+ voucher_id: ""
27
42
  };
28
43
  await this.paymentModule.addPaymentItemAsync(orderUuid, paymentItem);
29
44
  }
30
45
  async getCashBalance() {
31
- // 现金余额逻辑可以根据实际业务需求实现
32
46
  return 0;
33
47
  }
34
-
35
48
  /**
36
49
  * 获取推荐支付金额
37
50
  * 基于目标金额和货币类型,返回最优支付金额建议
@@ -40,12 +53,12 @@ class CashPaymentImpl {
40
53
  * @returns 推荐支付金额数组
41
54
  */
42
55
  getRecommendedAmount(money, currency) {
43
- // 获取对应货币的面额配置
44
56
  const upperCurrency = currency.toUpperCase();
45
- const denominations = _cashRecommendationAlgorithm.CURRENCY_DENOMINATIONS[upperCurrency] || _cashRecommendationAlgorithm.CURRENCY_DENOMINATIONS['DEFAULT'];
46
-
47
- // 直接调用算法,所有验证和容错处理都在算法内部
48
- return (0, _cashRecommendationAlgorithm.recommendOptimalPayments)(money, denominations);
57
+ const denominations = import_cashRecommendationAlgorithm.CURRENCY_DENOMINATIONS[upperCurrency] || import_cashRecommendationAlgorithm.CURRENCY_DENOMINATIONS["DEFAULT"];
58
+ return (0, import_cashRecommendationAlgorithm.recommendOptimalPayments)(money, denominations);
49
59
  }
50
- }
51
- exports.CashPaymentImpl = CashPaymentImpl;
60
+ };
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ CashPaymentImpl
64
+ });
@@ -1,105 +1,83 @@
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/modules/Payment/cashRecommendationAlgorithm.ts
20
+ var cashRecommendationAlgorithm_exports = {};
21
+ __export(cashRecommendationAlgorithm_exports, {
22
+ CURRENCY_DENOMINATIONS: () => CURRENCY_DENOMINATIONS,
23
+ recommendOptimalPayments: () => recommendOptimalPayments
5
24
  });
6
- exports.CURRENCY_DENOMINATIONS = void 0;
7
- exports.recommendOptimalPayments = recommendOptimalPayments;
8
- /**
9
- * 现金支付推荐算法
10
- *
11
- * 核心原理:
12
- * 1. 每个推荐金额都应该是独立的最优组合
13
- * 2. 不推荐在已有最优解基础上添加额外面额的组合
14
- * 3. 优先推荐使用不同数量币种的组合
15
- * 4. 根据组合判断去重,避免扩展组合
16
- */
17
-
18
- /**
19
- * 常见国家货币面额配置
20
- */
21
- const CURRENCY_DENOMINATIONS = exports.CURRENCY_DENOMINATIONS = {
25
+ module.exports = __toCommonJS(cashRecommendationAlgorithm_exports);
26
+ var CURRENCY_DENOMINATIONS = {
22
27
  // 美元
23
- 'USD': [100, 50, 20, 10, 5, 1, 0.5, 0.25, 0.1, 0.05, 0.01],
28
+ "USD": [100, 50, 20, 10, 5, 1, 0.5, 0.25, 0.1, 0.05, 0.01],
24
29
  // 人民币
25
- 'CNY': [100, 50, 20, 10, 5, 1, 0.5, 0.1, 0.05, 0.01],
26
- 'RMB': [100, 50, 20, 10, 5, 1, 0.5, 0.1, 0.05, 0.01],
30
+ "CNY": [100, 50, 20, 10, 5, 1, 0.5, 0.1, 0.05, 0.01],
31
+ "RMB": [100, 50, 20, 10, 5, 1, 0.5, 0.1, 0.05, 0.01],
27
32
  // 欧元
28
- 'EUR': [500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01],
33
+ "EUR": [500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01],
29
34
  // 日元
30
- 'JPY': [10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1],
35
+ "JPY": [1e4, 5e3, 2e3, 1e3, 500, 100, 50, 10, 5, 1],
31
36
  // 英镑
32
- 'GBP': [50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01],
37
+ "GBP": [50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01],
33
38
  // 澳元
34
- 'AUD': [100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1],
39
+ "AUD": [100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1],
35
40
  // 加元
36
- 'CAD': [100, 50, 20, 10, 5, 2, 1, 0.25, 0.1, 0.05],
41
+ "CAD": [100, 50, 20, 10, 5, 2, 1, 0.25, 0.1, 0.05],
37
42
  // 港元
38
- 'HKD': [1000, 500, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1],
43
+ "HKD": [1e3, 500, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1],
39
44
  // 新台币
40
- 'TWD': [2000, 1000, 500, 200, 100, 50, 10, 5, 1],
45
+ "TWD": [2e3, 1e3, 500, 200, 100, 50, 10, 5, 1],
41
46
  // 韩元
42
- 'KRW': [50000, 10000, 5000, 1000, 500, 100, 50, 10, 5, 1],
47
+ "KRW": [5e4, 1e4, 5e3, 1e3, 500, 100, 50, 10, 5, 1],
43
48
  // 新加坡元
44
- 'SGD': [10000, 1000, 100, 50, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.01],
49
+ "SGD": [1e4, 1e3, 100, 50, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.01],
45
50
  // 瑞士法郎
46
- 'CHF': [1000, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05],
51
+ "CHF": [1e3, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05],
47
52
  // 默认通用面额(如果币种不在列表中)
48
- 'DEFAULT': [100, 50, 20, 10, 5, 1, 0.5, 0.25, 0.1, 0.05, 0.01]
53
+ "DEFAULT": [100, 50, 20, 10, 5, 1, 0.5, 0.25, 0.1, 0.05, 0.01]
49
54
  };
50
-
51
- /**
52
- * 支付组合类型定义
53
- */
54
-
55
- /**
56
- * 最优支付金额推荐算法
57
- * 推荐通过不同数量面额组合刚好足够支付的最小金额
58
- *
59
- * @param targetAmount 目标金额
60
- * @param denominations 币种面值数组
61
- * @returns 推荐支付金额数组
62
- */
63
55
  function recommendOptimalPayments(targetAmount, denominations) {
64
- // 参数验证
65
56
  if (targetAmount <= 0 || !isFinite(targetAmount) || isNaN(targetAmount)) {
66
57
  return [];
67
58
  }
68
59
  if (!denominations || !Array.isArray(denominations) || denominations.length === 0) {
69
60
  return [Math.ceil(targetAmount)];
70
61
  }
71
-
72
- // 过滤有效面额并限制搜索空间以提高性能
73
- const maxReasonableDenom = targetAmount * 5; // 适度限制搜索空间
74
- const validDenoms = denominations.filter(denom => denom > 0 && isFinite(denom) && !isNaN(denom) && denom <= maxReasonableDenom).slice(0, 8); // 限制面额数量以提高性能
75
-
62
+ const maxReasonableDenom = targetAmount * 5;
63
+ const validDenoms = denominations.filter((denom) => denom > 0 && isFinite(denom) && !isNaN(denom) && denom <= maxReasonableDenom).slice(0, 8);
76
64
  if (validDenoms.length === 0) {
77
- // 如果没有合适的面额,返回最接近的整数金额
78
65
  return [Math.ceil(targetAmount)];
79
66
  }
80
67
  try {
81
- // 处理精度问题,将金额转换为整数计算
82
- const precision = 100; // 假设最小单位是0.01
68
+ const precision = 100;
83
69
  const target = Math.round(targetAmount * precision);
84
- const denoms = validDenoms.map(d => Math.round(d * precision)).sort((a, b) => b - a);
85
-
86
- // 存储不同的支付组合方案
70
+ const denoms = validDenoms.map((d) => Math.round(d * precision)).sort((a, b) => b - a);
87
71
  const paymentOptions = [];
88
-
89
- // 首先尝试找到精确匹配的组合
90
72
  const exactCombination = findExactCombination(target, denoms, precision);
91
73
  if (exactCombination) {
92
74
  paymentOptions.push(exactCombination);
93
75
  }
94
-
95
- // 为了提高效率,我们将按币种数量来生成组合
96
- // 1币种组合:只用一种面额
97
76
  for (let i = 0; i < Math.min(denoms.length, 6); i++) {
98
77
  const denom = denoms[i];
99
78
  const count = Math.ceil(target / denom);
100
79
  const sum = count * denom;
101
80
  if (sum >= target && count <= 12) {
102
- // 限制硬币数量以提高性能
103
81
  paymentOptions.push({
104
82
  combination: Array(count).fill(denom / precision),
105
83
  sum: sum / precision,
@@ -108,23 +86,22 @@ function recommendOptimalPayments(targetAmount, denominations) {
108
86
  });
109
87
  }
110
88
  }
111
-
112
- // 2币种组合:使用两种面额(大幅限制搜索范围以提高性能)
113
89
  for (let i = 0; i < Math.min(denoms.length - 1, 5); i++) {
114
90
  for (let j = i + 1; j < Math.min(denoms.length, 6); j++) {
115
91
  const denom1 = denoms[i];
116
92
  const denom2 = denoms[j];
117
-
118
- // 大幅限制搜索范围,基于目标金额动态调整
119
93
  const maxCount1 = Math.min(Math.ceil(target / denom1) + 1, 8);
120
94
  const maxCount2 = Math.min(Math.ceil(target / denom2) + 1, 10);
121
95
  for (let count1 = 1; count1 <= maxCount1; count1++) {
122
96
  for (let count2 = 1; count2 <= maxCount2; count2++) {
123
97
  const sum = count1 * denom1 + count2 * denom2;
124
98
  if (sum >= target) {
125
- const combination = [...Array(count1).fill(denom1 / precision), ...Array(count2).fill(denom2 / precision)];
99
+ const combination = [
100
+ ...Array(count1).fill(denom1 / precision),
101
+ ...Array(count2).fill(denom2 / precision)
102
+ ];
126
103
  paymentOptions.push({
127
- combination: combination,
104
+ combination,
128
105
  sum: sum / precision,
129
106
  coinCount: count1 + count2,
130
107
  denomTypes: 2
@@ -134,16 +111,12 @@ function recommendOptimalPayments(targetAmount, denominations) {
134
111
  }
135
112
  }
136
113
  }
137
-
138
- // 3币种组合:使用三种面额(大幅限制搜索以提高效率)
139
114
  for (let i = 0; i < Math.min(denoms.length - 2, 3); i++) {
140
115
  for (let j = i + 1; j < Math.min(denoms.length - 1, 4); j++) {
141
116
  for (let k = j + 1; k < Math.min(denoms.length, 5); k++) {
142
117
  const denom1 = denoms[i];
143
118
  const denom2 = denoms[j];
144
119
  const denom3 = denoms[k];
145
-
146
- // 大幅限制搜索范围
147
120
  const maxCount1 = Math.min(Math.ceil(target / denom1) + 1, 5);
148
121
  const maxCount2 = Math.min(Math.ceil(target / denom2) + 1, 6);
149
122
  const maxCount3 = Math.min(Math.ceil(target / denom3) + 1, 8);
@@ -152,9 +125,13 @@ function recommendOptimalPayments(targetAmount, denominations) {
152
125
  for (let count3 = 1; count3 <= maxCount3; count3++) {
153
126
  const sum = count1 * denom1 + count2 * denom2 + count3 * denom3;
154
127
  if (sum >= target) {
155
- const combination = [...Array(count1).fill(denom1 / precision), ...Array(count2).fill(denom2 / precision), ...Array(count3).fill(denom3 / precision)];
128
+ const combination = [
129
+ ...Array(count1).fill(denom1 / precision),
130
+ ...Array(count2).fill(denom2 / precision),
131
+ ...Array(count3).fill(denom3 / precision)
132
+ ];
156
133
  paymentOptions.push({
157
- combination: combination,
134
+ combination,
158
135
  sum: sum / precision,
159
136
  coinCount: count1 + count2 + count3,
160
137
  denomTypes: 3
@@ -166,8 +143,6 @@ function recommendOptimalPayments(targetAmount, denominations) {
166
143
  }
167
144
  }
168
145
  }
169
-
170
- // 4币种组合:使用四种面额(极度限制搜索以提高性能)
171
146
  for (let i = 0; i < Math.min(denoms.length - 3, 2); i++) {
172
147
  for (let j = i + 1; j < Math.min(denoms.length - 2, 3); j++) {
173
148
  for (let k = j + 1; k < Math.min(denoms.length - 1, 4); k++) {
@@ -176,8 +151,6 @@ function recommendOptimalPayments(targetAmount, denominations) {
176
151
  const denom2 = denoms[j];
177
152
  const denom3 = denoms[k];
178
153
  const denom4 = denoms[l];
179
-
180
- // 极度限制搜索范围
181
154
  const maxCount1 = Math.min(Math.ceil(target / denom1) + 1, 3);
182
155
  const maxCount2 = Math.min(Math.ceil(target / denom2) + 1, 4);
183
156
  const maxCount3 = Math.min(Math.ceil(target / denom3) + 1, 5);
@@ -188,9 +161,14 @@ function recommendOptimalPayments(targetAmount, denominations) {
188
161
  for (let count4 = 1; count4 <= maxCount4; count4++) {
189
162
  const sum = count1 * denom1 + count2 * denom2 + count3 * denom3 + count4 * denom4;
190
163
  if (sum >= target) {
191
- const combination = [...Array(count1).fill(denom1 / precision), ...Array(count2).fill(denom2 / precision), ...Array(count3).fill(denom3 / precision), ...Array(count4).fill(denom4 / precision)];
164
+ const combination = [
165
+ ...Array(count1).fill(denom1 / precision),
166
+ ...Array(count2).fill(denom2 / precision),
167
+ ...Array(count3).fill(denom3 / precision),
168
+ ...Array(count4).fill(denom4 / precision)
169
+ ];
192
170
  paymentOptions.push({
193
- combination: combination,
171
+ combination,
194
172
  sum: sum / precision,
195
173
  coinCount: count1 + count2 + count3 + count4,
196
174
  denomTypes: 4
@@ -204,25 +182,17 @@ function recommendOptimalPayments(targetAmount, denominations) {
204
182
  }
205
183
  }
206
184
  }
207
-
208
- // 如果没有找到任何组合,提供默认建议
209
185
  if (paymentOptions.length === 0) {
210
- // 找到大于等于目标金额的最小面额
211
- const minValidDenom = validDenoms.find(denom => denom >= targetAmount);
186
+ const minValidDenom = validDenoms.find((denom) => denom >= targetAmount);
212
187
  if (minValidDenom) {
213
188
  return [minValidDenom];
214
189
  } else {
215
- // 使用最大面额的组合
216
190
  const maxDenom = Math.max(...validDenoms);
217
191
  const count = Math.ceil(targetAmount / maxDenom);
218
192
  return [count * maxDenom];
219
193
  }
220
194
  }
221
-
222
- // 移除重复和扩展组合
223
195
  const uniqueCombinations = removeDuplicateAndExtendedCombinations(paymentOptions, targetAmount);
224
-
225
- // 按币种类型数量排序,然后按总硬币数量排序,最后按金额排序
226
196
  uniqueCombinations.sort((a, b) => {
227
197
  if (a.denomTypes !== b.denomTypes) {
228
198
  return a.denomTypes - b.denomTypes;
@@ -232,12 +202,10 @@ function recommendOptimalPayments(targetAmount, denominations) {
232
202
  }
233
203
  return a.sum - b.sum;
234
204
  });
235
-
236
- // 按金额去重并返回推荐的支付金额
237
- const uniqueAmounts = new Set();
205
+ const uniqueAmounts = /* @__PURE__ */ new Set();
238
206
  const finalResults = [];
239
207
  for (const item of uniqueCombinations) {
240
- const roundedAmount = Math.round(item.sum * 100) / 100; // 处理浮点数精度
208
+ const roundedAmount = Math.round(item.sum * 100) / 100;
241
209
  if (!uniqueAmounts.has(roundedAmount) && finalResults.length < 10) {
242
210
  uniqueAmounts.add(roundedAmount);
243
211
  finalResults.push(roundedAmount);
@@ -245,19 +213,12 @@ function recommendOptimalPayments(targetAmount, denominations) {
245
213
  }
246
214
  return finalResults.sort((a, b) => a - b);
247
215
  } catch (error) {
248
- // 发生错误时返回安全的默认值
249
- console.warn('推荐支付金额计算出错:', error);
250
- // 返回最接近的整数金额作为兜底
216
+ console.warn("推荐支付金额计算出错:", error);
251
217
  const safeAmount = Math.ceil(targetAmount);
252
218
  return [targetAmount, safeAmount];
253
219
  }
254
220
  }
255
-
256
- /**
257
- * 尝试找到精确匹配目标金额的组合
258
- */
259
221
  function findExactCombination(target, denoms, precision) {
260
- // 简单的深度优先搜索,限制搜索深度
261
222
  function dfs(remaining, denomIndex, currentCombination) {
262
223
  if (remaining === 0) {
263
224
  return currentCombination;
@@ -266,8 +227,6 @@ function findExactCombination(target, denoms, precision) {
266
227
  return null;
267
228
  }
268
229
  const denom = denoms[denomIndex];
269
-
270
- // 尝试使用当前面额 0 到 maxCount 次
271
230
  const maxCount = Math.min(Math.floor(remaining / denom), 8);
272
231
  for (let count = maxCount; count >= 0; count--) {
273
232
  const newCombination = [...currentCombination, ...Array(count).fill(denom)];
@@ -282,23 +241,16 @@ function findExactCombination(target, denoms, precision) {
282
241
  if (exactMatch && exactMatch.length > 0) {
283
242
  const denomTypes = new Set(exactMatch).size;
284
243
  return {
285
- combination: exactMatch.map(d => d / precision),
244
+ combination: exactMatch.map((d) => d / precision),
286
245
  sum: target / precision,
287
246
  coinCount: exactMatch.length,
288
- denomTypes: denomTypes
247
+ denomTypes
289
248
  };
290
249
  }
291
250
  return null;
292
251
  }
293
-
294
- /**
295
- * 移除重复和扩展组合
296
- * 核心原理:如果组合A包含组合B的所有硬币,并且还有额外硬币,则A是B的扩展,应该被移除
297
- */
298
252
  function removeDuplicateAndExtendedCombinations(combinations, targetAmount) {
299
253
  const result = [];
300
-
301
- // 按币种类型数量、硬币数量、金额排序,确保较简单的组合在前面
302
254
  combinations.sort((a, b) => {
303
255
  if (a.denomTypes !== b.denomTypes) {
304
256
  return a.denomTypes - b.denomTypes;
@@ -311,27 +263,18 @@ function removeDuplicateAndExtendedCombinations(combinations, targetAmount) {
311
263
  for (let i = 0; i < combinations.length; i++) {
312
264
  const current = combinations[i];
313
265
  let shouldSkip = false;
314
-
315
- // 检查当前组合是否与已添加的组合重复或者是扩展
316
266
  for (let j = 0; j < result.length; j++) {
317
267
  const existing = result[j];
318
-
319
- // 如果完全相同,跳过
320
268
  if (isSameCombination(current.combination, existing.combination)) {
321
269
  shouldSkip = true;
322
270
  break;
323
271
  }
324
-
325
- // 如果当前组合是已存在组合的扩展,跳过
326
272
  if (isExtensionOf(current.combination, existing.combination)) {
327
273
  shouldSkip = true;
328
274
  break;
329
275
  }
330
276
  }
331
-
332
- // 检查是否有其他组合是当前组合的扩展,如果有,移除那些扩展
333
277
  if (!shouldSkip) {
334
- // 移除所有当前组合的扩展
335
278
  for (let j = result.length - 1; j >= 0; j--) {
336
279
  if (isExtensionOf(result[j].combination, current.combination)) {
337
280
  result.splice(j, 1);
@@ -342,34 +285,23 @@ function removeDuplicateAndExtendedCombinations(combinations, targetAmount) {
342
285
  }
343
286
  return result;
344
287
  }
345
-
346
- /**
347
- * 检查组合A是否是组合B的扩展(即A包含B的所有硬币,并且还有额外的硬币)
348
- */
349
288
  function isExtensionOf(combinationA, combinationB) {
350
- // 如果A的硬币数量少于等于B,A不可能是B的扩展
351
289
  if (combinationA.length <= combinationB.length) {
352
290
  return false;
353
291
  }
354
-
355
- // 统计每个面额的数量
356
292
  const countA = {};
357
293
  const countB = {};
358
- combinationA.forEach(coin => {
294
+ combinationA.forEach((coin) => {
359
295
  countA[coin] = (countA[coin] || 0) + 1;
360
296
  });
361
- combinationB.forEach(coin => {
297
+ combinationB.forEach((coin) => {
362
298
  countB[coin] = (countB[coin] || 0) + 1;
363
299
  });
364
-
365
- // 检查B的所有面额在A中是否都有足够的数量
366
300
  for (const coin in countB) {
367
301
  if (!countA[coin] || countA[coin] < countB[coin]) {
368
302
  return false;
369
303
  }
370
304
  }
371
-
372
- // 检查A是否有B没有的额外硬币
373
305
  let hasExtra = false;
374
306
  for (const coin in countA) {
375
307
  if (countA[coin] > (countB[coin] || 0)) {
@@ -379,24 +311,18 @@ function isExtensionOf(combinationA, combinationB) {
379
311
  }
380
312
  return hasExtra;
381
313
  }
382
-
383
- /**
384
- * 检查两个组合是否本质相同(相同的面额组合)
385
- */
386
314
  function isSameCombination(combinationA, combinationB) {
387
315
  if (combinationA.length !== combinationB.length) {
388
316
  return false;
389
317
  }
390
318
  const countA = {};
391
319
  const countB = {};
392
- combinationA.forEach(coin => {
320
+ combinationA.forEach((coin) => {
393
321
  countA[coin] = (countA[coin] || 0) + 1;
394
322
  });
395
- combinationB.forEach(coin => {
323
+ combinationB.forEach((coin) => {
396
324
  countB[coin] = (countB[coin] || 0) + 1;
397
325
  });
398
-
399
- // 检查两个组合是否有相同的面额和数量
400
326
  for (const coin in countA) {
401
327
  if (countA[coin] !== (countB[coin] || 0)) {
402
328
  return false;
@@ -408,4 +334,9 @@ function isSameCombination(combinationA, combinationB) {
408
334
  }
409
335
  }
410
336
  return true;
411
- }
337
+ }
338
+ // Annotate the CommonJS export names for ESM import in node:
339
+ 0 && (module.exports = {
340
+ CURRENCY_DENOMINATIONS,
341
+ recommendOptimalPayments
342
+ });
@@ -1,37 +1,51 @@
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/modules/Payment/eftpos.ts
20
+ var eftpos_exports = {};
21
+ __export(eftpos_exports, {
22
+ EftposPaymentImpl: () => EftposPaymentImpl
5
23
  });
6
- exports.EftposPaymentImpl = void 0;
7
- /**
8
- * Eftpos支付实现
9
- */
10
- class EftposPaymentImpl {
24
+ module.exports = __toCommonJS(eftpos_exports);
25
+ var EftposPaymentImpl = class {
11
26
  constructor(paymentModule) {
12
27
  this.paymentModule = paymentModule;
13
28
  }
14
29
  async processEftposPayment(amount, orderUuid) {
15
30
  const eftposMethod = await this.paymentModule.getEftposPaymentMethod();
16
31
  if (!eftposMethod) {
17
- throw new Error('Eftpos支付方式未找到');
32
+ throw new Error("Eftpos支付方式未找到");
18
33
  }
19
-
20
- // 这里应该调用实际的Eftpos组件
21
- // 假设Eftpos支付成功,创建支付项
22
34
  const paymentItem = {
23
35
  amount: amount.toString(),
24
36
  code: eftposMethod.code,
25
37
  custom_payment_id: eftposMethod.id,
26
38
  name: eftposMethod.name,
27
39
  type: eftposMethod.type,
28
- voucher_id: ''
40
+ voucher_id: ""
29
41
  };
30
42
  await this.paymentModule.addPaymentItemAsync(orderUuid, paymentItem);
31
43
  }
32
44
  async checkDeviceStatus() {
33
- // 检查Eftpos设备状态的逻辑
34
45
  return true;
35
46
  }
36
- }
37
- exports.EftposPaymentImpl = EftposPaymentImpl;
47
+ };
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ EftposPaymentImpl
51
+ });