@pisell/pisellos 2.1.171 → 2.1.172

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 (230) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -3
  3. package/dist/model/strategy/adapter/index.d.ts +0 -4
  4. package/dist/model/strategy/adapter/index.js +1 -5
  5. package/dist/model/strategy/adapter/promotion/evaluator.js +99 -26
  6. package/dist/model/strategy/adapter/walletPass/evaluator.d.ts +2 -0
  7. package/dist/model/strategy/adapter/walletPass/evaluator.js +61 -8
  8. package/dist/model/strategy/adapter/walletPass/locales.js +12 -3
  9. package/dist/model/strategy/engine.d.ts +18 -5
  10. package/dist/model/strategy/engine.js +145 -45
  11. package/dist/model/strategy/type.d.ts +17 -0
  12. package/dist/model/strategy/type.js +4 -0
  13. package/dist/modules/Cart/types.d.ts +2 -0
  14. package/dist/modules/Cart/utils/cartProduct.js +56 -25
  15. package/dist/modules/Cart/utils/changePrice.js +9 -16
  16. package/dist/modules/Discount/index.d.ts +4 -13
  17. package/dist/modules/Discount/index.js +12 -124
  18. package/dist/modules/Discount/types.d.ts +18 -13
  19. package/dist/modules/Order/index.d.ts +1 -67
  20. package/dist/modules/Order/index.js +30 -918
  21. package/dist/modules/Order/types.d.ts +12 -176
  22. package/dist/modules/Order/types.js +0 -2
  23. package/dist/modules/Order/utils.d.ts +0 -118
  24. package/dist/modules/Order/utils.js +2 -586
  25. package/dist/modules/Payment/index.d.ts +2 -1
  26. package/dist/modules/Payment/index.js +10 -7
  27. package/dist/modules/Payment/utils.js +3 -0
  28. package/dist/modules/Payment/walletpass.d.ts +23 -0
  29. package/dist/modules/Payment/walletpass.js +191 -95
  30. package/dist/modules/Product/utils.js +2 -2
  31. package/dist/modules/ProductList/index.d.ts +2 -4
  32. package/dist/modules/ProductList/index.js +12 -24
  33. package/dist/modules/Rules/index.d.ts +9 -5
  34. package/dist/modules/Rules/index.js +669 -173
  35. package/dist/modules/Rules/types.d.ts +2 -0
  36. package/dist/modules/Schedule/getDateIsInSchedule.js +18 -16
  37. package/dist/modules/Schedule/utils.d.ts +1 -1
  38. package/dist/modules/Summary/types.d.ts +2 -0
  39. package/dist/modules/Summary/utils.d.ts +9 -3
  40. package/dist/modules/Summary/utils.js +57 -67
  41. package/dist/modules/index.d.ts +0 -4
  42. package/dist/modules/index.js +1 -5
  43. package/dist/plugins/window.d.ts +2 -0
  44. package/dist/solution/BookingByStep/index.d.ts +3 -2
  45. package/dist/solution/BookingByStep/index.js +43 -46
  46. package/dist/solution/BookingByStep/types.d.ts +1 -3
  47. package/dist/solution/BookingByStep/types.js +1 -5
  48. package/dist/solution/BookingByStep/utils/timeslots.d.ts +1 -3
  49. package/dist/solution/BookingByStep/utils/timeslots.js +12 -19
  50. package/dist/solution/Checkout/index.js +2 -0
  51. package/dist/solution/ShopDiscount/index.d.ts +2 -3
  52. package/dist/solution/ShopDiscount/index.js +60 -62
  53. package/dist/solution/ShopDiscount/types.d.ts +1 -1
  54. package/dist/solution/ShopDiscount/types.js +2 -1
  55. package/dist/solution/ShopDiscount/utils.js +26 -12
  56. package/dist/solution/index.d.ts +0 -2
  57. package/dist/solution/index.js +1 -3
  58. package/lib/index.d.ts +1 -1
  59. package/lib/index.js +3 -4
  60. package/lib/model/strategy/adapter/index.d.ts +0 -4
  61. package/lib/model/strategy/adapter/index.js +2 -13
  62. package/lib/model/strategy/adapter/promotion/evaluator.js +57 -8
  63. package/lib/model/strategy/adapter/walletPass/evaluator.d.ts +2 -0
  64. package/lib/model/strategy/adapter/walletPass/evaluator.js +34 -3
  65. package/lib/model/strategy/adapter/walletPass/locales.js +12 -3
  66. package/lib/model/strategy/engine.d.ts +18 -5
  67. package/lib/model/strategy/engine.js +85 -21
  68. package/lib/model/strategy/type.d.ts +17 -0
  69. package/lib/modules/Cart/types.d.ts +2 -0
  70. package/lib/modules/Cart/utils/cartProduct.js +39 -12
  71. package/lib/modules/Cart/utils/changePrice.js +9 -13
  72. package/lib/modules/Discount/index.d.ts +4 -13
  73. package/lib/modules/Discount/index.js +5 -76
  74. package/lib/modules/Discount/types.d.ts +18 -13
  75. package/lib/modules/Order/index.d.ts +1 -67
  76. package/lib/modules/Order/index.js +1 -525
  77. package/lib/modules/Order/types.d.ts +12 -176
  78. package/lib/modules/Order/utils.d.ts +0 -118
  79. package/lib/modules/Order/utils.js +2 -483
  80. package/lib/modules/Payment/index.d.ts +2 -1
  81. package/lib/modules/Payment/index.js +1 -0
  82. package/lib/modules/Payment/utils.js +3 -0
  83. package/lib/modules/Payment/walletpass.d.ts +23 -0
  84. package/lib/modules/Payment/walletpass.js +94 -17
  85. package/lib/modules/Product/utils.js +2 -2
  86. package/lib/modules/ProductList/index.d.ts +2 -4
  87. package/lib/modules/ProductList/index.js +39 -46
  88. package/lib/modules/Rules/index.d.ts +9 -5
  89. package/lib/modules/Rules/index.js +776 -292
  90. package/lib/modules/Rules/types.d.ts +2 -0
  91. package/lib/modules/Schedule/getDateIsInSchedule.js +11 -13
  92. package/lib/modules/Schedule/utils.d.ts +1 -1
  93. package/lib/modules/Summary/types.d.ts +2 -0
  94. package/lib/modules/Summary/utils.d.ts +9 -3
  95. package/lib/modules/Summary/utils.js +34 -45
  96. package/lib/modules/index.d.ts +0 -4
  97. package/lib/modules/index.js +1 -9
  98. package/lib/plugins/window.d.ts +2 -0
  99. package/lib/solution/BookingByStep/index.d.ts +3 -2
  100. package/lib/solution/BookingByStep/index.js +4 -6
  101. package/lib/solution/BookingByStep/types.d.ts +1 -3
  102. package/lib/solution/BookingByStep/types.js +0 -10
  103. package/lib/solution/BookingByStep/utils/timeslots.d.ts +1 -3
  104. package/lib/solution/BookingByStep/utils/timeslots.js +11 -19
  105. package/lib/solution/Checkout/index.js +2 -0
  106. package/lib/solution/ShopDiscount/index.d.ts +2 -3
  107. package/lib/solution/ShopDiscount/index.js +27 -22
  108. package/lib/solution/ShopDiscount/types.d.ts +1 -1
  109. package/lib/solution/ShopDiscount/utils.js +10 -6
  110. package/lib/solution/index.d.ts +0 -2
  111. package/lib/solution/index.js +1 -5
  112. package/package.json +2 -2
  113. package/dist/apis/picoding.d.ts +0 -0
  114. package/dist/apis/picoding.js +0 -1
  115. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  116. package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
  117. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  118. package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
  119. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  120. package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
  121. package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  122. package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
  123. package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  124. package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
  125. package/dist/modules/OpenData/index.d.ts +0 -24
  126. package/dist/modules/OpenData/index.js +0 -173
  127. package/dist/modules/OpenData/types.d.ts +0 -73
  128. package/dist/modules/OpenData/types.js +0 -1
  129. package/dist/modules/OpenData/utils.d.ts +0 -2
  130. package/dist/modules/OpenData/utils.js +0 -75
  131. package/dist/modules/Quotation/index.d.ts +0 -48
  132. package/dist/modules/Quotation/index.js +0 -248
  133. package/dist/modules/Quotation/types.d.ts +0 -42
  134. package/dist/modules/Quotation/types.js +0 -1
  135. package/dist/modules/SalesSummary/index.d.ts +0 -63
  136. package/dist/modules/SalesSummary/index.js +0 -174
  137. package/dist/modules/SalesSummary/types.d.ts +0 -60
  138. package/dist/modules/SalesSummary/types.js +0 -1
  139. package/dist/modules/SalesSummary/utils.d.ts +0 -30
  140. package/dist/modules/SalesSummary/utils.js +0 -480
  141. package/dist/modules/ScanOrderLogger/index.d.ts +0 -23
  142. package/dist/modules/ScanOrderLogger/index.js +0 -174
  143. package/dist/modules/ScanOrderLogger/providers/feishu.d.ts +0 -2
  144. package/dist/modules/ScanOrderLogger/providers/feishu.js +0 -221
  145. package/dist/modules/ScanOrderLogger/providers/grafana.d.ts +0 -2
  146. package/dist/modules/ScanOrderLogger/providers/grafana.js +0 -50
  147. package/dist/modules/ScanOrderLogger/types.d.ts +0 -53
  148. package/dist/modules/ScanOrderLogger/types.js +0 -1
  149. package/dist/solution/ScanOrder/index.d.ts +0 -158
  150. package/dist/solution/ScanOrder/index.js +0 -3474
  151. package/dist/solution/ScanOrder/types.d.ts +0 -306
  152. package/dist/solution/ScanOrder/types.js +0 -35
  153. package/dist/solution/ScanOrder/utils.d.ts +0 -172
  154. package/dist/solution/ScanOrder/utils.js +0 -796
  155. package/dist/solution/VenueBooking/index.d.ts +0 -262
  156. package/dist/solution/VenueBooking/index.js +0 -3991
  157. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -343
  158. package/dist/solution/VenueBooking/types.d.ts +0 -156
  159. package/dist/solution/VenueBooking/types.js +0 -22
  160. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +0 -11
  161. package/dist/solution/VenueBooking/utils/dateSummary.js +0 -91
  162. package/dist/solution/VenueBooking/utils/resource.d.ts +0 -14
  163. package/dist/solution/VenueBooking/utils/resource.js +0 -131
  164. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -32
  165. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -233
  166. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  167. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  168. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -34
  169. package/dist/solution/VenueBooking/utils/timeSlot.js +0 -458
  170. package/dist/solution/VenueBooking/utils.d.ts +0 -1
  171. package/dist/solution/VenueBooking/utils.js +0 -1
  172. package/lib/apis/picoding.d.ts +0 -0
  173. package/lib/apis/picoding.js +0 -0
  174. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  175. package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
  176. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  177. package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
  178. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  179. package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
  180. package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  181. package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
  182. package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  183. package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
  184. package/lib/modules/OpenData/index.d.ts +0 -24
  185. package/lib/modules/OpenData/index.js +0 -119
  186. package/lib/modules/OpenData/types.d.ts +0 -73
  187. package/lib/modules/OpenData/types.js +0 -17
  188. package/lib/modules/OpenData/utils.d.ts +0 -2
  189. package/lib/modules/OpenData/utils.js +0 -111
  190. package/lib/modules/Quotation/index.d.ts +0 -48
  191. package/lib/modules/Quotation/index.js +0 -152
  192. package/lib/modules/Quotation/types.d.ts +0 -42
  193. package/lib/modules/Quotation/types.js +0 -17
  194. package/lib/modules/SalesSummary/index.d.ts +0 -63
  195. package/lib/modules/SalesSummary/index.js +0 -105
  196. package/lib/modules/SalesSummary/types.d.ts +0 -60
  197. package/lib/modules/SalesSummary/types.js +0 -17
  198. package/lib/modules/SalesSummary/utils.d.ts +0 -30
  199. package/lib/modules/SalesSummary/utils.js +0 -420
  200. package/lib/modules/ScanOrderLogger/index.d.ts +0 -23
  201. package/lib/modules/ScanOrderLogger/index.js +0 -147
  202. package/lib/modules/ScanOrderLogger/providers/feishu.d.ts +0 -2
  203. package/lib/modules/ScanOrderLogger/providers/feishu.js +0 -157
  204. package/lib/modules/ScanOrderLogger/providers/grafana.d.ts +0 -2
  205. package/lib/modules/ScanOrderLogger/providers/grafana.js +0 -52
  206. package/lib/modules/ScanOrderLogger/types.d.ts +0 -53
  207. package/lib/modules/ScanOrderLogger/types.js +0 -17
  208. package/lib/solution/ScanOrder/index.d.ts +0 -158
  209. package/lib/solution/ScanOrder/index.js +0 -2135
  210. package/lib/solution/ScanOrder/types.d.ts +0 -306
  211. package/lib/solution/ScanOrder/types.js +0 -36
  212. package/lib/solution/ScanOrder/utils.d.ts +0 -172
  213. package/lib/solution/ScanOrder/utils.js +0 -658
  214. package/lib/solution/VenueBooking/index.d.ts +0 -262
  215. package/lib/solution/VenueBooking/index.js +0 -2394
  216. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -343
  217. package/lib/solution/VenueBooking/types.d.ts +0 -156
  218. package/lib/solution/VenueBooking/types.js +0 -45
  219. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +0 -11
  220. package/lib/solution/VenueBooking/utils/dateSummary.js +0 -105
  221. package/lib/solution/VenueBooking/utils/resource.d.ts +0 -14
  222. package/lib/solution/VenueBooking/utils/resource.js +0 -92
  223. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -32
  224. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -236
  225. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  226. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -180
  227. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -34
  228. package/lib/solution/VenueBooking/utils/timeSlot.js +0 -343
  229. package/lib/solution/VenueBooking/utils.d.ts +0 -1
  230. package/lib/solution/VenueBooking/utils.js +0 -69
@@ -1,9 +1,4 @@
1
1
  import { CartItem } from '../Cart/types';
2
- import type { ScanOrderTempOrder, ScanOrderOrderProduct, ScanOrderOrderProductIdentity, ScanOrderSummary } from '../../solution/ScanOrder/types';
3
- import type { DiscountModule } from '../Discount';
4
- import type { RulesModule } from '../Rules';
5
- import type { Discount } from '../Discount/types';
6
- import type { SubmitPayloadEnhancer } from './utils';
7
2
  export declare enum OrderHooks {
8
3
  OnOrderCreate = "order:onOrderCreate",
9
4
  OnOrderUpdate = "order:onOrderUpdate",
@@ -11,20 +6,6 @@ export declare enum OrderHooks {
11
6
  OnOrderStatusChange = "order:onOrderStatusChange"
12
7
  }
13
8
  export interface OrderState {
14
- tempOrder: ScanOrderTempOrder | null;
15
- discountList: any[];
16
- discount: DiscountModule | null;
17
- rules: RulesModule | null;
18
- availableWalletIds?: number[];
19
- }
20
- /** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 identity_key / 选项指纹等 */
21
- export interface UpdateProductInOrderParams {
22
- product_id: number | null;
23
- product_variant_id: number;
24
- updates: Partial<ScanOrderOrderProduct>;
25
- identity_key?: string;
26
- product_option_item?: any[];
27
- product_bundle?: any[];
28
9
  }
29
10
  /**
30
11
  * 订单信息
@@ -39,126 +20,6 @@ export interface CommitOrderParams {
39
20
  business_code?: string;
40
21
  };
41
22
  }
42
- export interface SubmitScanOrderProduct {
43
- order_detail_id: number | null;
44
- product_id: number | null;
45
- num: number;
46
- product_variant_id: number;
47
- product_option_item: any[];
48
- /**
49
- * 行 composite 券后单价。
50
- * 公式:`metadata.main_product_selling_price` + Σ(bundle_selling_price × num)。
51
- * 主商品(含 option、含主商品折扣)的单价存在 `metadata.main_product_selling_price`。
52
- */
53
- selling_price: string;
54
- /**
55
- * 行 composite 券前单价。
56
- * 公式:`metadata.main_product_original_price` + Σ(bundle 原价 × num)。
57
- * 主商品(含 option、不含折扣)的单价存在 `metadata.main_product_original_price`。
58
- */
59
- original_price: string;
60
- /** 出站兼容字段,直接由 `selling_price` 派生,语义同 composite。 */
61
- payment_price: string;
62
- tax_fee: string;
63
- is_charge_tax: number;
64
- discount_list: any[];
65
- product_bundle: any[];
66
- metadata: Record<string, any>;
67
- /** 商品行备注 */
68
- note?: string;
69
- }
70
- export interface SubmitScanOrderSummary {
71
- product_quantity: number;
72
- product_original_amount: string;
73
- product_amount: string;
74
- product_expect_amount: string;
75
- product_tax_fee: string;
76
- shipping_fee: string;
77
- shipping_tax_fee: string;
78
- tax_fee: string;
79
- surcharge_fee: string;
80
- discount_amount: string;
81
- deposit_amount: string;
82
- expect_amount: string;
83
- total_amount: string;
84
- amount_gap: string;
85
- rounding_amount: string;
86
- pay_service_charge_amount: string;
87
- }
88
- export interface SubmitScanOrderBooking {
89
- relation_id?: string;
90
- form_id?: string;
91
- collect_pax?: number;
92
- start_time?: string;
93
- end_time?: string;
94
- metadata?: Record<string, any>;
95
- resources?: Array<Record<string, any>>;
96
- product_uid?: string;
97
- }
98
- export interface SubmitScanOrderFormRecord {
99
- form_id: number | string;
100
- form_record_id: number | string;
101
- }
102
- export interface SubmitScanOrderParams {
103
- url?: string;
104
- query: {
105
- order_id: number | null;
106
- relation_id?: string;
107
- table_form_id?: string;
108
- resource_id?: string;
109
- order_number: string;
110
- shop_order_number: string;
111
- type: string;
112
- business_code: string;
113
- platform: 'H5' | 'PC';
114
- request_unique_idempotency_token?: string;
115
- sales_channel: string;
116
- order_sales_channel: string;
117
- status: string;
118
- payment_status: string;
119
- shipping_status: string;
120
- customer_id: number | null;
121
- customer_name: string;
122
- country_calling_code: string;
123
- phone: string;
124
- email: string;
125
- is_price_include_tax: number;
126
- tax_title: string;
127
- tax_country_code: string;
128
- currency_code: string;
129
- currency_symbol: string;
130
- currency_format: string;
131
- is_deposit: number;
132
- deposit_amount: string;
133
- shop_discount: string;
134
- surcharge_fee: string;
135
- note: string;
136
- delivery_type?: string;
137
- table_number?: Record<string, any>;
138
- schedule_date: string;
139
- created_at?: string;
140
- products: SubmitScanOrderProduct[];
141
- bookings: SubmitScanOrderBooking[];
142
- payments: any[];
143
- surcharges?: any[];
144
- discount_list: any[];
145
- relation_forms: any[];
146
- form_record_ids?: SubmitScanOrderFormRecord[];
147
- contacts: any[];
148
- contacts_info: any[];
149
- holder: Record<string, any> | null;
150
- summary?: SubmitScanOrderSummary;
151
- metadata: Record<string, any>;
152
- };
153
- }
154
- export interface ScanOrderMoreParams {
155
- url?: string;
156
- query: {
157
- order_id: number | string;
158
- products: SubmitScanOrderProduct[];
159
- request_unique_idempotency_token?: string;
160
- };
161
- }
162
23
  /**
163
24
  * 支付项数据
164
25
  */
@@ -202,11 +63,23 @@ export interface CheckoutOrderParams {
202
63
  * 订单模块 API
203
64
  */
204
65
  export interface OrderModuleAPI {
66
+ /**
67
+ * 创建订单
68
+ * @param params 订单信息
69
+ * @returns 订单信息
70
+ */
205
71
  createOrder: (params: CommitOrderParams['query']) => any;
72
+ /**
73
+ * 检查购物车提交订单前是否符合条件
74
+ */
206
75
  checkBeforeSubmitOrder: (params: {
207
76
  cartItems: CartItem[];
208
77
  type: 'holder' | 'account';
209
78
  }) => boolean;
79
+ /**
80
+ * 提交订单
81
+ * @param params 订单信息
82
+ */
210
83
  submitOrder: (params: CommitOrderParams) => Promise<void>;
211
84
  /**
212
85
  * Checkout 专用:创建订单到后端
@@ -214,41 +87,4 @@ export interface OrderModuleAPI {
214
87
  * @returns 后端返回的订单数据
215
88
  */
216
89
  createOrderByCheckout: (params: CheckoutOrderParams) => Promise<any>;
217
- submitScanOrder: <T = any>(params: SubmitScanOrderParams) => Promise<T>;
218
- scanOrderMore: <T = any>(params: ScanOrderMoreParams) => Promise<T>;
219
- initTempOrder: (params: {
220
- cacheId?: string;
221
- salesSummaryModuleName?: string;
222
- }) => void;
223
- getTempOrder: () => ScanOrderTempOrder | null;
224
- ensureTempOrder: () => ScanOrderTempOrder;
225
- addNewOrder: () => Promise<ScanOrderTempOrder>;
226
- restoreOrder: () => ScanOrderTempOrder;
227
- getOrderProducts: () => ScanOrderOrderProduct[];
228
- getScanOrderSummary: () => Promise<ScanOrderSummary>;
229
- recalculateSummary: (options?: {
230
- createIfMissing?: boolean;
231
- }) => Promise<ScanOrderSummary | null>;
232
- updateTempOrderNote: (note: string) => string;
233
- updateTempOrderBuzzer: (buzzer: string) => string;
234
- updateTempOrderContactsInfo: (contactsInfo: any[]) => any[];
235
- addProductToOrder: (product: Partial<ScanOrderOrderProduct> & ScanOrderOrderProductIdentity) => Promise<ScanOrderOrderProduct[]>;
236
- updateProductInOrder: (params: UpdateProductInOrderParams) => Promise<ScanOrderOrderProduct[]>;
237
- removeProductFromOrder: (identity: ScanOrderOrderProductIdentity) => Promise<ScanOrderOrderProduct[]>;
238
- persistTempOrder: () => void;
239
- submitTempOrder: <T = any>(params?: {
240
- cacheId?: string;
241
- platform?: string;
242
- businessCode?: string;
243
- channel?: string;
244
- type?: string;
245
- enhancePayload?: SubmitPayloadEnhancer;
246
- }) => Promise<T>;
247
- loadDiscountConfig: (params: {
248
- customerId: number;
249
- action?: 'create';
250
- }) => Promise<void>;
251
- getDiscountList: () => Discount[];
252
- getAvailableWalletIds: () => number[];
253
- applyDiscount: () => void;
254
90
  }
@@ -6,8 +6,6 @@ export var OrderHooks = /*#__PURE__*/function (OrderHooks) {
6
6
  return OrderHooks;
7
7
  }({});
8
8
 
9
- /** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 identity_key / 选项指纹等 */
10
-
11
9
  /**
12
10
  * 订单信息
13
11
  */
@@ -1,70 +1,4 @@
1
- import Decimal from 'decimal.js';
2
1
  import { CartItem } from "../Cart";
3
- import type { ScanOrderSubmitPayload, ScanOrderSubmitProduct, ScanOrderSummary, ScanOrderTempOrder } from '../../solution/ScanOrder/types';
4
- import type { RulesParamsHooks } from '../Rules/types';
5
- /**
6
- * 把"含 option 的主商品单价"与 bundle 合成"单行 composite 单价"。
7
- *
8
- * 新语义 v2 约定:
9
- * - `mainPrice` 必须是**已经包含 option 的主商品单价**(即 `metadata.main_product_selling_price`
10
- * 或 `metadata.main_product_original_price`),option 价格不由本函数叠加。
11
- * - 套餐价:Σ((bundle.bundle_selling_price ?? bundle.price) × (bundle.num ?? bundle.quantity ?? 1))
12
- * 当 `useOriginalBundle=true` 时,改用 `bundle.original_price ?? bundle.product_price ?? bundle.price`。
13
- * - 返回值:保留 2 位小数的字符串,方便直接写回 `selling_price` / `original_price` 字段。
14
- *
15
- * 被 `normalizeOrderProduct`、Rules setProduct 钩子、各 Solution 的 setDiscountSelected 共用,
16
- * 保证合成逻辑单点来源。
17
- */
18
- export declare function composeLinePrice(params: {
19
- mainPrice: string | number | null | undefined;
20
- bundle?: Array<{
21
- bundle_selling_price?: any;
22
- price?: any;
23
- num?: any;
24
- quantity?: any;
25
- original_price?: any;
26
- product_price?: any;
27
- }> | null;
28
- useOriginalBundle?: boolean;
29
- }): string;
30
- /**
31
- * 计算 option 单价合计:Σ(option.price × option.num)。
32
- * 在新语义 v2 下,main_product_original_price = source_product_price + 本函数结果。
33
- */
34
- export declare function sumOptionUnitPrice(options?: Array<{
35
- price?: any;
36
- num?: any;
37
- }> | null): Decimal;
38
- /**
39
- * OrderModule 默认 Rules 钩子工厂。
40
- *
41
- * 价格语义约定(订单域,v2 composite 口径):
42
- * - `selling_price`:券后 **行 composite 单价**
43
- * = `metadata.main_product_selling_price` + Σ(bundle_selling_price × num)。
44
- * - `original_price`:券前 **行 composite 单价**
45
- * = `metadata.main_product_original_price` + Σ(bundle 原价 × num)。
46
- * - `metadata.source_product_price`:主商品/variant 基础价(已应用报价单),不含 option、
47
- * 不含折扣。**权威源**。
48
- * - `metadata.main_product_original_price` = source + Σ(option.price × option.num)(含 option、不含折扣)。
49
- * - `metadata.main_product_selling_price` = main_original − 主商品券 per-unit amount(含 option、含折扣)。
50
- * - `payment_price`:出站 payload 中由 `selling_price` 派生以兼容后端(composite)。
51
- *
52
- * Rules 钩子契约(hook_adapt 方案,Rules 内部保持不变):
53
- * - `getProduct.price` / `getProduct.original_price` 回传 **source-level 主价**
54
- * (`metadata.source_product_price`)。Rules 内部 `getProductTotalPrice` /
55
- * `getProductOriginTotalPrice` 会自行叠加 option + bundle,喂 source 可避免 option 双加。
56
- * - `getProduct.total` = `selling_price × num`(行 composite × num),与 Rules 内部产出的
57
- * total(source + option + bundle)对齐。
58
- * - `setProduct` 反向流程:把 Rules 返回的 source-level `main_product_selling_price` / `price`
59
- * 加回 Σoptions,重新合成含 option 的 main_product_* 并派生 composite。
60
- * 优先级:
61
- * 1. `values.main_product_selling_price`(券应用分支,per-unit 券后 source-level 主价)
62
- * 2. `values.price`(还原分支 `restoredPrice`、good_pass 归零)
63
- * 3. `values.total / num`(仅当 Rules 只给出总价时的兜底)
64
- *
65
- * 导出为纯函数方便单测直接驱动钩子,不依赖 OrderModule 实例。
66
- */
67
- export declare function createDefaultOrderRulesHooks(): RulesParamsHooks;
68
2
  /**
69
3
  * 通过 session 类商品的开始时间结束时间生成商品的时长
70
4
  * @param {CartItem} cartItem
@@ -87,55 +21,3 @@ export declare const mergeRelationForms: (relationForms: {
87
21
  form_record_ids: number[];
88
22
  }[];
89
23
  export declare const getAllDiscountList: (cartItem: CartItem) => any;
90
- export declare function createUuidV4(): string;
91
- export declare function isTempOrder(data: any): data is ScanOrderTempOrder;
92
- export declare function formatDateTime(date: Date): string;
93
- export declare function normalizeSubmitBooking<T extends {
94
- metadata?: Record<string, any>;
95
- }>(booking: T): T;
96
- /** 提交用人数:有限且为正则向下取整,否则为 1 */
97
- export declare function normalizeSubmitCollectPaxValue(value: unknown): number;
98
- /** 从临时订单 metadata 解析合成 booking 的 collect_pax */
99
- export declare function resolveSubmitCollectPax(tempOrder: ScanOrderTempOrder): number;
100
- export declare function createDefaultTempOrder(params: {
101
- now: string;
102
- summary?: ScanOrderSummary;
103
- }): ScanOrderTempOrder;
104
- export interface SubmitPayloadEnhancerContext {
105
- tempOrder: ScanOrderTempOrder;
106
- bookingUuid: string;
107
- now: Date;
108
- }
109
- export type SubmitPayloadEnhancer = (payload: ScanOrderSubmitPayload, ctx: SubmitPayloadEnhancerContext) => ScanOrderSubmitPayload;
110
- export declare function buildSubmitPayload(params: {
111
- tempOrder: ScanOrderTempOrder;
112
- cacheId?: string;
113
- now?: Date;
114
- platform?: string;
115
- businessCode?: string;
116
- channel?: string;
117
- type?: string;
118
- enhance?: SubmitPayloadEnhancer;
119
- }): ScanOrderSubmitPayload;
120
- /** 加单(scanOrderMore)不应提交 booking 关联的虚拟规则商品行 */
121
- export declare function filterProductsForScanOrderMore(products: ScanOrderSubmitProduct[]): ScanOrderSubmitProduct[];
122
- /**
123
- * 历史 V1 加餐结构映射器。
124
- *
125
- * @deprecated 加餐(`PUT /order/order/product/:id`)已改为与正常 checkout 共用
126
- * `ScanOrderSubmitProduct` 新结构(见 `OrderModule.submitTempOrder` 的加餐分支)。
127
- * 本函数仅保留以兼容历史接入方,未来会移除。新代码请勿再调用。
128
- */
129
- export declare function formatV1Product(products: ScanOrderSubmitProduct[]): {
130
- bundle: any[];
131
- key: number | null;
132
- option: any[];
133
- product_id: number | null;
134
- product_variant_id: number;
135
- num: number;
136
- note: string;
137
- rowKey: number | null;
138
- session: null;
139
- unique: string;
140
- }[];
141
- export { createEmptySummary } from '../../solution/ScanOrder/utils';