@pisell/pisellos 3.0.76 → 3.0.78

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 (314) hide show
  1. package/dist/core/index.js +1 -2
  2. package/dist/effects/index.d.ts +3 -5
  3. package/dist/effects/index.js +8 -40
  4. package/dist/modules/Account/index.js +3 -2
  5. package/dist/modules/AccountList/index.d.ts +1 -7
  6. package/dist/modules/AccountList/index.js +14 -81
  7. package/dist/modules/AccountList/types.d.ts +0 -28
  8. package/dist/modules/AccountList/types.js +0 -8
  9. package/dist/modules/BaseModule.d.ts +0 -3
  10. package/dist/modules/BaseModule.js +0 -15
  11. package/dist/modules/Cart/index.d.ts +0 -1
  12. package/dist/modules/Cart/index.js +1 -2
  13. package/dist/modules/Date/types.d.ts +3 -1
  14. package/dist/modules/Discount/index.d.ts +0 -1
  15. package/dist/modules/Discount/index.js +1 -1
  16. package/dist/modules/Guests/index.js +9 -9
  17. package/dist/modules/Order/index.d.ts +1 -25
  18. package/dist/modules/Order/index.js +3 -224
  19. package/dist/modules/Order/types.d.ts +0 -45
  20. package/dist/modules/Order/types.js +0 -8
  21. package/dist/modules/Order/utils.js +1 -1
  22. package/dist/modules/Payment/index.d.ts +9 -184
  23. package/dist/modules/Payment/index.js +109 -2084
  24. package/dist/modules/Payment/types.d.ts +30 -772
  25. package/dist/modules/Payment/types.js +12 -236
  26. package/dist/modules/ProductList/index.d.ts +1 -12
  27. package/dist/modules/ProductList/index.js +6 -29
  28. package/dist/modules/Resource/index.js +1 -1
  29. package/dist/modules/Rules/index.d.ts +4 -3
  30. package/dist/modules/Rules/index.js +121 -78
  31. package/dist/modules/Rules/types.d.ts +6 -1
  32. package/dist/modules/Rules/types.js +8 -0
  33. package/dist/modules/Schedule/index.d.ts +0 -9
  34. package/dist/modules/Schedule/index.js +0 -77
  35. package/dist/modules/index.d.ts +0 -1
  36. package/dist/modules/index.js +0 -1
  37. package/dist/plugins/window.d.ts +0 -1
  38. package/dist/solution/BookingByStep/index.d.ts +17 -0
  39. package/dist/solution/BookingByStep/index.js +525 -190
  40. package/dist/solution/BookingByStep/utils/products.d.ts +0 -6
  41. package/dist/solution/BookingByStep/utils/products.js +0 -10
  42. package/dist/solution/BookingByStep/utils/resources.js +4 -0
  43. package/dist/solution/BuyTickets/index.js +8 -7
  44. package/dist/solution/ShopDiscount/index.d.ts +12 -10
  45. package/dist/solution/ShopDiscount/index.js +64 -110
  46. package/dist/solution/ShopDiscount/types.d.ts +0 -8
  47. package/dist/solution/ShopDiscount/utils.js +1 -0
  48. package/dist/solution/index.d.ts +0 -2
  49. package/dist/solution/index.js +1 -3
  50. package/dist/types/index.d.ts +1 -4
  51. package/lib/core/index.js +1 -1
  52. package/lib/effects/index.d.ts +3 -5
  53. package/lib/effects/index.js +1 -17
  54. package/lib/modules/Account/index.js +3 -2
  55. package/lib/modules/AccountList/index.d.ts +1 -7
  56. package/lib/modules/AccountList/index.js +0 -27
  57. package/lib/modules/AccountList/types.d.ts +0 -28
  58. package/lib/modules/BaseModule.d.ts +0 -3
  59. package/lib/modules/BaseModule.js +0 -9
  60. package/lib/modules/Cart/index.d.ts +0 -1
  61. package/lib/modules/Cart/index.js +2 -5
  62. package/lib/modules/Date/types.d.ts +3 -1
  63. package/lib/modules/Discount/index.d.ts +0 -1
  64. package/lib/modules/Discount/index.js +1 -1
  65. package/lib/modules/Guests/index.js +9 -9
  66. package/lib/modules/Order/index.d.ts +1 -25
  67. package/lib/modules/Order/index.js +1 -186
  68. package/lib/modules/Order/types.d.ts +0 -45
  69. package/lib/modules/Order/utils.js +1 -1
  70. package/lib/modules/Payment/index.d.ts +9 -184
  71. package/lib/modules/Payment/index.js +51 -1084
  72. package/lib/modules/Payment/types.d.ts +30 -772
  73. package/lib/modules/Payment/types.js +6 -79
  74. package/lib/modules/ProductList/index.d.ts +1 -12
  75. package/lib/modules/ProductList/index.js +5 -31
  76. package/lib/modules/Resource/index.js +1 -1
  77. package/lib/modules/Rules/index.d.ts +4 -3
  78. package/lib/modules/Rules/index.js +64 -43
  79. package/lib/modules/Rules/types.d.ts +6 -1
  80. package/lib/modules/Rules/types.js +11 -2
  81. package/lib/modules/Schedule/index.d.ts +0 -9
  82. package/lib/modules/Schedule/index.js +0 -60
  83. package/lib/modules/index.d.ts +0 -1
  84. package/lib/modules/index.js +0 -2
  85. package/lib/plugins/window.d.ts +0 -1
  86. package/lib/solution/BookingByStep/index.d.ts +17 -0
  87. package/lib/solution/BookingByStep/index.js +325 -60
  88. package/lib/solution/BookingByStep/utils/products.d.ts +0 -6
  89. package/lib/solution/BookingByStep/utils/products.js +2 -8
  90. package/lib/solution/BookingByStep/utils/resources.js +4 -1
  91. package/lib/solution/BuyTickets/index.js +8 -7
  92. package/lib/solution/ShopDiscount/index.d.ts +12 -10
  93. package/lib/solution/ShopDiscount/index.js +30 -51
  94. package/lib/solution/ShopDiscount/types.d.ts +0 -8
  95. package/lib/solution/index.d.ts +0 -2
  96. package/lib/solution/index.js +1 -5
  97. package/lib/types/index.d.ts +1 -4
  98. package/package.json +1 -3
  99. package/dist/modules/Customer/constants.d.ts +0 -7
  100. package/dist/modules/Customer/constants.js +0 -12
  101. package/dist/modules/Customer/index.d.ts +0 -122
  102. package/dist/modules/Customer/index.js +0 -696
  103. package/dist/modules/Customer/types.d.ts +0 -146
  104. package/dist/modules/Customer/types.js +0 -41
  105. package/dist/modules/Payment/cash.d.ts +0 -19
  106. package/dist/modules/Payment/cash.js +0 -97
  107. package/dist/modules/Payment/cashRecommendationAlgorithm.d.ts +0 -22
  108. package/dist/modules/Payment/cashRecommendationAlgorithm.js +0 -423
  109. package/dist/modules/Payment/eftpos.d.ts +0 -11
  110. package/dist/modules/Payment/eftpos.js +0 -80
  111. package/dist/modules/Payment/mx51.d.ts +0 -0
  112. package/dist/modules/Payment/mx51.js +0 -0
  113. package/dist/modules/Payment/utils.d.ts +0 -17
  114. package/dist/modules/Payment/utils.js +0 -62
  115. package/dist/modules/Payment/walletpass.d.ts +0 -99
  116. package/dist/modules/Payment/walletpass.js +0 -711
  117. package/dist/plugins/app-types/app/app.d.ts +0 -83
  118. package/dist/plugins/app-types/app/const.d.ts +0 -4
  119. package/dist/plugins/app-types/app/index.d.ts +0 -14
  120. package/dist/plugins/app-types/applicationManager/application.d.ts +0 -50
  121. package/dist/plugins/app-types/applicationManager/index.d.ts +0 -13
  122. package/dist/plugins/app-types/config.d.ts +0 -3
  123. package/dist/plugins/app-types/cookie/index.d.ts +0 -13
  124. package/dist/plugins/app-types/data/index.d.ts +0 -8
  125. package/dist/plugins/app-types/history/config.d.ts +0 -24
  126. package/dist/plugins/app-types/history/index.d.ts +0 -20
  127. package/dist/plugins/app-types/history/type.d.ts +0 -2
  128. package/dist/plugins/app-types/hooks/index.d.ts +0 -12
  129. package/dist/plugins/app-types/hooks/useDelayedValue/index.d.ts +0 -2
  130. package/dist/plugins/app-types/hooks/useDispatch/index.d.ts +0 -2
  131. package/dist/plugins/app-types/hooks/useLowCode/index.d.ts +0 -13
  132. package/dist/plugins/app-types/hooks/useStore/index.d.ts +0 -6
  133. package/dist/plugins/app-types/index.d.ts +0 -6
  134. package/dist/plugins/app-types/indexDB/index.d.ts +0 -178
  135. package/dist/plugins/app-types/locales/en.d.ts +0 -3
  136. package/dist/plugins/app-types/locales/index.d.ts +0 -37
  137. package/dist/plugins/app-types/locales/original.d.ts +0 -3
  138. package/dist/plugins/app-types/locales/type.d.ts +0 -19
  139. package/dist/plugins/app-types/locales/zh-CN.d.ts +0 -3
  140. package/dist/plugins/app-types/locales/zh-HK.d.ts +0 -3
  141. package/dist/plugins/app-types/logger/feishu.d.ts +0 -11
  142. package/dist/plugins/app-types/logger/index.d.ts +0 -122
  143. package/dist/plugins/app-types/menuManager/hooks.d.ts +0 -17
  144. package/dist/plugins/app-types/menuManager/index.d.ts +0 -28
  145. package/dist/plugins/app-types/models/global.d.ts +0 -32
  146. package/dist/plugins/app-types/models/index.d.ts +0 -45
  147. package/dist/plugins/app-types/models/type.d.ts +0 -2
  148. package/dist/plugins/app-types/package.json +0 -15
  149. package/dist/plugins/app-types/plugin/index.d.ts +0 -0
  150. package/dist/plugins/app-types/pubsub/example.d.ts +0 -5
  151. package/dist/plugins/app-types/pubsub/index.d.ts +0 -63
  152. package/dist/plugins/app-types/request/cache.d.ts +0 -46
  153. package/dist/plugins/app-types/request/cancelToken.d.ts +0 -38
  154. package/dist/plugins/app-types/request/config.d.ts +0 -3
  155. package/dist/plugins/app-types/request/constants.d.ts +0 -2
  156. package/dist/plugins/app-types/request/index.d.ts +0 -24
  157. package/dist/plugins/app-types/request/pisell2Request.d.ts +0 -6
  158. package/dist/plugins/app-types/request/type.d.ts +0 -41
  159. package/dist/plugins/app-types/request/utils.d.ts +0 -46
  160. package/dist/plugins/app-types/routes/config.d.ts +0 -7
  161. package/dist/plugins/app-types/routes/index.d.ts +0 -28
  162. package/dist/plugins/app-types/socket/components/SocketMonitorPage.d.ts +0 -6
  163. package/dist/plugins/app-types/socket/components/index.d.ts +0 -2
  164. package/dist/plugins/app-types/socket/constants.d.ts +0 -33
  165. package/dist/plugins/app-types/socket/events.d.ts +0 -31
  166. package/dist/plugins/app-types/socket/heartbeat.d.ts +0 -66
  167. package/dist/plugins/app-types/socket/index.d.ts +0 -61
  168. package/dist/plugins/app-types/socket/monitor.d.ts +0 -169
  169. package/dist/plugins/app-types/socket/reconnect.d.ts +0 -61
  170. package/dist/plugins/app-types/socket/socket.d.ts +0 -129
  171. package/dist/plugins/app-types/socket/types.d.ts +0 -85
  172. package/dist/plugins/app-types/storage/index.d.ts +0 -17
  173. package/dist/plugins/app-types/tasks/index.d.ts +0 -77
  174. package/dist/plugins/app-types/tasks/type.d.ts +0 -62
  175. package/dist/plugins/app-types/tasks/useTasks.d.ts +0 -5
  176. package/dist/plugins/app-types/type.d.ts +0 -2
  177. package/dist/plugins/app-types/variables/VariablesProvider.d.ts +0 -7
  178. package/dist/plugins/app-types/variables/config.d.ts +0 -3
  179. package/dist/plugins/app-types/variables/index.d.ts +0 -6
  180. package/dist/plugins/app-types/variables/type.d.ts +0 -2
  181. package/dist/plugins/app-types/website/index.d.ts +0 -6
  182. package/dist/plugins/app.d.ts +0 -8
  183. package/dist/plugins/app.js +0 -1
  184. package/dist/solution/BookingTicket/index.d.ts +0 -184
  185. package/dist/solution/BookingTicket/index.js +0 -698
  186. package/dist/solution/BookingTicket/types.d.ts +0 -68
  187. package/dist/solution/BookingTicket/types.js +0 -43
  188. package/dist/solution/BookingTicket/utils/scan/cloudSearch.d.ts +0 -22
  189. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +0 -159
  190. package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +0 -22
  191. package/dist/solution/BookingTicket/utils/scan/handleScan.js +0 -189
  192. package/dist/solution/BookingTicket/utils/scan/index.d.ts +0 -85
  193. package/dist/solution/BookingTicket/utils/scan/index.js +0 -294
  194. package/dist/solution/BookingTicket/utils/scan/scanCache.d.ts +0 -78
  195. package/dist/solution/BookingTicket/utils/scan/scanCache.js +0 -305
  196. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  197. package/dist/solution/Checkout/index.d.ts +0 -432
  198. package/dist/solution/Checkout/index.js +0 -4452
  199. package/dist/solution/Checkout/types.d.ts +0 -727
  200. package/dist/solution/Checkout/types.js +0 -104
  201. package/dist/solution/Checkout/utils/index.d.ts +0 -121
  202. package/dist/solution/Checkout/utils/index.js +0 -511
  203. package/dist/utils/task.d.ts +0 -40
  204. package/dist/utils/task.js +0 -171
  205. package/dist/utils/watch.d.ts +0 -102
  206. package/dist/utils/watch.js +0 -294
  207. package/lib/modules/Customer/constants.d.ts +0 -7
  208. package/lib/modules/Customer/constants.js +0 -39
  209. package/lib/modules/Customer/index.d.ts +0 -122
  210. package/lib/modules/Customer/index.js +0 -439
  211. package/lib/modules/Customer/types.d.ts +0 -146
  212. package/lib/modules/Customer/types.js +0 -37
  213. package/lib/modules/Payment/cash.d.ts +0 -19
  214. package/lib/modules/Payment/cash.js +0 -64
  215. package/lib/modules/Payment/cashRecommendationAlgorithm.d.ts +0 -22
  216. package/lib/modules/Payment/cashRecommendationAlgorithm.js +0 -342
  217. package/lib/modules/Payment/eftpos.d.ts +0 -11
  218. package/lib/modules/Payment/eftpos.js +0 -51
  219. package/lib/modules/Payment/mx51.d.ts +0 -0
  220. package/lib/modules/Payment/mx51.js +0 -0
  221. package/lib/modules/Payment/utils.d.ts +0 -17
  222. package/lib/modules/Payment/utils.js +0 -67
  223. package/lib/modules/Payment/walletpass.d.ts +0 -99
  224. package/lib/modules/Payment/walletpass.js +0 -484
  225. package/lib/plugins/app-types/app/app.d.ts +0 -83
  226. package/lib/plugins/app-types/app/const.d.ts +0 -4
  227. package/lib/plugins/app-types/app/index.d.ts +0 -14
  228. package/lib/plugins/app-types/applicationManager/application.d.ts +0 -50
  229. package/lib/plugins/app-types/applicationManager/index.d.ts +0 -13
  230. package/lib/plugins/app-types/config.d.ts +0 -3
  231. package/lib/plugins/app-types/cookie/index.d.ts +0 -13
  232. package/lib/plugins/app-types/data/index.d.ts +0 -8
  233. package/lib/plugins/app-types/history/config.d.ts +0 -24
  234. package/lib/plugins/app-types/history/index.d.ts +0 -20
  235. package/lib/plugins/app-types/history/type.d.ts +0 -2
  236. package/lib/plugins/app-types/hooks/index.d.ts +0 -12
  237. package/lib/plugins/app-types/hooks/useDelayedValue/index.d.ts +0 -2
  238. package/lib/plugins/app-types/hooks/useDispatch/index.d.ts +0 -2
  239. package/lib/plugins/app-types/hooks/useLowCode/index.d.ts +0 -13
  240. package/lib/plugins/app-types/hooks/useStore/index.d.ts +0 -6
  241. package/lib/plugins/app-types/index.d.ts +0 -6
  242. package/lib/plugins/app-types/indexDB/index.d.ts +0 -178
  243. package/lib/plugins/app-types/locales/en.d.ts +0 -3
  244. package/lib/plugins/app-types/locales/index.d.ts +0 -37
  245. package/lib/plugins/app-types/locales/original.d.ts +0 -3
  246. package/lib/plugins/app-types/locales/type.d.ts +0 -19
  247. package/lib/plugins/app-types/locales/zh-CN.d.ts +0 -3
  248. package/lib/plugins/app-types/locales/zh-HK.d.ts +0 -3
  249. package/lib/plugins/app-types/logger/feishu.d.ts +0 -11
  250. package/lib/plugins/app-types/logger/index.d.ts +0 -122
  251. package/lib/plugins/app-types/menuManager/hooks.d.ts +0 -17
  252. package/lib/plugins/app-types/menuManager/index.d.ts +0 -28
  253. package/lib/plugins/app-types/models/global.d.ts +0 -32
  254. package/lib/plugins/app-types/models/index.d.ts +0 -45
  255. package/lib/plugins/app-types/models/type.d.ts +0 -2
  256. package/lib/plugins/app-types/package.json +0 -15
  257. package/lib/plugins/app-types/plugin/index.d.ts +0 -0
  258. package/lib/plugins/app-types/pubsub/example.d.ts +0 -5
  259. package/lib/plugins/app-types/pubsub/index.d.ts +0 -63
  260. package/lib/plugins/app-types/request/cache.d.ts +0 -46
  261. package/lib/plugins/app-types/request/cancelToken.d.ts +0 -38
  262. package/lib/plugins/app-types/request/config.d.ts +0 -3
  263. package/lib/plugins/app-types/request/constants.d.ts +0 -2
  264. package/lib/plugins/app-types/request/index.d.ts +0 -24
  265. package/lib/plugins/app-types/request/pisell2Request.d.ts +0 -6
  266. package/lib/plugins/app-types/request/type.d.ts +0 -41
  267. package/lib/plugins/app-types/request/utils.d.ts +0 -46
  268. package/lib/plugins/app-types/routes/config.d.ts +0 -7
  269. package/lib/plugins/app-types/routes/index.d.ts +0 -28
  270. package/lib/plugins/app-types/socket/components/SocketMonitorPage.d.ts +0 -6
  271. package/lib/plugins/app-types/socket/components/index.d.ts +0 -2
  272. package/lib/plugins/app-types/socket/constants.d.ts +0 -33
  273. package/lib/plugins/app-types/socket/events.d.ts +0 -31
  274. package/lib/plugins/app-types/socket/heartbeat.d.ts +0 -66
  275. package/lib/plugins/app-types/socket/index.d.ts +0 -61
  276. package/lib/plugins/app-types/socket/monitor.d.ts +0 -169
  277. package/lib/plugins/app-types/socket/reconnect.d.ts +0 -61
  278. package/lib/plugins/app-types/socket/socket.d.ts +0 -129
  279. package/lib/plugins/app-types/socket/types.d.ts +0 -85
  280. package/lib/plugins/app-types/storage/index.d.ts +0 -17
  281. package/lib/plugins/app-types/tasks/index.d.ts +0 -77
  282. package/lib/plugins/app-types/tasks/type.d.ts +0 -62
  283. package/lib/plugins/app-types/tasks/useTasks.d.ts +0 -5
  284. package/lib/plugins/app-types/type.d.ts +0 -2
  285. package/lib/plugins/app-types/variables/VariablesProvider.d.ts +0 -7
  286. package/lib/plugins/app-types/variables/config.d.ts +0 -3
  287. package/lib/plugins/app-types/variables/index.d.ts +0 -6
  288. package/lib/plugins/app-types/variables/type.d.ts +0 -2
  289. package/lib/plugins/app-types/website/index.d.ts +0 -6
  290. package/lib/plugins/app.d.ts +0 -8
  291. package/lib/plugins/app.js +0 -17
  292. package/lib/solution/BookingTicket/index.d.ts +0 -184
  293. package/lib/solution/BookingTicket/index.js +0 -426
  294. package/lib/solution/BookingTicket/types.d.ts +0 -68
  295. package/lib/solution/BookingTicket/types.js +0 -72
  296. package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +0 -22
  297. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +0 -117
  298. package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +0 -22
  299. package/lib/solution/BookingTicket/utils/scan/handleScan.js +0 -132
  300. package/lib/solution/BookingTicket/utils/scan/index.d.ts +0 -85
  301. package/lib/solution/BookingTicket/utils/scan/index.js +0 -216
  302. package/lib/solution/BookingTicket/utils/scan/scanCache.d.ts +0 -78
  303. package/lib/solution/BookingTicket/utils/scan/scanCache.js +0 -231
  304. package/lib/solution/Checkout/appointmentDemo.json +0 -1
  305. package/lib/solution/Checkout/index.d.ts +0 -432
  306. package/lib/solution/Checkout/index.js +0 -2776
  307. package/lib/solution/Checkout/types.d.ts +0 -727
  308. package/lib/solution/Checkout/types.js +0 -63
  309. package/lib/solution/Checkout/utils/index.d.ts +0 -121
  310. package/lib/solution/Checkout/utils/index.js +0 -362
  311. package/lib/utils/task.d.ts +0 -40
  312. package/lib/utils/task.js +0 -109
  313. package/lib/utils/watch.d.ts +0 -102
  314. package/lib/utils/watch.js +0 -217
@@ -1,423 +0,0 @@
1
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
- /**
8
- * 现金支付推荐算法
9
- *
10
- * 核心原理:
11
- * 1. 每个推荐金额都应该是独立的最优组合
12
- * 2. 不推荐在已有最优解基础上添加额外面额的组合
13
- * 3. 优先推荐使用不同数量币种的组合
14
- * 4. 根据组合判断去重,避免扩展组合
15
- */
16
-
17
- /**
18
- * 常见国家货币面额配置
19
- */
20
- export var CURRENCY_DENOMINATIONS = {
21
- // 美元
22
- 'USD': [100, 50, 20, 10, 5, 1, 0.5, 0.25, 0.1, 0.05, 0.01],
23
- // 人民币
24
- 'CNY': [100, 50, 20, 10, 5, 1, 0.5, 0.1, 0.05, 0.01],
25
- 'RMB': [100, 50, 20, 10, 5, 1, 0.5, 0.1, 0.05, 0.01],
26
- // 欧元
27
- 'EUR': [500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01],
28
- // 日元
29
- 'JPY': [10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1],
30
- // 英镑
31
- 'GBP': [50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01],
32
- // 澳元
33
- 'AUD': [100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1],
34
- // 加元
35
- 'CAD': [100, 50, 20, 10, 5, 2, 1, 0.25, 0.1, 0.05],
36
- // 港元
37
- 'HKD': [1000, 500, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1],
38
- // 新台币
39
- 'TWD': [2000, 1000, 500, 200, 100, 50, 10, 5, 1],
40
- // 韩元
41
- 'KRW': [50000, 10000, 5000, 1000, 500, 100, 50, 10, 5, 1],
42
- // 新加坡元
43
- 'SGD': [10000, 1000, 100, 50, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.01],
44
- // 瑞士法郎
45
- 'CHF': [1000, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05],
46
- // 默认通用面额(如果币种不在列表中)
47
- 'DEFAULT': [100, 50, 20, 10, 5, 1, 0.5, 0.25, 0.1, 0.05, 0.01]
48
- };
49
-
50
- /**
51
- * 支付组合类型定义
52
- */
53
-
54
- /**
55
- * 最优支付金额推荐算法
56
- * 推荐通过不同数量面额组合刚好足够支付的最小金额
57
- *
58
- * @param targetAmount 目标金额
59
- * @param denominations 币种面值数组
60
- * @returns 推荐支付金额数组
61
- */
62
- export function recommendOptimalPayments(targetAmount, denominations) {
63
- // 参数验证
64
- if (targetAmount <= 0 || !isFinite(targetAmount) || isNaN(targetAmount)) {
65
- return [];
66
- }
67
- if (!denominations || !Array.isArray(denominations) || denominations.length === 0) {
68
- return [Math.ceil(targetAmount)];
69
- }
70
-
71
- // 过滤有效面额并限制搜索空间以提高性能
72
- var maxReasonableDenom = targetAmount * 5; // 适度限制搜索空间
73
- var validDenoms = denominations.filter(function (denom) {
74
- return denom > 0 && isFinite(denom) && !isNaN(denom) && denom <= maxReasonableDenom;
75
- }).slice(0, 8); // 限制面额数量以提高性能
76
-
77
- if (validDenoms.length === 0) {
78
- // 如果没有合适的面额,返回最接近的整数金额
79
- return [Math.ceil(targetAmount)];
80
- }
81
- try {
82
- // 处理精度问题,将金额转换为整数计算
83
- var precision = 100; // 假设最小单位是0.01
84
- var target = Math.round(targetAmount * precision);
85
- var denoms = validDenoms.map(function (d) {
86
- return Math.round(d * precision);
87
- }).sort(function (a, b) {
88
- return b - a;
89
- });
90
-
91
- // 存储不同的支付组合方案
92
- var paymentOptions = [];
93
-
94
- // 首先尝试找到精确匹配的组合
95
- var exactCombination = findExactCombination(target, denoms, precision);
96
- if (exactCombination) {
97
- paymentOptions.push(exactCombination);
98
- }
99
-
100
- // 为了提高效率,我们将按币种数量来生成组合
101
- // 1币种组合:只用一种面额
102
- for (var i = 0; i < Math.min(denoms.length, 6); i++) {
103
- var denom = denoms[i];
104
- var count = Math.ceil(target / denom);
105
- var sum = count * denom;
106
- if (sum >= target && count <= 12) {
107
- // 限制硬币数量以提高性能
108
- paymentOptions.push({
109
- combination: Array(count).fill(denom / precision),
110
- sum: sum / precision,
111
- coinCount: count,
112
- denomTypes: 1
113
- });
114
- }
115
- }
116
-
117
- // 2币种组合:使用两种面额(大幅限制搜索范围以提高性能)
118
- for (var _i = 0; _i < Math.min(denoms.length - 1, 5); _i++) {
119
- for (var j = _i + 1; j < Math.min(denoms.length, 6); j++) {
120
- var denom1 = denoms[_i];
121
- var denom2 = denoms[j];
122
-
123
- // 大幅限制搜索范围,基于目标金额动态调整
124
- var maxCount1 = Math.min(Math.ceil(target / denom1) + 1, 8);
125
- var maxCount2 = Math.min(Math.ceil(target / denom2) + 1, 10);
126
- for (var count1 = 1; count1 <= maxCount1; count1++) {
127
- for (var count2 = 1; count2 <= maxCount2; count2++) {
128
- var _sum = count1 * denom1 + count2 * denom2;
129
- if (_sum >= target) {
130
- var combination = [].concat(_toConsumableArray(Array(count1).fill(denom1 / precision)), _toConsumableArray(Array(count2).fill(denom2 / precision)));
131
- paymentOptions.push({
132
- combination: combination,
133
- sum: _sum / precision,
134
- coinCount: count1 + count2,
135
- denomTypes: 2
136
- });
137
- }
138
- }
139
- }
140
- }
141
- }
142
-
143
- // 3币种组合:使用三种面额(大幅限制搜索以提高效率)
144
- for (var _i2 = 0; _i2 < Math.min(denoms.length - 2, 3); _i2++) {
145
- for (var _j = _i2 + 1; _j < Math.min(denoms.length - 1, 4); _j++) {
146
- for (var k = _j + 1; k < Math.min(denoms.length, 5); k++) {
147
- var _denom = denoms[_i2];
148
- var _denom2 = denoms[_j];
149
- var denom3 = denoms[k];
150
-
151
- // 大幅限制搜索范围
152
- var _maxCount = Math.min(Math.ceil(target / _denom) + 1, 5);
153
- var _maxCount2 = Math.min(Math.ceil(target / _denom2) + 1, 6);
154
- var maxCount3 = Math.min(Math.ceil(target / denom3) + 1, 8);
155
- for (var _count = 1; _count <= _maxCount; _count++) {
156
- for (var _count2 = 1; _count2 <= _maxCount2; _count2++) {
157
- for (var count3 = 1; count3 <= maxCount3; count3++) {
158
- var _sum2 = _count * _denom + _count2 * _denom2 + count3 * denom3;
159
- if (_sum2 >= target) {
160
- var _combination = [].concat(_toConsumableArray(Array(_count).fill(_denom / precision)), _toConsumableArray(Array(_count2).fill(_denom2 / precision)), _toConsumableArray(Array(count3).fill(denom3 / precision)));
161
- paymentOptions.push({
162
- combination: _combination,
163
- sum: _sum2 / precision,
164
- coinCount: _count + _count2 + count3,
165
- denomTypes: 3
166
- });
167
- }
168
- }
169
- }
170
- }
171
- }
172
- }
173
- }
174
-
175
- // 4币种组合:使用四种面额(极度限制搜索以提高性能)
176
- for (var _i3 = 0; _i3 < Math.min(denoms.length - 3, 2); _i3++) {
177
- for (var _j2 = _i3 + 1; _j2 < Math.min(denoms.length - 2, 3); _j2++) {
178
- for (var _k = _j2 + 1; _k < Math.min(denoms.length - 1, 4); _k++) {
179
- for (var l = _k + 1; l < Math.min(denoms.length, 5); l++) {
180
- var _denom3 = denoms[_i3];
181
- var _denom4 = denoms[_j2];
182
- var _denom5 = denoms[_k];
183
- var denom4 = denoms[l];
184
-
185
- // 极度限制搜索范围
186
- var _maxCount3 = Math.min(Math.ceil(target / _denom3) + 1, 3);
187
- var _maxCount4 = Math.min(Math.ceil(target / _denom4) + 1, 4);
188
- var _maxCount5 = Math.min(Math.ceil(target / _denom5) + 1, 5);
189
- var maxCount4 = Math.min(Math.ceil(target / denom4) + 1, 6);
190
- for (var _count3 = 1; _count3 <= _maxCount3; _count3++) {
191
- for (var _count4 = 1; _count4 <= _maxCount4; _count4++) {
192
- for (var _count5 = 1; _count5 <= _maxCount5; _count5++) {
193
- for (var count4 = 1; count4 <= maxCount4; count4++) {
194
- var _sum3 = _count3 * _denom3 + _count4 * _denom4 + _count5 * _denom5 + count4 * denom4;
195
- if (_sum3 >= target) {
196
- var _combination2 = [].concat(_toConsumableArray(Array(_count3).fill(_denom3 / precision)), _toConsumableArray(Array(_count4).fill(_denom4 / precision)), _toConsumableArray(Array(_count5).fill(_denom5 / precision)), _toConsumableArray(Array(count4).fill(denom4 / precision)));
197
- paymentOptions.push({
198
- combination: _combination2,
199
- sum: _sum3 / precision,
200
- coinCount: _count3 + _count4 + _count5 + count4,
201
- denomTypes: 4
202
- });
203
- }
204
- }
205
- }
206
- }
207
- }
208
- }
209
- }
210
- }
211
- }
212
-
213
- // 如果没有找到任何组合,提供默认建议
214
- if (paymentOptions.length === 0) {
215
- // 找到大于等于目标金额的最小面额
216
- var minValidDenom = validDenoms.find(function (denom) {
217
- return denom >= targetAmount;
218
- });
219
- if (minValidDenom) {
220
- return [minValidDenom];
221
- } else {
222
- // 使用最大面额的组合
223
- var maxDenom = Math.max.apply(Math, _toConsumableArray(validDenoms));
224
- var _count6 = Math.ceil(targetAmount / maxDenom);
225
- return [_count6 * maxDenom];
226
- }
227
- }
228
-
229
- // 移除重复和扩展组合
230
- var uniqueCombinations = removeDuplicateAndExtendedCombinations(paymentOptions, targetAmount);
231
-
232
- // 按币种类型数量排序,然后按总硬币数量排序,最后按金额排序
233
- uniqueCombinations.sort(function (a, b) {
234
- if (a.denomTypes !== b.denomTypes) {
235
- return a.denomTypes - b.denomTypes;
236
- }
237
- if (a.coinCount !== b.coinCount) {
238
- return a.coinCount - b.coinCount;
239
- }
240
- return a.sum - b.sum;
241
- });
242
-
243
- // 按金额去重并返回推荐的支付金额
244
- var uniqueAmounts = new Set();
245
- var finalResults = [];
246
- for (var _i4 = 0, _uniqueCombinations = uniqueCombinations; _i4 < _uniqueCombinations.length; _i4++) {
247
- var item = _uniqueCombinations[_i4];
248
- var roundedAmount = Math.round(item.sum * 100) / 100; // 处理浮点数精度
249
- if (!uniqueAmounts.has(roundedAmount) && finalResults.length < 10) {
250
- uniqueAmounts.add(roundedAmount);
251
- finalResults.push(roundedAmount);
252
- }
253
- }
254
- return finalResults.sort(function (a, b) {
255
- return a - b;
256
- });
257
- } catch (error) {
258
- // 发生错误时返回安全的默认值
259
- console.warn('推荐支付金额计算出错:', error);
260
- // 返回最接近的整数金额作为兜底
261
- var safeAmount = Math.ceil(targetAmount);
262
- return [targetAmount, safeAmount];
263
- }
264
- }
265
-
266
- /**
267
- * 尝试找到精确匹配目标金额的组合
268
- */
269
- function findExactCombination(target, denoms, precision) {
270
- // 简单的深度优先搜索,限制搜索深度
271
- function dfs(remaining, denomIndex, currentCombination) {
272
- if (remaining === 0) {
273
- return currentCombination;
274
- }
275
- if (remaining < 0 || denomIndex >= denoms.length || currentCombination.length > 10) {
276
- return null;
277
- }
278
- var denom = denoms[denomIndex];
279
-
280
- // 尝试使用当前面额 0 到 maxCount 次
281
- var maxCount = Math.min(Math.floor(remaining / denom), 8);
282
- for (var count = maxCount; count >= 0; count--) {
283
- var newCombination = [].concat(_toConsumableArray(currentCombination), _toConsumableArray(Array(count).fill(denom)));
284
- var result = dfs(remaining - count * denom, denomIndex + 1, newCombination);
285
- if (result) {
286
- return result;
287
- }
288
- }
289
- return null;
290
- }
291
- var exactMatch = dfs(target, 0, []);
292
- if (exactMatch && exactMatch.length > 0) {
293
- var denomTypes = new Set(exactMatch).size;
294
- return {
295
- combination: exactMatch.map(function (d) {
296
- return d / precision;
297
- }),
298
- sum: target / precision,
299
- coinCount: exactMatch.length,
300
- denomTypes: denomTypes
301
- };
302
- }
303
- return null;
304
- }
305
-
306
- /**
307
- * 移除重复和扩展组合
308
- * 核心原理:如果组合A包含组合B的所有硬币,并且还有额外硬币,则A是B的扩展,应该被移除
309
- */
310
- function removeDuplicateAndExtendedCombinations(combinations, targetAmount) {
311
- var result = [];
312
-
313
- // 按币种类型数量、硬币数量、金额排序,确保较简单的组合在前面
314
- combinations.sort(function (a, b) {
315
- if (a.denomTypes !== b.denomTypes) {
316
- return a.denomTypes - b.denomTypes;
317
- }
318
- if (a.coinCount !== b.coinCount) {
319
- return a.coinCount - b.coinCount;
320
- }
321
- return a.sum - b.sum;
322
- });
323
- for (var i = 0; i < combinations.length; i++) {
324
- var current = combinations[i];
325
- var shouldSkip = false;
326
-
327
- // 检查当前组合是否与已添加的组合重复或者是扩展
328
- for (var j = 0; j < result.length; j++) {
329
- var existing = result[j];
330
-
331
- // 如果完全相同,跳过
332
- if (isSameCombination(current.combination, existing.combination)) {
333
- shouldSkip = true;
334
- break;
335
- }
336
-
337
- // 如果当前组合是已存在组合的扩展,跳过
338
- if (isExtensionOf(current.combination, existing.combination)) {
339
- shouldSkip = true;
340
- break;
341
- }
342
- }
343
-
344
- // 检查是否有其他组合是当前组合的扩展,如果有,移除那些扩展
345
- if (!shouldSkip) {
346
- // 移除所有当前组合的扩展
347
- for (var _j3 = result.length - 1; _j3 >= 0; _j3--) {
348
- if (isExtensionOf(result[_j3].combination, current.combination)) {
349
- result.splice(_j3, 1);
350
- }
351
- }
352
- result.push(current);
353
- }
354
- }
355
- return result;
356
- }
357
-
358
- /**
359
- * 检查组合A是否是组合B的扩展(即A包含B的所有硬币,并且还有额外的硬币)
360
- */
361
- function isExtensionOf(combinationA, combinationB) {
362
- // 如果A的硬币数量少于等于B,A不可能是B的扩展
363
- if (combinationA.length <= combinationB.length) {
364
- return false;
365
- }
366
-
367
- // 统计每个面额的数量
368
- var countA = {};
369
- var countB = {};
370
- combinationA.forEach(function (coin) {
371
- countA[coin] = (countA[coin] || 0) + 1;
372
- });
373
- combinationB.forEach(function (coin) {
374
- countB[coin] = (countB[coin] || 0) + 1;
375
- });
376
-
377
- // 检查B的所有面额在A中是否都有足够的数量
378
- for (var coin in countB) {
379
- if (!countA[coin] || countA[coin] < countB[coin]) {
380
- return false;
381
- }
382
- }
383
-
384
- // 检查A是否有B没有的额外硬币
385
- var hasExtra = false;
386
- for (var _coin in countA) {
387
- if (countA[_coin] > (countB[_coin] || 0)) {
388
- hasExtra = true;
389
- break;
390
- }
391
- }
392
- return hasExtra;
393
- }
394
-
395
- /**
396
- * 检查两个组合是否本质相同(相同的面额组合)
397
- */
398
- function isSameCombination(combinationA, combinationB) {
399
- if (combinationA.length !== combinationB.length) {
400
- return false;
401
- }
402
- var countA = {};
403
- var countB = {};
404
- combinationA.forEach(function (coin) {
405
- countA[coin] = (countA[coin] || 0) + 1;
406
- });
407
- combinationB.forEach(function (coin) {
408
- countB[coin] = (countB[coin] || 0) + 1;
409
- });
410
-
411
- // 检查两个组合是否有相同的面额和数量
412
- for (var coin in countA) {
413
- if (countA[coin] !== (countB[coin] || 0)) {
414
- return false;
415
- }
416
- }
417
- for (var _coin2 in countB) {
418
- if (countB[_coin2] !== (countA[_coin2] || 0)) {
419
- return false;
420
- }
421
- }
422
- return true;
423
- }
@@ -1,11 +0,0 @@
1
- import { EftposPayment } from './types';
2
- import type { PaymentModule } from './index';
3
- /**
4
- * Eftpos支付实现
5
- */
6
- export declare class EftposPaymentImpl implements EftposPayment {
7
- private paymentModule;
8
- constructor(paymentModule: PaymentModule);
9
- processEftposPayment(amount: number, orderUuid: string): Promise<void>;
10
- checkDeviceStatus(): Promise<boolean>;
11
- }
@@ -1,80 +0,0 @@
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 _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
- 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); } }
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
- 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); }
10
- /**
11
- * Eftpos支付实现
12
- */
13
- export var EftposPaymentImpl = /*#__PURE__*/function () {
14
- function EftposPaymentImpl(paymentModule) {
15
- _classCallCheck(this, EftposPaymentImpl);
16
- this.paymentModule = paymentModule;
17
- }
18
- _createClass(EftposPaymentImpl, [{
19
- key: "processEftposPayment",
20
- value: function () {
21
- var _processEftposPayment = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(amount, orderUuid) {
22
- var eftposMethod, paymentItem;
23
- return _regeneratorRuntime().wrap(function _callee$(_context) {
24
- while (1) switch (_context.prev = _context.next) {
25
- case 0:
26
- _context.next = 2;
27
- return this.paymentModule.getEftposPaymentMethod();
28
- case 2:
29
- eftposMethod = _context.sent;
30
- if (eftposMethod) {
31
- _context.next = 5;
32
- break;
33
- }
34
- throw new Error('Eftpos支付方式未找到');
35
- case 5:
36
- // 这里应该调用实际的Eftpos组件
37
- // 假设Eftpos支付成功,创建支付项
38
- paymentItem = {
39
- amount: amount.toString(),
40
- code: eftposMethod.code,
41
- id: eftposMethod.id,
42
- name: eftposMethod.name,
43
- type: eftposMethod.type,
44
- voucher_id: ''
45
- };
46
- _context.next = 8;
47
- return this.paymentModule.addPaymentItemAsync(orderUuid, paymentItem);
48
- case 8:
49
- case "end":
50
- return _context.stop();
51
- }
52
- }, _callee, this);
53
- }));
54
- function processEftposPayment(_x, _x2) {
55
- return _processEftposPayment.apply(this, arguments);
56
- }
57
- return processEftposPayment;
58
- }()
59
- }, {
60
- key: "checkDeviceStatus",
61
- value: function () {
62
- var _checkDeviceStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
63
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
64
- while (1) switch (_context2.prev = _context2.next) {
65
- case 0:
66
- return _context2.abrupt("return", true);
67
- case 1:
68
- case "end":
69
- return _context2.stop();
70
- }
71
- }, _callee2);
72
- }));
73
- function checkDeviceStatus() {
74
- return _checkDeviceStatus.apply(this, arguments);
75
- }
76
- return checkDeviceStatus;
77
- }()
78
- }]);
79
- return EftposPaymentImpl;
80
- }();
File without changes
File without changes
@@ -1,17 +0,0 @@
1
- export declare const getAvailableMaxAmount: (data: Record<string, any>) => any;
2
- /**
3
- * 将walletPass列表数据转换为prepare_payments需要的数据格式
4
- * @param list
5
- */
6
- export declare const formatWalletPassList2PreparePayments: (list?: any[]) => {
7
- voucher_id: any;
8
- amount: number;
9
- tag: any;
10
- }[];
11
- /**
12
- * 对用户识别码列表进行排序
13
- * 排序规则:正常数据 -> unified_available_status===1 -> 500601/500602 -> unified_available_status===0
14
- * @param list 用户识别码列表
15
- * @returns 排序后的列表
16
- */
17
- export declare const sortUserIdentificationCodeList: (list: any[]) => any[];
@@ -1,62 +0,0 @@
1
- // 获取walletPass可用最大金额
2
- export var getAvailableMaxAmount = function getAvailableMaxAmount(data) {
3
- return data.tag !== 'point_card' ? data.available_max_amount : data === null || data === void 0 ? void 0 : data.recommended_usage_amount;
4
- };
5
-
6
- /**
7
- * 将walletPass列表数据转换为prepare_payments需要的数据格式
8
- * @param list
9
- */
10
- export var formatWalletPassList2PreparePayments = function formatWalletPassList2PreparePayments(list) {
11
- return (list || []).map(function (item) {
12
- return {
13
- voucher_id: item.id || 0,
14
- amount: Number(item.edit_current_amount || getAvailableMaxAmount(item)) || 0,
15
- tag: item.tag || ''
16
- };
17
- });
18
- };
19
-
20
- /**
21
- * 对用户识别码列表进行排序
22
- * 排序规则:正常数据 -> unified_available_status===1 -> 500601/500602 -> unified_available_status===0
23
- * @param list 用户识别码列表
24
- * @returns 排序后的列表
25
- */
26
- export var sortUserIdentificationCodeList = function sortUserIdentificationCodeList(list) {
27
- if (!Array.isArray(list) || list.length === 0) {
28
- return list;
29
- }
30
-
31
- // 定义中等优先级错误码
32
- var middlePriorityErrorCodes = ['500601', '500602'];
33
- return list.sort(function (a, b) {
34
- // 确定每个项目的优先级
35
- // 0: 正常数据(没有特定错误码且available_status不是1或0)
36
- // 1: unified_available_status === 1
37
- // 2: 中等优先级错误码(500601、500602) 此订单内不可用 订单没有剩余金额
38
- // 3: unified_available_status === 0(最后)
39
- var getPriority = function getPriority(item) {
40
- var _item$unified_error_c;
41
- var errorCode = (_item$unified_error_c = item.unified_error_code) === null || _item$unified_error_c === void 0 ? void 0 : _item$unified_error_c.toString();
42
- var availableStatus = item.unified_available_status;
43
-
44
- // 中等优先级错误码
45
- if (errorCode && middlePriorityErrorCodes.includes(errorCode)) return 2;
46
-
47
- // unified_available_status === 0 最后
48
- if (availableStatus === 0) return 3;
49
-
50
- // unified_available_status === 1
51
- if (availableStatus === 1) return 1;
52
-
53
- // 正常数据
54
- return 0;
55
- };
56
- var aPriority = getPriority(a);
57
- var bPriority = getPriority(b);
58
-
59
- // 按优先级排序,优先级相同则保持原有顺序
60
- return aPriority - bPriority;
61
- });
62
- };