@pisell/pisellos 2.2.264 → 2.2.265

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 (152) hide show
  1. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +50 -0
  2. package/dist/model/strategy/adapter/dataVariant/adapter.js +167 -0
  3. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +89 -0
  4. package/dist/model/strategy/adapter/dataVariant/evaluator.js +780 -0
  5. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
  6. package/dist/model/strategy/adapter/dataVariant/examples.js +277 -0
  7. package/dist/model/strategy/adapter/dataVariant/index.d.ts +4 -0
  8. package/dist/model/strategy/adapter/dataVariant/index.js +4 -0
  9. package/dist/model/strategy/adapter/dataVariant/type.d.ts +148 -0
  10. package/dist/model/strategy/adapter/dataVariant/type.js +54 -0
  11. package/dist/model/strategy/adapter/index.d.ts +4 -0
  12. package/dist/model/strategy/adapter/index.js +5 -1
  13. package/dist/model/strategy/adapter/promotion/adapter.d.ts +0 -4
  14. package/dist/model/strategy/adapter/promotion/adapter.js +0 -23
  15. package/dist/model/strategy/adapter/promotion/evaluator.d.ts +0 -17
  16. package/dist/model/strategy/adapter/promotion/evaluator.js +6 -279
  17. package/dist/model/strategy/adapter/promotion/examples.d.ts +0 -86
  18. package/dist/model/strategy/adapter/promotion/examples.js +0 -99
  19. package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
  20. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  21. package/dist/model/strategy/adapter/promotion/type.d.ts +2 -90
  22. package/dist/model/strategy/adapter/promotion/type.js +0 -45
  23. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +16 -10
  24. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -1
  25. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
  26. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +32 -1
  27. package/dist/modules/Discount/index.d.ts +5 -2
  28. package/dist/modules/Discount/index.js +30 -7
  29. package/dist/modules/Discount/types.d.ts +4 -0
  30. package/dist/modules/Order/index.d.ts +41 -10
  31. package/dist/modules/Order/index.js +1370 -808
  32. package/dist/modules/Order/payment-utils.d.ts +26 -0
  33. package/dist/modules/Order/payment-utils.js +225 -0
  34. package/dist/modules/Order/types.d.ts +49 -1
  35. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  36. package/dist/modules/Order/utils/orderCollectionIdentity.js +410 -0
  37. package/dist/modules/Order/utils.d.ts +4 -3
  38. package/dist/modules/Order/utils.js +62 -66
  39. package/dist/modules/Payment/index.d.ts +2 -0
  40. package/dist/modules/Payment/index.js +78 -49
  41. package/dist/modules/Payment/types.d.ts +26 -24
  42. package/dist/modules/Payment/types.js +2 -0
  43. package/dist/modules/Product/types.d.ts +22 -0
  44. package/dist/modules/ProductList/index.d.ts +1 -1
  45. package/dist/modules/ProductList/index.js +4 -2
  46. package/dist/modules/ProductList/types.d.ts +2 -0
  47. package/dist/modules/Rules/index.d.ts +2 -9
  48. package/dist/modules/Rules/index.js +69 -43
  49. package/dist/modules/Rules/types.d.ts +10 -1
  50. package/dist/server/index.d.ts +71 -0
  51. package/dist/server/index.js +2504 -1187
  52. package/dist/server/modules/order/index.d.ts +56 -5
  53. package/dist/server/modules/order/index.js +1718 -834
  54. package/dist/server/modules/order/types.d.ts +15 -3
  55. package/dist/server/modules/order/types.js +1 -1
  56. package/dist/server/modules/products/index.d.ts +31 -8
  57. package/dist/server/modules/products/index.js +549 -390
  58. package/dist/server/modules/products/types.d.ts +18 -0
  59. package/dist/solution/BaseSales/index.d.ts +54 -4
  60. package/dist/solution/BaseSales/index.js +1448 -788
  61. package/dist/solution/BaseSales/types.d.ts +6 -1
  62. package/dist/solution/BaseSales/types.js +1 -1
  63. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +1 -3
  64. package/dist/solution/BaseSales/utils/cartPromotion.js +50 -97
  65. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +9 -4
  66. package/dist/solution/BaseSales/utils/parseSalesResponse.js +6 -8
  67. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +14 -1
  68. package/dist/solution/BookingByStep/index.d.ts +1 -1
  69. package/dist/solution/BookingTicket/index.js +61 -26
  70. package/dist/solution/BookingTicket/types.d.ts +2 -0
  71. package/dist/solution/Sales/index.d.ts +1 -0
  72. package/dist/solution/Sales/index.js +10 -2
  73. package/dist/solution/ScanOrder/index.js +20 -31
  74. package/dist/solution/ShopDiscount/index.js +15 -14
  75. package/dist/solution/VenueBooking/index.js +19 -30
  76. package/dist/utils/payment-number.d.ts +9 -0
  77. package/dist/utils/payment-number.js +69 -0
  78. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +50 -0
  79. package/lib/model/strategy/adapter/dataVariant/adapter.js +149 -0
  80. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +89 -0
  81. package/lib/model/strategy/adapter/dataVariant/evaluator.js +583 -0
  82. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
  83. package/lib/model/strategy/adapter/dataVariant/examples.js +293 -0
  84. package/lib/model/strategy/adapter/dataVariant/index.d.ts +4 -0
  85. package/lib/model/strategy/adapter/dataVariant/index.js +38 -0
  86. package/lib/model/strategy/adapter/dataVariant/type.d.ts +148 -0
  87. package/lib/model/strategy/adapter/dataVariant/type.js +31 -0
  88. package/lib/model/strategy/adapter/index.d.ts +4 -0
  89. package/lib/model/strategy/adapter/index.js +13 -2
  90. package/lib/model/strategy/adapter/promotion/adapter.d.ts +0 -4
  91. package/lib/model/strategy/adapter/promotion/adapter.js +0 -20
  92. package/lib/model/strategy/adapter/promotion/evaluator.d.ts +0 -17
  93. package/lib/model/strategy/adapter/promotion/evaluator.js +0 -235
  94. package/lib/model/strategy/adapter/promotion/examples.d.ts +0 -86
  95. package/lib/model/strategy/adapter/promotion/examples.js +0 -91
  96. package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
  97. package/lib/model/strategy/adapter/promotion/index.js +0 -2
  98. package/lib/model/strategy/adapter/promotion/type.d.ts +2 -90
  99. package/lib/model/strategy/adapter/promotion/type.js +0 -2
  100. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +5 -0
  101. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -0
  102. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
  103. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +23 -2
  104. package/lib/modules/Discount/index.d.ts +5 -2
  105. package/lib/modules/Discount/index.js +23 -3
  106. package/lib/modules/Discount/types.d.ts +4 -0
  107. package/lib/modules/Order/index.d.ts +41 -10
  108. package/lib/modules/Order/index.js +505 -119
  109. package/lib/modules/Order/payment-utils.d.ts +26 -0
  110. package/lib/modules/Order/payment-utils.js +224 -0
  111. package/lib/modules/Order/types.d.ts +49 -1
  112. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  113. package/lib/modules/Order/utils/orderCollectionIdentity.js +418 -0
  114. package/lib/modules/Order/utils.d.ts +4 -3
  115. package/lib/modules/Order/utils.js +27 -26
  116. package/lib/modules/Payment/index.d.ts +2 -0
  117. package/lib/modules/Payment/index.js +33 -12
  118. package/lib/modules/Payment/types.d.ts +26 -24
  119. package/lib/modules/Product/types.d.ts +22 -0
  120. package/lib/modules/ProductList/index.d.ts +1 -1
  121. package/lib/modules/ProductList/index.js +4 -2
  122. package/lib/modules/ProductList/types.d.ts +2 -0
  123. package/lib/modules/Rules/index.d.ts +2 -9
  124. package/lib/modules/Rules/index.js +61 -29
  125. package/lib/modules/Rules/types.d.ts +10 -1
  126. package/lib/server/index.d.ts +71 -0
  127. package/lib/server/index.js +1002 -52
  128. package/lib/server/modules/order/index.d.ts +56 -5
  129. package/lib/server/modules/order/index.js +798 -148
  130. package/lib/server/modules/order/types.d.ts +15 -3
  131. package/lib/server/modules/products/index.d.ts +31 -8
  132. package/lib/server/modules/products/index.js +134 -35
  133. package/lib/server/modules/products/types.d.ts +18 -0
  134. package/lib/solution/BaseSales/index.d.ts +54 -4
  135. package/lib/solution/BaseSales/index.js +475 -50
  136. package/lib/solution/BaseSales/types.d.ts +6 -1
  137. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +1 -3
  138. package/lib/solution/BaseSales/utils/cartPromotion.js +25 -64
  139. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +9 -4
  140. package/lib/solution/BaseSales/utils/parseSalesResponse.js +4 -5
  141. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +8 -0
  142. package/lib/solution/BookingByStep/index.d.ts +1 -1
  143. package/lib/solution/BookingTicket/index.js +35 -9
  144. package/lib/solution/BookingTicket/types.d.ts +2 -0
  145. package/lib/solution/Sales/index.d.ts +1 -0
  146. package/lib/solution/Sales/index.js +5 -3
  147. package/lib/solution/ScanOrder/index.js +0 -8
  148. package/lib/solution/ShopDiscount/index.js +2 -1
  149. package/lib/solution/VenueBooking/index.js +0 -8
  150. package/lib/utils/payment-number.d.ts +9 -0
  151. package/lib/utils/payment-number.js +64 -0
  152. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { Module, ModuleOptions, PisellCore } from '../../../types';
2
2
  import { BaseModule } from '../../../modules/BaseModule';
3
3
  import type { RouteDefinition } from '../../types';
4
4
  import { OrderData, OrderId } from './types';
5
+ import { type OrderPaymentIdentityType } from '../../../modules/Order/payment-utils';
5
6
  /**
6
7
  * Order 模块 - 基础框架
7
8
  */
@@ -43,6 +44,16 @@ export declare class OrderModule extends BaseModule implements Module {
43
44
  */
44
45
  private logError;
45
46
  private logWarning;
47
+ /**
48
+ * 在订单进入内存或 SQLite 前统一压缩子项强身份重复并补齐协议 UID。
49
+ * 仅记录计数与订单标识,不输出商品、预约、支付或客户明细。
50
+ */
51
+ private normalizeOrderCollectionsForIngress;
52
+ /**
53
+ * incoming 决定权威成员集合;同一持久化行仍从 existing 补齐 incoming 省略的本地展示字段。
54
+ */
55
+ private mergeAuthoritativeOrderCollection;
56
+ private reconcileOverwriteOrderCollections;
46
57
  /**
47
58
  * 记录订单最近一次 SQLite 写入,供 pubsub 回声去重使用。
48
59
  *
@@ -79,8 +90,31 @@ export declare class OrderModule extends BaseModule implements Module {
79
90
  getOrderById(id: OrderId): OrderData | undefined;
80
91
  /** 按 order_id 查询内存订单。 */
81
92
  getOrderByOrderId(orderId: OrderId): OrderData | undefined;
93
+ private buildLocalPaymentOrderLogContext;
82
94
  getLocalOrderFromMemoryByLookup(lookup: OrderId): OrderData | null;
83
- getLocalOrderByLookup(lookup: OrderId): Promise<OrderData | null>;
95
+ getLocalOrderByLookup(lookup: OrderId, options?: {
96
+ operationId?: string;
97
+ }): Promise<OrderData | null>;
98
+ getLocalPayment(params: {
99
+ saleId: OrderId;
100
+ paymentNumber: OrderId;
101
+ operationId?: string;
102
+ }): Promise<{
103
+ order: OrderData;
104
+ payment: Record<string, any>;
105
+ paymentIndex: number;
106
+ matchedBy: OrderPaymentIdentityType;
107
+ } | null>;
108
+ updateLocalPayment(params: {
109
+ saleId: OrderId;
110
+ paymentNumber: OrderId;
111
+ operationId?: string;
112
+ updates: Record<string, any>;
113
+ }): Promise<{
114
+ order: OrderData;
115
+ payment: Record<string, any>;
116
+ previousPayment: Record<string, any>;
117
+ } | null>;
84
118
  loadOrdersByServer(): Promise<OrderData[]>;
85
119
  /**
86
120
  * 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
@@ -89,6 +123,10 @@ export declare class OrderModule extends BaseModule implements Module {
89
123
  */
90
124
  silentRefresh(): Promise<OrderData[]>;
91
125
  private normalizeOrderForMemoryList;
126
+ private normalizeOrdersForMemoryList;
127
+ private hasRealOrderId;
128
+ private shouldKeepOrderInMemory;
129
+ private withoutSyntheticDraftOrderId;
92
130
  /**
93
131
  * 仅覆盖本地已存在的订单;不存在则直接跳过,不落库、不 emit。
94
132
  * 适用于"按 order_id 主动刷新本地订单详情"的代理场景。
@@ -100,7 +138,7 @@ export declare class OrderModule extends BaseModule implements Module {
100
138
  * 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
101
139
  * 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
102
140
  */
103
- upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
141
+ upsertOrdersFromRemote(freshOrders: OrderData[], source?: string): Promise<void>;
104
142
  markOrderSyncedByExternalSaleNumber(params: {
105
143
  externalSaleNumber: OrderId;
106
144
  patch?: Partial<OrderData>;
@@ -112,7 +150,14 @@ export declare class OrderModule extends BaseModule implements Module {
112
150
  * 将本地待同步订单按 SQLite storage key 合并进 store 并落库。
113
151
  * checkout 离线兜底可能没有 order_id,但通常会有 external_sale_number。
114
152
  */
115
- upsertPendingSyncOrders(pendingOrders: OrderData[]): Promise<void>;
153
+ upsertPendingSyncOrders(pendingOrders: OrderData[], options?: {
154
+ throwOnError?: boolean;
155
+ }): Promise<void>;
156
+ /**
157
+ * 将 POS 草稿订单按 SQLite storage key 落库。
158
+ * 只有具备真实 order_id 的草稿进入 store;其余草稿仅供本地恢复查询。
159
+ */
160
+ upsertLocalDraftOrders(draftOrders: OrderData[]): Promise<void>;
116
161
  /**
117
162
  * 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
118
163
  */
@@ -214,8 +259,10 @@ export declare class OrderModule extends BaseModule implements Module {
214
259
  private pickPreferredOrder;
215
260
  private getProductIdentityKeys;
216
261
  private mergeOrderProductLists;
217
- private getPaymentMergeKey;
218
262
  private mergeOrderPaymentLists;
263
+ private getIdentifiedPendingPayments;
264
+ private shouldProtectLocalOrderFromRemoteSnapshot;
265
+ private getUnmatchedIdentifiedPendingPayments;
219
266
  private mergeOrderRecords;
220
267
  private summarizeDuplicateOrders;
221
268
  private logDuplicateOrders;
@@ -232,7 +279,10 @@ export declare class OrderModule extends BaseModule implements Module {
232
279
  private setStorageItem;
233
280
  private loadOrdersFromSQLite;
234
281
  private isPendingSyncOrder;
282
+ private isDraftOrder;
283
+ private shouldProtectDraftOrderFromIncoming;
235
284
  private normalizeRemoteSyncedOrder;
285
+ private mergeRemoteIdentityIntoDraftOrder;
236
286
  private mergeRemoteSnapshotWithPendingOrders;
237
287
  /**
238
288
  * 串行执行订单 SQLite 写入任务,避免快照替换与增量 upsert 并发交错。
@@ -258,7 +308,8 @@ export declare class OrderModule extends BaseModule implements Module {
258
308
  */
259
309
  private updateOrderInSQLite;
260
310
  /**
261
- * 全量快照替换 orders 表(clear + bulkAdd),用于 SSE 全量拉取与营业日窗口裁剪。
311
+ * 全量快照替换 orders 表(clear + bulkAdd),并保留本地 draft / need_sync / pending 支付订单。
312
+ * 用于 SSE 全量拉取与营业日窗口裁剪。
262
313
  *
263
314
  * @example
264
315
  * await this.replaceOrdersSnapshotInSQLite(orderList)