@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,34 +1,46 @@
1
- "use strict";
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
28
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
29
+ // src/server/modules/order/utils/filterOrders.ts
30
+ var filterOrders_exports = {};
31
+ __export(filterOrders_exports, {
32
+ filterOrders: () => filterOrders
5
33
  });
6
- exports.filterOrders = filterOrders;
7
- var _dayjs = _interopRequireDefault(require("dayjs"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- /** 从订单 payments 提取支付方式 code,与 UI 筛选选项及 filterBookings 一致 */
34
+ module.exports = __toCommonJS(filterOrders_exports);
35
+ var import_dayjs = __toESM(require("dayjs"));
10
36
  function getOrderPaymentCodes(order) {
11
37
  const payments = order.payments;
12
38
  if (!Array.isArray(payments) || payments.length === 0) {
13
39
  return [];
14
40
  }
15
- return payments.map(item => item?.code).filter(code => typeof code === 'string' && code.length > 0);
41
+ return payments.map((item) => item == null ? void 0 : item.code).filter((code) => typeof code === "string" && code.length > 0);
16
42
  }
17
-
18
- /**
19
- * 订单过滤函数
20
- * @param orders 原始订单列表
21
- * @param filters 过滤条件
22
- * @returns 过滤 + 排序 + 分页后的结果
23
- *
24
- * @优化口子 性能优化预留:
25
- * - 可在此函数入口加缓存(按 filters 签名缓存结果)
26
- * - 可对枚举字段建倒排索引(status/payment_status/shipping_status/customer_id)
27
- * - 可对文本字段加前缀树或分词索引
28
- * - 可做增量过滤而非全量遍历
29
- */
30
43
  function filterOrders(orders, filters) {
31
- // Bug 1 修复:防护 filters 为 null/undefined
32
44
  const safeFilters = filters || {};
33
45
  if (!orders || !Array.isArray(orders)) {
34
46
  return {
@@ -39,37 +51,31 @@ function filterOrders(orders, filters) {
39
51
  rejected: []
40
52
  };
41
53
  }
42
-
43
- // 默认分页参数
44
54
  const size = safeFilters.num || 20;
45
55
  const page = safeFilters.skip || 1;
46
56
  const rejected = [];
47
-
48
- // 1. 过滤
49
- let filteredList = orders.filter(order => {
57
+ let filteredList = orders.filter((order) => {
50
58
  if (safeFilters.keyword) {
51
59
  if (!JSON.stringify(order).toLowerCase().includes(safeFilters.keyword.toLowerCase())) {
52
60
  rejected.push({
53
61
  order_id: order.order_id,
54
62
  order_number: order.order_number,
55
63
  reason: {
56
- field: 'keyword',
57
- actual: '',
64
+ field: "keyword",
65
+ actual: "",
58
66
  expected: safeFilters.keyword
59
67
  }
60
68
  });
61
69
  return false;
62
70
  }
63
71
  }
64
-
65
- // status - 订单状态
66
72
  if (safeFilters.status && safeFilters.status.length > 0) {
67
73
  if (!order.status || !safeFilters.status.includes(order.status)) {
68
74
  rejected.push({
69
75
  order_id: order.order_id,
70
76
  order_number: order.order_number,
71
77
  reason: {
72
- field: 'status',
78
+ field: "status",
73
79
  actual: order.status,
74
80
  expected: safeFilters.status
75
81
  }
@@ -77,15 +83,13 @@ function filterOrders(orders, filters) {
77
83
  return false;
78
84
  }
79
85
  }
80
-
81
- // payment_status - 支付状态
82
86
  if (safeFilters.payment_status && safeFilters.payment_status.length > 0) {
83
87
  if (!order.payment_status || !safeFilters.payment_status.includes(order.payment_status)) {
84
88
  rejected.push({
85
89
  order_id: order.order_id,
86
90
  order_number: order.order_number,
87
91
  reason: {
88
- field: 'payment_status',
92
+ field: "payment_status",
89
93
  actual: order.payment_status,
90
94
  expected: safeFilters.payment_status
91
95
  }
@@ -93,15 +97,13 @@ function filterOrders(orders, filters) {
93
97
  return false;
94
98
  }
95
99
  }
96
-
97
- // shipping_status - 处理状态
98
100
  if (safeFilters.shipping_status && safeFilters.shipping_status.length > 0) {
99
101
  if (!order.shipping_status || !safeFilters.shipping_status.includes(order.shipping_status)) {
100
102
  rejected.push({
101
103
  order_id: order.order_id,
102
104
  order_number: order.order_number,
103
105
  reason: {
104
- field: 'shipping_status',
106
+ field: "shipping_status",
105
107
  actual: order.shipping_status,
106
108
  expected: safeFilters.shipping_status
107
109
  }
@@ -109,15 +111,13 @@ function filterOrders(orders, filters) {
109
111
  return false;
110
112
  }
111
113
  }
112
-
113
- // customer_id - 客户ID(精确匹配)
114
- if (safeFilters.customer_id !== undefined && safeFilters.customer_id !== null) {
114
+ if (safeFilters.customer_id !== void 0 && safeFilters.customer_id !== null) {
115
115
  if (String(order.customer_id) !== String(safeFilters.customer_id)) {
116
116
  rejected.push({
117
117
  order_id: order.order_id,
118
118
  order_number: order.order_number,
119
119
  reason: {
120
- field: 'customer_id',
120
+ field: "customer_id",
121
121
  actual: order.customer_id,
122
122
  expected: safeFilters.customer_id
123
123
  }
@@ -125,15 +125,13 @@ function filterOrders(orders, filters) {
125
125
  return false;
126
126
  }
127
127
  }
128
-
129
- // order_sales_channel - 销售渠道
130
128
  if (safeFilters.order_sales_channel && safeFilters.order_sales_channel.length > 0) {
131
129
  if (!order.order_sales_channel || !safeFilters.order_sales_channel.includes(order.order_sales_channel)) {
132
130
  rejected.push({
133
131
  order_id: order.order_id,
134
132
  order_number: order.order_number,
135
133
  reason: {
136
- field: 'order_sales_channel',
134
+ field: "order_sales_channel",
137
135
  actual: order.order_sales_channel,
138
136
  expected: safeFilters.order_sales_channel
139
137
  }
@@ -141,8 +139,6 @@ function filterOrders(orders, filters) {
141
139
  return false;
142
140
  }
143
141
  }
144
-
145
- // payment_methods - 支付方式(按 payments[].code 匹配,不再使用 order.payment_methods)
146
142
  if (safeFilters.payment_methods && safeFilters.payment_methods.length > 0) {
147
143
  const orderPaymentCodes = getOrderPaymentCodes(order);
148
144
  if (orderPaymentCodes.length === 0) {
@@ -150,20 +146,20 @@ function filterOrders(orders, filters) {
150
146
  order_id: order.order_id,
151
147
  order_number: order.order_number,
152
148
  reason: {
153
- field: 'payment_methods',
149
+ field: "payment_methods",
154
150
  actual: order.payments,
155
151
  expected: safeFilters.payment_methods
156
152
  }
157
153
  });
158
154
  return false;
159
155
  }
160
- const hasMatch = orderPaymentCodes.some(code => safeFilters.payment_methods.includes(code));
156
+ const hasMatch = orderPaymentCodes.some((code) => safeFilters.payment_methods.includes(code));
161
157
  if (!hasMatch) {
162
158
  rejected.push({
163
159
  order_id: order.order_id,
164
160
  order_number: order.order_number,
165
161
  reason: {
166
- field: 'payment_methods',
162
+ field: "payment_methods",
167
163
  actual: orderPaymentCodes,
168
164
  expected: safeFilters.payment_methods
169
165
  }
@@ -171,28 +167,26 @@ function filterOrders(orders, filters) {
171
167
  return false;
172
168
  }
173
169
  }
174
-
175
- // min_total_amount / max_total_amount - 订单金额范围
176
- if (safeFilters.min_total_amount !== undefined || safeFilters.max_total_amount !== undefined) {
170
+ if (safeFilters.min_total_amount !== void 0 || safeFilters.max_total_amount !== void 0) {
177
171
  const orderAmount = parseFloat(String(order.total_amount || 0));
178
- if (safeFilters.min_total_amount !== undefined && orderAmount < safeFilters.min_total_amount) {
172
+ if (safeFilters.min_total_amount !== void 0 && orderAmount < safeFilters.min_total_amount) {
179
173
  rejected.push({
180
174
  order_id: order.order_id,
181
175
  order_number: order.order_number,
182
176
  reason: {
183
- field: 'min_total_amount',
177
+ field: "min_total_amount",
184
178
  actual: order.total_amount,
185
179
  expected: safeFilters.min_total_amount
186
180
  }
187
181
  });
188
182
  return false;
189
183
  }
190
- if (safeFilters.max_total_amount !== undefined && orderAmount > safeFilters.max_total_amount) {
184
+ if (safeFilters.max_total_amount !== void 0 && orderAmount > safeFilters.max_total_amount) {
191
185
  rejected.push({
192
186
  order_id: order.order_id,
193
187
  order_number: order.order_number,
194
188
  reason: {
195
- field: 'max_total_amount',
189
+ field: "max_total_amount",
196
190
  actual: order.total_amount,
197
191
  expected: safeFilters.max_total_amount
198
192
  }
@@ -200,15 +194,13 @@ function filterOrders(orders, filters) {
200
194
  return false;
201
195
  }
202
196
  }
203
-
204
- // tag_ids - 标签(统一 String 比较,兼容 number/string)
205
197
  if (safeFilters.tag_ids && safeFilters.tag_ids.length > 0) {
206
198
  if (!order.tag_ids || !Array.isArray(order.tag_ids) || order.tag_ids.length === 0) {
207
199
  rejected.push({
208
200
  order_id: order.order_id,
209
201
  order_number: order.order_number,
210
202
  reason: {
211
- field: 'tag_ids',
203
+ field: "tag_ids",
212
204
  actual: order.tag_ids,
213
205
  expected: safeFilters.tag_ids
214
206
  }
@@ -216,13 +208,13 @@ function filterOrders(orders, filters) {
216
208
  return false;
217
209
  }
218
210
  const filterTagSet = new Set(safeFilters.tag_ids.map(String));
219
- const hasMatch = order.tag_ids.some(tag => filterTagSet.has(String(tag)));
211
+ const hasMatch = order.tag_ids.some((tag) => filterTagSet.has(String(tag)));
220
212
  if (!hasMatch) {
221
213
  rejected.push({
222
214
  order_id: order.order_id,
223
215
  order_number: order.order_number,
224
216
  reason: {
225
- field: 'tag_ids',
217
+ field: "tag_ids",
226
218
  actual: order.tag_ids,
227
219
  expected: safeFilters.tag_ids
228
220
  }
@@ -230,15 +222,13 @@ function filterOrders(orders, filters) {
230
222
  return false;
231
223
  }
232
224
  }
233
-
234
- // shipping_type - 配送方式
235
225
  if (safeFilters.shipping_type && safeFilters.shipping_type.length > 0) {
236
226
  if (!order.shipping_type || !safeFilters.shipping_type.includes(order.shipping_type)) {
237
227
  rejected.push({
238
228
  order_id: order.order_id,
239
229
  order_number: order.order_number,
240
230
  reason: {
241
- field: 'shipping_type',
231
+ field: "shipping_type",
242
232
  actual: order.shipping_type,
243
233
  expected: safeFilters.shipping_type
244
234
  }
@@ -246,15 +236,13 @@ function filterOrders(orders, filters) {
246
236
  return false;
247
237
  }
248
238
  }
249
-
250
- // delivery_zone_name - 配送区域(模糊匹配)
251
- if (safeFilters.delivery_zone_name !== undefined && safeFilters.delivery_zone_name !== null && safeFilters.delivery_zone_name !== '') {
239
+ if (safeFilters.delivery_zone_name !== void 0 && safeFilters.delivery_zone_name !== null && safeFilters.delivery_zone_name !== "") {
252
240
  if (!order.delivery_zone_name || !order.delivery_zone_name.toLowerCase().includes(safeFilters.delivery_zone_name.toLowerCase())) {
253
241
  rejected.push({
254
242
  order_id: order.order_id,
255
243
  order_number: order.order_number,
256
244
  reason: {
257
- field: 'delivery_zone_name',
245
+ field: "delivery_zone_name",
258
246
  actual: order.delivery_zone_name,
259
247
  expected: safeFilters.delivery_zone_name
260
248
  }
@@ -262,15 +250,13 @@ function filterOrders(orders, filters) {
262
250
  return false;
263
251
  }
264
252
  }
265
-
266
- // location_id - 取货地点(精确匹配)
267
- if (safeFilters.location_id !== undefined && safeFilters.location_id !== null) {
253
+ if (safeFilters.location_id !== void 0 && safeFilters.location_id !== null) {
268
254
  if (String(order.location_id) !== String(safeFilters.location_id)) {
269
255
  rejected.push({
270
256
  order_id: order.order_id,
271
257
  order_number: order.order_number,
272
258
  reason: {
273
- field: 'location_id',
259
+ field: "location_id",
274
260
  actual: order.location_id,
275
261
  expected: safeFilters.location_id
276
262
  }
@@ -278,15 +264,13 @@ function filterOrders(orders, filters) {
278
264
  return false;
279
265
  }
280
266
  }
281
-
282
- // shipping_order_number - 物流单号(模糊匹配)
283
- if (safeFilters.shipping_order_number !== undefined && safeFilters.shipping_order_number !== null && safeFilters.shipping_order_number !== '') {
267
+ if (safeFilters.shipping_order_number !== void 0 && safeFilters.shipping_order_number !== null && safeFilters.shipping_order_number !== "") {
284
268
  if (!order.shipping_order_number || !order.shipping_order_number.toLowerCase().includes(safeFilters.shipping_order_number.toLowerCase())) {
285
269
  rejected.push({
286
270
  order_id: order.order_id,
287
271
  order_number: order.order_number,
288
272
  reason: {
289
- field: 'shipping_order_number',
273
+ field: "shipping_order_number",
290
274
  actual: order.shipping_order_number,
291
275
  expected: safeFilters.shipping_order_number
292
276
  }
@@ -294,15 +278,13 @@ function filterOrders(orders, filters) {
294
278
  return false;
295
279
  }
296
280
  }
297
-
298
- // logistics_company_id - 物流公司
299
281
  if (safeFilters.logistics_company_id && safeFilters.logistics_company_id.length > 0) {
300
282
  if (!order.logistics_company_id) {
301
283
  rejected.push({
302
284
  order_id: order.order_id,
303
285
  order_number: order.order_number,
304
286
  reason: {
305
- field: 'logistics_company_id',
287
+ field: "logistics_company_id",
306
288
  actual: order.logistics_company_id,
307
289
  expected: safeFilters.logistics_company_id
308
290
  }
@@ -310,13 +292,13 @@ function filterOrders(orders, filters) {
310
292
  return false;
311
293
  }
312
294
  const orderLogisticsId = String(order.logistics_company_id);
313
- const hasMatch = safeFilters.logistics_company_id.some(id => String(id) === orderLogisticsId);
295
+ const hasMatch = safeFilters.logistics_company_id.some((id) => String(id) === orderLogisticsId);
314
296
  if (!hasMatch) {
315
297
  rejected.push({
316
298
  order_id: order.order_id,
317
299
  order_number: order.order_number,
318
300
  reason: {
319
- field: 'logistics_company_id',
301
+ field: "logistics_company_id",
320
302
  actual: order.logistics_company_id,
321
303
  expected: safeFilters.logistics_company_id
322
304
  }
@@ -324,15 +306,13 @@ function filterOrders(orders, filters) {
324
306
  return false;
325
307
  }
326
308
  }
327
-
328
- // zip - 邮编(模糊匹配)
329
- if (safeFilters.zip !== undefined && safeFilters.zip !== null && safeFilters.zip !== '') {
309
+ if (safeFilters.zip !== void 0 && safeFilters.zip !== null && safeFilters.zip !== "") {
330
310
  if (!order.zip || !order.zip.toLowerCase().includes(safeFilters.zip.toLowerCase())) {
331
311
  rejected.push({
332
312
  order_id: order.order_id,
333
313
  order_number: order.order_number,
334
314
  reason: {
335
- field: 'zip',
315
+ field: "zip",
336
316
  actual: order.zip,
337
317
  expected: safeFilters.zip
338
318
  }
@@ -340,15 +320,13 @@ function filterOrders(orders, filters) {
340
320
  return false;
341
321
  }
342
322
  }
343
-
344
- // business_code - 业务类型(精确匹配)
345
323
  if (safeFilters.business_code) {
346
324
  if (!order.business_code || order.business_code !== safeFilters.business_code) {
347
325
  rejected.push({
348
326
  order_id: order.order_id,
349
327
  order_number: order.order_number,
350
328
  reason: {
351
- field: 'business_code',
329
+ field: "business_code",
352
330
  actual: order.business_code,
353
331
  expected: safeFilters.business_code
354
332
  }
@@ -356,21 +334,17 @@ function filterOrders(orders, filters) {
356
334
  return false;
357
335
  }
358
336
  }
359
-
360
- // start_time / end_time - 创建时间范围
361
337
  if (safeFilters.start_time || safeFilters.end_time) {
362
- const isCreatedIsUndefined = order.created_at === undefined;
363
- // 统一用 dayjs 按本地时区解析,避免 new Date("YYYY-MM-DD") 被当作 UTC 0 点
364
- // 与含时分的本地时间字符串比较时产生时区错位
365
- const orderTime = order.created_at ? typeof order.created_at === 'number' ? order.created_at : (0, _dayjs.default)(String(order.created_at)).valueOf() : 0;
338
+ const isCreatedIsUndefined = order.created_at === void 0;
339
+ const orderTime = order.created_at ? typeof order.created_at === "number" ? order.created_at : (0, import_dayjs.default)(String(order.created_at)).valueOf() : 0;
366
340
  if (safeFilters.start_time && !isCreatedIsUndefined) {
367
- const startTs = (0, _dayjs.default)(safeFilters.start_time).startOf('day').valueOf();
341
+ const startTs = (0, import_dayjs.default)(safeFilters.start_time).startOf("day").valueOf();
368
342
  if (orderTime < startTs) {
369
343
  rejected.push({
370
344
  order_id: order.order_id,
371
345
  order_number: order.order_number,
372
346
  reason: {
373
- field: 'start_time',
347
+ field: "start_time",
374
348
  actual: order.created_at,
375
349
  expected: safeFilters.start_time
376
350
  }
@@ -379,13 +353,13 @@ function filterOrders(orders, filters) {
379
353
  }
380
354
  }
381
355
  if (safeFilters.end_time && !isCreatedIsUndefined) {
382
- const endTs = (0, _dayjs.default)(safeFilters.end_time).endOf('day').valueOf();
356
+ const endTs = (0, import_dayjs.default)(safeFilters.end_time).endOf("day").valueOf();
383
357
  if (orderTime > endTs) {
384
358
  rejected.push({
385
359
  order_id: order.order_id,
386
360
  order_number: order.order_number,
387
361
  reason: {
388
- field: 'end_time',
362
+ field: "end_time",
389
363
  actual: order.created_at,
390
364
  expected: safeFilters.end_time
391
365
  }
@@ -396,47 +370,43 @@ function filterOrders(orders, filters) {
396
370
  }
397
371
  return true;
398
372
  });
399
-
400
- // 2. 排序
401
373
  if (safeFilters.order_by) {
402
374
  const sortField = safeFilters.order_by;
403
- const sortOrder = safeFilters.sort || 'desc';
375
+ const sortOrder = safeFilters.sort || "desc";
404
376
  filteredList.sort((a, b) => {
405
377
  let aVal;
406
378
  let bVal;
407
379
  switch (sortField) {
408
- case 'created_at':
409
- aVal = a.created_at ? typeof a.created_at === 'number' ? a.created_at : new Date(String(a.created_at)).getTime() : 0;
410
- bVal = b.created_at ? typeof b.created_at === 'number' ? b.created_at : new Date(String(b.created_at)).getTime() : 0;
380
+ case "created_at":
381
+ aVal = a.created_at ? typeof a.created_at === "number" ? a.created_at : new Date(String(a.created_at)).getTime() : 0;
382
+ bVal = b.created_at ? typeof b.created_at === "number" ? b.created_at : new Date(String(b.created_at)).getTime() : 0;
411
383
  break;
412
- case 'updated_at':
413
- aVal = a.updated_at ? typeof a.updated_at === 'number' ? a.updated_at : new Date(String(a.updated_at)).getTime() : 0;
414
- bVal = b.updated_at ? typeof b.updated_at === 'number' ? b.updated_at : new Date(String(b.updated_at)).getTime() : 0;
384
+ case "updated_at":
385
+ aVal = a.updated_at ? typeof a.updated_at === "number" ? a.updated_at : new Date(String(a.updated_at)).getTime() : 0;
386
+ bVal = b.updated_at ? typeof b.updated_at === "number" ? b.updated_at : new Date(String(b.updated_at)).getTime() : 0;
415
387
  break;
416
- case 'total_amount':
388
+ case "total_amount":
417
389
  aVal = parseFloat(String(a.total_amount || 0));
418
390
  bVal = parseFloat(String(b.total_amount || 0));
419
391
  break;
420
- case 'customer_name':
421
- aVal = (a.customer_name || '').toLowerCase();
422
- bVal = (b.customer_name || '').toLowerCase();
392
+ case "customer_name":
393
+ aVal = (a.customer_name || "").toLowerCase();
394
+ bVal = (b.customer_name || "").toLowerCase();
423
395
  break;
424
- case 'amount_gap':
396
+ case "amount_gap":
425
397
  return 0;
426
398
  default:
427
399
  return 0;
428
400
  }
429
401
  if (aVal < bVal) {
430
- return sortOrder === 'asc' ? -1 : 1;
402
+ return sortOrder === "asc" ? -1 : 1;
431
403
  }
432
404
  if (aVal > bVal) {
433
- return sortOrder === 'asc' ? 1 : -1;
405
+ return sortOrder === "asc" ? 1 : -1;
434
406
  }
435
407
  return 0;
436
408
  });
437
409
  }
438
-
439
- // 3. 分页(skip 为页码,从 1 开始)
440
410
  const totalCount = filteredList.length;
441
411
  const startIndex = (page - 1) * size;
442
412
  const endIndex = startIndex + size;
@@ -448,4 +418,8 @@ function filterOrders(orders, filters) {
448
418
  skip: page,
449
419
  rejected
450
420
  };
451
- }
421
+ }
422
+ // Annotate the CommonJS export names for ESM import in node:
423
+ 0 && (module.exports = {
424
+ filterOrders
425
+ });