@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,40 +1,72 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.handleVariantProduct = exports.handleProductDeposit = exports.getProductTotalPrice = exports.getProductOriginTotalPrice = exports.getProductDeposit = exports.formatProductToCartItemOrigin = exports.formatProductToCartItem = exports.formatOptionsToOrigin = exports.formatOptions = exports.formatBundleToOrigin = exports.formatBundle = void 0;
7
- var _decimal = _interopRequireDefault(require("decimal.js"));
8
- var _utils = require("../../Product/utils");
9
- var _utils2 = require("../../../solution/ShopDiscount/utils");
10
- var _utils3 = require("../../Summary/utils");
11
- var _utils4 = require("../../Order/utils");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- /** 与 Rules / ShopDiscount 一致的折扣入参,用于主价与 option 单价 */
14
- const toDiscountPayload = discountItem => ({
15
- amount: discountItem.amount,
16
- tag: discountItem.type,
17
- par_value: discountItem.discount?.percent,
18
- config: discountItem.config,
19
- metadata: {
20
- discount_card_type: discountItem?.discount?.discount_card_type
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 });
21
16
  }
22
- });
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);
23
28
 
24
- /**
25
- * @title 处理组合商品
26
- * @description 组合商品需要直接修改 product 里的价格和 is_charge_tax
27
- * @param product 商品
28
- * @returns 处理后的商品
29
- */
30
- const handleVariantProduct = product => {
31
- // 判断组合商品,然后直接修改 product 里的价格和 is_charge_tax
32
- if (product?.product_variant_id) {
33
- // 还需要判断 能从 variant 里找到对应的组合规格信息,才可以替换
34
- const targetVariant = product?.variant?.find(n => n.id === product.product_variant_id);
29
+ // src/modules/Cart/utils/cartProduct.ts
30
+ var cartProduct_exports = {};
31
+ __export(cartProduct_exports, {
32
+ formatBundle: () => formatBundle,
33
+ formatBundleToOrigin: () => formatBundleToOrigin,
34
+ formatOptions: () => formatOptions,
35
+ formatOptionsToOrigin: () => formatOptionsToOrigin,
36
+ formatProductToCartItem: () => formatProductToCartItem,
37
+ formatProductToCartItemOrigin: () => formatProductToCartItemOrigin,
38
+ getProductDeposit: () => getProductDeposit,
39
+ getProductOriginTotalPrice: () => getProductOriginTotalPrice,
40
+ getProductTotalPrice: () => getProductTotalPrice,
41
+ handleProductDeposit: () => handleProductDeposit,
42
+ handleVariantProduct: () => handleVariantProduct
43
+ });
44
+ module.exports = __toCommonJS(cartProduct_exports);
45
+ var import_decimal = __toESM(require("decimal.js"));
46
+ var import_utils = require("../../Product/utils");
47
+ var import_utils2 = require("../../../solution/ShopDiscount/utils");
48
+ var import_utils3 = require("../../Summary/utils");
49
+ var import_utils4 = require("../../Order/utils");
50
+ var toDiscountPayload = (discountItem) => {
51
+ var _a, _b;
52
+ return {
53
+ amount: discountItem.amount,
54
+ tag: discountItem.type,
55
+ par_value: (_a = discountItem.discount) == null ? void 0 : _a.percent,
56
+ config: discountItem.config,
57
+ metadata: {
58
+ discount_card_type: (_b = discountItem == null ? void 0 : discountItem.discount) == null ? void 0 : _b.discount_card_type
59
+ }
60
+ };
61
+ };
62
+ var handleVariantProduct = (product) => {
63
+ var _a;
64
+ if (product == null ? void 0 : product.product_variant_id) {
65
+ const targetVariant = (_a = product == null ? void 0 : product.variant) == null ? void 0 : _a.find(
66
+ (n) => n.id === product.product_variant_id
67
+ );
35
68
  if (targetVariant) {
36
69
  product.price = targetVariant.price;
37
- // 如果 original_price 为 0,就不改了
38
70
  if (Number(targetVariant.original_price) > 0) {
39
71
  product.original_price = targetVariant.original_price;
40
72
  }
@@ -43,14 +75,9 @@ const handleVariantProduct = product => {
43
75
  }
44
76
  return product;
45
77
  };
46
-
47
- /**
48
- * 格式化商品到购物车
49
- * @param product 商品
50
- * @returns 格式化后的商品
51
- */
52
- exports.handleVariantProduct = handleVariantProduct;
53
- const formatProductToCartItem = params => {
78
+ var formatProductToCartItem = (params) => {
79
+ var _a, _b, _c;
80
+ console.log("formatProductToCartItem>>>>>>", params);
54
81
  const {
55
82
  cartItem,
56
83
  product,
@@ -60,25 +87,14 @@ const formatProductToCartItem = params => {
60
87
  quantity = 1,
61
88
  discounts
62
89
  } = params;
63
- const num = quantity; // 当前按照单个商品加入购物车
64
-
90
+ const num = quantity;
65
91
  if (product) {
66
- cartItem.id = product?.id;
67
- cartItem.name = product?.title;
68
- cartItem.price = product?.price;
92
+ cartItem.id = product == null ? void 0 : product.id;
93
+ cartItem.name = product == null ? void 0 : product.title;
94
+ cartItem.price = product == null ? void 0 : product.price;
69
95
  cartItem.num = num;
70
- cartItem.total = getProductTotalPrice({
71
- product,
72
- bundle,
73
- options,
74
- num,
75
- discounts
76
- });
77
- cartItem.totalDifference = getTotalDifference({
78
- product,
79
- bundle,
80
- discounts
81
- });
96
+ cartItem.total = getProductTotalPrice({ product, bundle, options, num, discounts });
97
+ cartItem.totalDifference = getTotalDifference({ product, bundle, discounts });
82
98
  cartItem.summaryTotal = cartItem.total * (num || 1);
83
99
  cartItem.origin_total = getProductOriginTotalPrice({
84
100
  product,
@@ -87,7 +103,6 @@ const formatProductToCartItem = params => {
87
103
  num,
88
104
  discounts
89
105
  });
90
- // 不包含折扣卡商品券的总价
91
106
  const origin_total = getProductTotalPrice({
92
107
  product: cartItem._productInit || cartItem._productOrigin,
93
108
  bundle,
@@ -96,38 +111,44 @@ const formatProductToCartItem = params => {
96
111
  discounts: []
97
112
  });
98
113
  cartItem.summaryOriginTotal = (origin_total || 0) * (num || 1);
99
- cartItem.image = product?.cover;
100
- cartItem.like_status = 'common';
101
- cartItem.duration = product?.duration;
102
- cartItem.isNormalProduct = (0, _utils.isNormalProduct)(product);
103
- cartItem.is_charge_tax = product?.is_charge_tax;
114
+ cartItem.image = product == null ? void 0 : product.cover;
115
+ cartItem.like_status = "common";
116
+ cartItem.duration = product == null ? void 0 : product.duration;
117
+ cartItem.isNormalProduct = (0, import_utils.isNormalProduct)(product);
118
+ cartItem.is_charge_tax = product == null ? void 0 : product.is_charge_tax;
104
119
  }
105
- if (bundle?.length) {
120
+ if (bundle == null ? void 0 : bundle.length) {
106
121
  cartItem.bundle = formatBundle(bundle);
107
122
  }
108
- if (options?.length) {
123
+ if (options == null ? void 0 : options.length) {
109
124
  cartItem.options = formatOptions(options);
110
125
  }
111
- // 拼装出 product_option_string
112
126
  if (product_variant_id) {
113
- const sku_key = product?.variant?.find(n => n.id === product_variant_id)?.sku_key;
127
+ const sku_key = (_b = (_a = product == null ? void 0 : product.variant) == null ? void 0 : _a.find(
128
+ (n) => n.id === product_variant_id
129
+ )) == null ? void 0 : _b.sku_key;
114
130
  if (sku_key) {
115
- const sku_key_arr = sku_key.split('_');
131
+ const sku_key_arr = sku_key.split("_");
116
132
  const product_option_string = [];
117
- sku_key_arr.forEach(item => {
118
- const keyMap = item.split(':');
119
- const targetVariantGroup = product?.variant_group?.find(n => String(n.position_id) === keyMap[0]);
120
- const targetVariantItem = targetVariantGroup?.variant_item?.find(n => String(n.position_id) === keyMap[1]);
133
+ sku_key_arr.forEach((item) => {
134
+ var _a2, _b2;
135
+ const keyMap = item.split(":");
136
+ const targetVariantGroup = (_a2 = product == null ? void 0 : product.variant_group) == null ? void 0 : _a2.find(
137
+ (n) => String(n.position_id) === keyMap[0]
138
+ );
139
+ const targetVariantItem = (_b2 = targetVariantGroup == null ? void 0 : targetVariantGroup.variant_item) == null ? void 0 : _b2.find(
140
+ (n) => String(n.position_id) === keyMap[1]
141
+ );
121
142
  if (targetVariantGroup && targetVariantItem) {
122
- product_option_string.push(`${targetVariantGroup.name}:${targetVariantItem.name}`);
143
+ product_option_string.push(
144
+ `${targetVariantGroup.name}:${targetVariantItem.name}`
145
+ );
123
146
  }
124
147
  });
125
- cartItem.product_option_string = product_option_string.join(', ');
148
+ cartItem.product_option_string = product_option_string.join(", ");
126
149
  }
127
150
  }
128
-
129
- // 如果商品有定金规则,则计算定金
130
- if (product?.custom_deposit_data?.has_deposit == 1) {
151
+ if (((_c = product == null ? void 0 : product.custom_deposit_data) == null ? void 0 : _c.has_deposit) == 1) {
131
152
  cartItem.deposit = getProductDeposit({
132
153
  cartItem,
133
154
  product,
@@ -140,8 +161,8 @@ const formatProductToCartItem = params => {
140
161
  cartItem._origin = oringin;
141
162
  return cartItem;
142
163
  };
143
- exports.formatProductToCartItem = formatProductToCartItem;
144
- const formatProductToCartItemOrigin = params => {
164
+ var formatProductToCartItemOrigin = (params) => {
165
+ var _a, _b, _c, _d, _e;
145
166
  const {
146
167
  cartItem,
147
168
  product,
@@ -151,38 +172,35 @@ const formatProductToCartItemOrigin = params => {
151
172
  quantity = 1
152
173
  } = params;
153
174
  let origin = cartItem._origin;
154
- const product_discount_difference = (origin.product?.discount_list || []).filter(item => !item?.metadata?.custom_product_bundle_map_id).reduce((pre, cur) => {
155
- return pre + (cur?.metadata?.product_discount_difference || 0);
175
+ const product_discount_difference = (((_a = origin.product) == null ? void 0 : _a.discount_list) || []).filter((item) => {
176
+ var _a2;
177
+ return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
178
+ }).reduce((pre, cur) => {
179
+ var _a2;
180
+ return pre + (((_a2 = cur == null ? void 0 : cur.metadata) == null ? void 0 : _a2.product_discount_difference) || 0);
156
181
  }, 0);
157
182
  if (product) {
158
183
  origin.product = {
159
- ...(origin.product || {}),
184
+ ...origin.product || {},
160
185
  num: quantity,
161
186
  product_id: product.id,
162
187
  product_variant_id: product_variant_id || 0,
163
- product_bundle: origin.product?.product_bundle || [],
164
- product_sku: origin.product?.product_sku || {
165
- option: []
166
- },
188
+ product_bundle: ((_b = origin.product) == null ? void 0 : _b.product_bundle) || [],
189
+ product_sku: ((_c = origin.product) == null ? void 0 : _c.product_sku) || { option: [] },
167
190
  metadata: {
168
191
  product_discount_difference
169
192
  }
170
193
  };
171
- // 时长类型
172
- origin.sub_type = product?.duration?.type;
173
- // 时长
174
- origin.duration = product?.duration?.value;
175
- if (bundle?.length) {
194
+ origin.sub_type = (_d = product == null ? void 0 : product.duration) == null ? void 0 : _d.type;
195
+ origin.duration = (_e = product == null ? void 0 : product.duration) == null ? void 0 : _e.value;
196
+ if (bundle == null ? void 0 : bundle.length) {
176
197
  origin.product.product_bundle = formatBundleToOrigin(bundle);
177
198
  }
178
- if (options?.length) {
199
+ if (options == null ? void 0 : options.length) {
179
200
  origin.product.product_sku = {
180
- ...(origin.product.product_sku || {}),
181
- option: formatOptionsToOrigin(options).map(option => {
182
- const next = {
183
- ...option,
184
- add_price: option.add_price ?? option.price
185
- };
201
+ ...origin.product.product_sku || {},
202
+ option: formatOptionsToOrigin(options).map((option) => {
203
+ const next = { ...option, add_price: option.add_price ?? option.price };
186
204
  delete next.price;
187
205
  return next;
188
206
  })
@@ -191,133 +209,92 @@ const formatProductToCartItemOrigin = params => {
191
209
  }
192
210
  return origin;
193
211
  };
194
-
195
- /**
196
- * 获取商品总价
197
- * @description 当前总价计算基于商品数量为1
198
- * @param item 商品
199
- * @returns 商品总价
200
- */
201
- exports.formatProductToCartItemOrigin = formatProductToCartItemOrigin;
202
- const getProductTotalPrice = params => {
203
- const {
204
- product,
205
- bundle,
206
- options,
207
- discounts
208
- } = params;
209
- // const num = params.num || 1;
212
+ var getProductTotalPrice = (params) => {
213
+ const { product, bundle, options, discounts } = params;
210
214
  let price = Number(product.price);
211
-
212
- // option 行:unit 折后价在循环中与主商品使用同一套 getDiscountAmount(含 deductOptionPrice)
213
- const optionRows = options?.map(currentValue => ({
215
+ const optionRows = (options == null ? void 0 : options.map((currentValue) => ({
214
216
  unit: Number(currentValue.price ?? currentValue.add_price ?? 0),
215
217
  num: Number(currentValue.num ?? currentValue.quantity ?? 1)
216
- })) ?? [];
217
-
218
- // 如果商品有折扣,则计算折扣
219
- if (discounts?.length) {
220
- discounts.forEach(currentValue => {
218
+ }))) ?? [];
219
+ if (discounts == null ? void 0 : discounts.length) {
220
+ discounts.forEach((currentValue) => {
221
+ var _a;
221
222
  const payload = toDiscountPayload(currentValue);
222
- price = (0, _utils2.getDiscountAmount)(payload, price, price);
223
- if (currentValue?.config?.deductOptionPrice && optionRows.length) {
223
+ price = (0, import_utils2.getDiscountAmount)(payload, price, price);
224
+ if (((_a = currentValue == null ? void 0 : currentValue.config) == null ? void 0 : _a.deductOptionPrice) && optionRows.length) {
224
225
  for (let i = 0; i < optionRows.length; i++) {
225
226
  const row = optionRows[i];
226
227
  optionRows[i] = {
227
228
  ...row,
228
- unit: (0, _utils2.getDiscountAmount)(payload, row.unit, row.unit)
229
+ unit: (0, import_utils2.getDiscountAmount)(payload, row.unit, row.unit)
229
230
  };
230
231
  }
231
232
  }
232
233
  });
233
234
  }
234
- if (bundle?.length) {
235
+ if (bundle == null ? void 0 : bundle.length) {
235
236
  price = bundle.reduce((accumulator, currentValue) => {
236
237
  return accumulator + Number(currentValue.price) * Number(currentValue.num);
237
238
  }, price);
238
239
  }
239
-
240
- // 单规格 / 加购 option
241
240
  if (optionRows.length) {
242
- price = optionRows.reduce((accumulator, row) => accumulator + row.unit * row.num, price);
241
+ price = optionRows.reduce(
242
+ (accumulator, row) => accumulator + row.unit * row.num,
243
+ price
244
+ );
243
245
  }
244
246
  return Math.max(0, price);
245
247
  };
246
- exports.getProductTotalPrice = getProductTotalPrice;
247
- const getTotalDifference = params => {
248
- const {
249
- bundle,
250
- discounts
251
- } = params;
248
+ var getTotalDifference = (params) => {
249
+ const { bundle, discounts } = params;
252
250
  const bundleDiscountList = [];
253
- if (bundle?.length) {
254
- bundle.forEach(currentValue => {
255
- bundleDiscountList.push(...(currentValue?.discount_list || []));
251
+ if (bundle == null ? void 0 : bundle.length) {
252
+ bundle.forEach((currentValue) => {
253
+ bundleDiscountList.push(...(currentValue == null ? void 0 : currentValue.discount_list) || []);
256
254
  });
257
255
  }
258
- const allDiscounts = [...(discounts || []), ...bundleDiscountList];
259
- const productDiscountProductDiscountDifference = (0, _utils3.calcDiscountListDifference)(allDiscounts);
256
+ const allDiscounts = [...discounts || [], ...bundleDiscountList];
257
+ const productDiscountProductDiscountDifference = (0, import_utils3.calcDiscountListDifference)(allDiscounts);
260
258
  return productDiscountProductDiscountDifference || 0;
261
259
  };
262
-
263
- /**
264
- * 获取商品原始总价
265
- * @description 当前总价计算基于商品数量为1
266
- * @param item 商品
267
- * @returns 商品原始总价
268
- */
269
- const getProductOriginTotalPrice = params => {
270
- const {
271
- product,
272
- bundle,
273
- options,
274
- discounts
275
- } = params;
276
- const num = params?.num || 1;
260
+ var getProductOriginTotalPrice = (params) => {
261
+ const { product, bundle, options, discounts } = params;
262
+ const num = (params == null ? void 0 : params.num) || 1;
277
263
  let price = Number(product.original_price);
278
- if ((isNaN(price) || price === 0) && !discounts?.length) {
279
- return undefined;
264
+ if ((isNaN(price) || price === 0) && !(discounts == null ? void 0 : discounts.length)) {
265
+ return void 0;
280
266
  }
281
- if (bundle?.length) {
267
+ if (bundle == null ? void 0 : bundle.length) {
282
268
  price = bundle.reduce((accumulator, currentValue) => {
283
269
  return accumulator + Number(currentValue.price) * Number(currentValue.num);
284
270
  }, price);
285
271
  }
286
-
287
- // 单规格
288
- if (options?.length) {
272
+ if (options == null ? void 0 : options.length) {
289
273
  price = options.reduce((accumulator, currentValue) => {
290
274
  return accumulator + Number(currentValue.price) * Number(currentValue.num);
291
275
  }, price);
292
276
  }
293
277
  return price;
294
278
  };
295
-
296
- /**
297
- * 格式化套餐规格信息
298
- * @param options 套餐规格信息
299
- * @returns 格式化后的套餐规格信息
300
- */
301
- exports.getProductOriginTotalPrice = getProductOriginTotalPrice;
302
- const formatOptions = options => {
303
- if (!options?.length) return [];
304
- return options.map(item => {
279
+ var formatOptions = (options) => {
280
+ if (!(options == null ? void 0 : options.length))
281
+ return [];
282
+ return options.map((item) => {
305
283
  return {
306
- id: item?.id,
307
- name: item?.name,
308
- num: item?.num,
309
- price: item?.price,
310
- total: item?.price,
311
- origin_total: item?.original_price
284
+ id: item == null ? void 0 : item.id,
285
+ name: item == null ? void 0 : item.name,
286
+ num: item == null ? void 0 : item.num,
287
+ price: item == null ? void 0 : item.price,
288
+ total: item == null ? void 0 : item.price,
289
+ origin_total: item == null ? void 0 : item.original_price
312
290
  };
313
291
  });
314
292
  };
315
- exports.formatOptions = formatOptions;
316
- const formatOptionsToOrigin = options => {
317
- if (!options?.length) {
293
+ var formatOptionsToOrigin = (options) => {
294
+ if (!(options == null ? void 0 : options.length)) {
318
295
  return [];
319
296
  }
320
- return options.map(d => {
297
+ return options.map((d) => {
321
298
  return {
322
299
  num: d.num,
323
300
  option_group_item_id: d.option_group_item_id,
@@ -325,67 +302,63 @@ const formatOptionsToOrigin = options => {
325
302
  };
326
303
  });
327
304
  };
328
-
329
- /**
330
- * 格式化商品套餐信息
331
- * @param bundle 商品套餐信息
332
- * @returns 格式化后的商品套餐信息
333
- */
334
- exports.formatOptionsToOrigin = formatOptionsToOrigin;
335
- const formatBundle = bundle => {
336
- if (!bundle?.length) return [];
337
- return bundle.map(item => {
305
+ var formatBundle = (bundle) => {
306
+ if (!(bundle == null ? void 0 : bundle.length))
307
+ return [];
308
+ return bundle.map((item) => {
338
309
  return {
339
- id: item?.id,
340
- title: item?.title,
341
- num: item?.num,
342
- price: item?.price,
343
- total: item?.price,
344
- price_type: item?.price_type,
345
- original_price: item?.original_price,
346
- original_total: item?.original_total,
347
- price_type_ext: item?.price_type_ext,
348
- bundle_sum_price: item?.bundle_sum_price,
349
- bundle_sum_type: item?.bundle_sum_type,
350
- options: formatOptions(item?.option),
310
+ id: item == null ? void 0 : item.id,
311
+ title: item == null ? void 0 : item.title,
312
+ num: item == null ? void 0 : item.num,
313
+ price: item == null ? void 0 : item.price,
314
+ total: item == null ? void 0 : item.price,
315
+ price_type: item == null ? void 0 : item.price_type,
316
+ original_price: item == null ? void 0 : item.original_price,
317
+ original_total: item == null ? void 0 : item.original_total,
318
+ price_type_ext: item == null ? void 0 : item.price_type_ext,
319
+ bundle_sum_price: item == null ? void 0 : item.bundle_sum_price,
320
+ bundle_sum_type: item == null ? void 0 : item.bundle_sum_type,
321
+ options: formatOptions(item == null ? void 0 : item.option),
351
322
  _bundle_product_id: item._bundle_product_id,
352
323
  discount_list: item.discount_list,
353
324
  originBundleItem: item.originBundleItem || item,
354
- is_charge_tax: item?.is_charge_tax
325
+ is_charge_tax: item == null ? void 0 : item.is_charge_tax
355
326
  };
356
327
  });
357
328
  };
358
- exports.formatBundle = formatBundle;
359
- const formatBundleToOrigin = bundle => {
360
- if (!bundle?.length) return [];
361
- return bundle.map(d => {
362
- const getBundleValueByKey = key => {
363
- return d?.[key] || d?.originBundleItem?.[key];
329
+ var formatBundleToOrigin = (bundle) => {
330
+ if (!(bundle == null ? void 0 : bundle.length))
331
+ return [];
332
+ return bundle.map((d) => {
333
+ const getBundleValueByKey = (key) => {
334
+ var _a;
335
+ return (d == null ? void 0 : d[key]) || ((_a = d == null ? void 0 : d.originBundleItem) == null ? void 0 : _a[key]);
364
336
  };
365
- const product_discount_difference = (d?.discount_list || []).reduce((pre, cur) => {
366
- return pre + (cur?.metadata?.product_discount_difference || 0);
337
+ const product_discount_difference = ((d == null ? void 0 : d.discount_list) || []).reduce((pre, cur) => {
338
+ var _a;
339
+ return pre + (((_a = cur == null ? void 0 : cur.metadata) == null ? void 0 : _a.product_discount_difference) || 0);
367
340
  }, 0);
368
341
  const normalizedBundle = {
369
342
  ...d,
370
343
  // 计算 markdown 净额时只传真实毛价;若仅有 bundle_selling_price,则由 helper 当历史净额兜底。
371
- price: d?.price ?? d?.custom_price,
372
- bundle_selling_price: d?.bundle_selling_price,
373
- price_type: d?.price_type ?? d?.custom_price_type,
374
- price_type_ext: d?.price_type_ext ?? d?.custom_price_type_ext,
375
- option: getBundleValueByKey('option')
344
+ price: (d == null ? void 0 : d.price) ?? (d == null ? void 0 : d.custom_price),
345
+ bundle_selling_price: d == null ? void 0 : d.bundle_selling_price,
346
+ price_type: (d == null ? void 0 : d.price_type) ?? (d == null ? void 0 : d.custom_price_type),
347
+ price_type_ext: (d == null ? void 0 : d.price_type_ext) ?? (d == null ? void 0 : d.custom_price_type_ext),
348
+ option: getBundleValueByKey("option")
376
349
  };
377
350
  return {
378
- bundle_group_id: getBundleValueByKey('group_id'),
351
+ bundle_group_id: getBundleValueByKey("group_id"),
379
352
  bundle_id: d.id,
380
- bundle_product_id: getBundleValueByKey('_bundle_product_id') || getBundleValueByKey('product_id'),
381
- bundle_variant_id: getBundleValueByKey('bundle_variant_id'),
353
+ bundle_product_id: getBundleValueByKey("_bundle_product_id") || getBundleValueByKey("product_id"),
354
+ bundle_variant_id: getBundleValueByKey("bundle_variant_id"),
382
355
  num: d.num,
383
- extension_id: getBundleValueByKey('extension_id'),
384
- extension_type: getBundleValueByKey('extension_type'),
385
- option: formatOptionsToOrigin(getBundleValueByKey('option')),
356
+ extension_id: getBundleValueByKey("extension_id"),
357
+ extension_type: getBundleValueByKey("extension_type"),
358
+ option: formatOptionsToOrigin(getBundleValueByKey("option")),
386
359
  discount_list: d.discount_list,
387
- "bundle_selling_price": (0, _utils4.getBundleSellingMagnitude)(normalizedBundle).toFixed(2),
388
- "custom_price": d?.price,
360
+ "bundle_selling_price": (0, import_utils4.getBundleSellingMagnitude)(normalizedBundle).toFixed(2),
361
+ "custom_price": d == null ? void 0 : d.price,
389
362
  metadata: {
390
363
  custom_product_bundle_map_id: d._id,
391
364
  product_discount_difference
@@ -393,146 +366,103 @@ const formatBundleToOrigin = bundle => {
393
366
  };
394
367
  });
395
368
  };
396
-
397
- /**
398
- * 获取商品定金
399
- * @description 定金基于商品售价来算,最终乘商品数量
400
- * 1、如果套餐主商品有定金规则,则定金为:(套餐商品总售价 * 定金百分比 + 定金固定金额)* 商品数量
401
- * 2、如果套餐主商品没有定金规则,子商品有定金规则,则定金为:(套餐子商品售价 * 套餐子商品定金百分比 + 套餐子商品定金固定金额)* 商品数量,最终将所有子商品定金相加
402
- * 3、普通商品/单规格商品/组合规则商品,定金规则:(商品总售价 * 定金百分比 + 定金固定金额)* 商品数量
403
- * @param params 参数
404
- * @returns 商品定金
405
- */
406
- exports.formatBundleToOrigin = formatBundleToOrigin;
407
- const getProductDeposit = params => {
408
- const {
409
- cartItem,
410
- product,
411
- bundle,
412
- options
413
- } = params;
414
- const num = params?.num || 1;
415
-
416
- // 判定商品是否有定金规则
417
- if (product?.custom_deposit_data?.has_deposit == 1) {
418
- let total = new _decimal.default(0);
369
+ var getProductDeposit = (params) => {
370
+ var _a, _b;
371
+ const { cartItem, product, bundle, options } = params;
372
+ const num = (params == null ? void 0 : params.num) || 1;
373
+ if (((_a = product == null ? void 0 : product.custom_deposit_data) == null ? void 0 : _a.has_deposit) == 1) {
374
+ let total = new import_decimal.default(0);
419
375
  const {
420
376
  deposit_fixed,
421
377
  deposit_percentage,
422
378
  deposit_policy_data,
423
379
  self_deposit_policy_ids
424
- } = product?.custom_deposit_data || {};
425
- // 所有协议数据
380
+ } = (product == null ? void 0 : product.custom_deposit_data) || {};
426
381
  const allProtocols = deposit_policy_data || [];
427
- // 是否存在定金,主商品has_deposit为1,但是自身没有定金设置,需要判定子商品是否存在定金,如果不存在最终判定也是不存在定金
428
382
  let productHasDeposit = false;
429
- // 关联的定金协议id
430
383
  const protocolIds = [];
431
-
432
- // 判断主商品是否有定金规则
433
- if (typeof deposit_fixed === 'string' && typeof deposit_percentage === 'string') {
434
- const {
435
- depositTotal,
436
- result
437
- } = handleProductDeposit({
438
- depositData: product?.custom_deposit_data,
384
+ if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
385
+ const { depositTotal, result } = handleProductDeposit({
386
+ depositData: product == null ? void 0 : product.custom_deposit_data,
439
387
  total: cartItem.total || 0,
440
388
  num
441
389
  });
442
390
  if (result) {
443
391
  total = depositTotal;
444
- protocolIds.push(...(self_deposit_policy_ids || []));
392
+ protocolIds.push(...self_deposit_policy_ids || []);
445
393
  productHasDeposit = true;
446
394
  }
447
395
  } else {
448
- // 组合规格商品
449
- if (product?.product_variant_id) {
450
- const variantProduct = product?.variant?.find(item => item?.id === product?.product_variant_id);
396
+ if (product == null ? void 0 : product.product_variant_id) {
397
+ const variantProduct = (_b = product == null ? void 0 : product.variant) == null ? void 0 : _b.find(
398
+ (item) => (item == null ? void 0 : item.id) === (product == null ? void 0 : product.product_variant_id)
399
+ );
451
400
  if (variantProduct) {
452
- const depositData = variantProduct?.custom_deposit_data;
453
- const {
454
- depositTotal,
455
- result
456
- } = handleProductDeposit({
401
+ const depositData = variantProduct == null ? void 0 : variantProduct.custom_deposit_data;
402
+ const { depositTotal, result } = handleProductDeposit({
457
403
  depositData,
458
- total: cartItem?.total || 0,
404
+ total: (cartItem == null ? void 0 : cartItem.total) || 0,
459
405
  num
460
406
  });
461
407
  if (result) {
462
408
  total = depositTotal;
463
- protocolIds.push(...(depositData?.self_deposit_policy_ids || []));
409
+ protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
464
410
  productHasDeposit = true;
465
411
  }
466
412
  }
467
413
  }
468
- if (bundle?.length) {
414
+ if (bundle == null ? void 0 : bundle.length) {
469
415
  total = bundle.reduce((accumulator, currBundleProduct) => {
470
- const depositData = currBundleProduct?.custom_deposit_data;
471
- const {
472
- depositTotal,
473
- result
474
- } = handleProductDeposit({
416
+ const depositData = currBundleProduct == null ? void 0 : currBundleProduct.custom_deposit_data;
417
+ const { depositTotal, result } = handleProductDeposit({
475
418
  depositData,
476
- total: currBundleProduct?.price,
477
- num: currBundleProduct?.num || 1
419
+ total: currBundleProduct == null ? void 0 : currBundleProduct.price,
420
+ num: (currBundleProduct == null ? void 0 : currBundleProduct.num) || 1
478
421
  });
479
422
  if (result) {
480
- protocolIds.push(...(depositData?.self_deposit_policy_ids || []));
423
+ protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
481
424
  productHasDeposit = true;
482
425
  return accumulator.plus(depositTotal);
483
426
  }
484
427
  return accumulator;
485
- }, new _decimal.default(0));
428
+ }, new import_decimal.default(0));
486
429
  }
487
430
  }
488
431
  if (productHasDeposit) {
489
432
  const ids = new Set(protocolIds);
490
- const protocols = allProtocols.filter(item => ids.has(item.id));
491
- return {
492
- total: total.toNumber(),
493
- protocols
494
- };
433
+ const protocols = allProtocols.filter((item) => ids.has(item.id));
434
+ return { total: total.toNumber(), protocols };
495
435
  }
496
436
  return null;
497
437
  }
498
438
  return null;
499
439
  };
500
-
501
- /**
502
- * 计算商品定金
503
- * @param params 参数
504
- * @returns 商品定金
505
- */
506
- exports.getProductDeposit = getProductDeposit;
507
- const handleProductDeposit = params => {
508
- const {
509
- depositData,
510
- total,
511
- num
512
- } = params;
440
+ var handleProductDeposit = (params) => {
441
+ const { depositData, total, num } = params;
513
442
  if (!depositData) {
514
- return {
515
- result: false,
516
- depositTotal: new _decimal.default(0)
517
- };
443
+ return { result: false, depositTotal: new import_decimal.default(0) };
518
444
  }
519
- const {
520
- deposit_fixed,
521
- deposit_percentage
522
- } = depositData || {};
523
- if (typeof deposit_fixed === 'string' && typeof deposit_percentage === 'string') {
524
- const depositFixed = (0, _decimal.default)(deposit_fixed || 0);
525
- const depositPercent = (0, _decimal.default)(deposit_percentage || 0);
526
- const productTotalPrice = (0, _decimal.default)(total || 0);
445
+ const { deposit_fixed, deposit_percentage } = depositData || {};
446
+ if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
447
+ const depositFixed = (0, import_decimal.default)(deposit_fixed || 0);
448
+ const depositPercent = (0, import_decimal.default)(deposit_percentage || 0);
449
+ const productTotalPrice = (0, import_decimal.default)(total || 0);
527
450
  const deposit = depositFixed.plus(depositPercent.times(productTotalPrice));
528
- return {
529
- depositTotal: deposit.times(num),
530
- result: true
531
- };
451
+ return { depositTotal: deposit.times(num), result: true };
532
452
  }
533
- return {
534
- result: false,
535
- depositTotal: new _decimal.default(0)
536
- };
453
+ return { result: false, depositTotal: new import_decimal.default(0) };
537
454
  };
538
- exports.handleProductDeposit = handleProductDeposit;
455
+ // Annotate the CommonJS export names for ESM import in node:
456
+ 0 && (module.exports = {
457
+ formatBundle,
458
+ formatBundleToOrigin,
459
+ formatOptions,
460
+ formatOptionsToOrigin,
461
+ formatProductToCartItem,
462
+ formatProductToCartItemOrigin,
463
+ getProductDeposit,
464
+ getProductOriginTotalPrice,
465
+ getProductTotalPrice,
466
+ handleProductDeposit,
467
+ handleVariantProduct
468
+ });