@pisell/pisellos 2.2.263 → 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 (52) hide show
  1. package/dist/modules/Order/index.d.ts +27 -8
  2. package/dist/modules/Order/index.js +736 -473
  3. package/dist/modules/Order/payment-utils.d.ts +26 -0
  4. package/dist/modules/Order/payment-utils.js +225 -0
  5. package/dist/modules/Order/types.d.ts +33 -1
  6. package/dist/modules/Order/utils/orderCollectionIdentity.js +7 -2
  7. package/dist/modules/Order/utils.js +8 -5
  8. package/dist/modules/Payment/index.d.ts +2 -0
  9. package/dist/modules/Payment/index.js +78 -49
  10. package/dist/modules/Payment/types.d.ts +26 -24
  11. package/dist/modules/Payment/types.js +2 -0
  12. package/dist/server/index.d.ts +16 -0
  13. package/dist/server/index.js +1940 -1043
  14. package/dist/server/modules/order/index.d.ts +49 -4
  15. package/dist/server/modules/order/index.js +1577 -698
  16. package/dist/server/modules/order/types.d.ts +11 -3
  17. package/dist/server/modules/order/types.js +1 -1
  18. package/dist/solution/BaseSales/index.d.ts +33 -3
  19. package/dist/solution/BaseSales/index.js +653 -340
  20. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
  21. package/dist/solution/BookingByStep/index.d.ts +1 -1
  22. package/dist/solution/BookingTicket/index.js +2 -1
  23. package/dist/solution/Sales/index.d.ts +1 -0
  24. package/dist/solution/Sales/index.js +10 -2
  25. package/dist/utils/payment-number.d.ts +9 -0
  26. package/dist/utils/payment-number.js +69 -0
  27. package/lib/model/strategy/adapter/promotion/index.js +49 -0
  28. package/lib/modules/Order/index.d.ts +27 -8
  29. package/lib/modules/Order/index.js +180 -60
  30. package/lib/modules/Order/payment-utils.d.ts +26 -0
  31. package/lib/modules/Order/payment-utils.js +224 -0
  32. package/lib/modules/Order/types.d.ts +33 -1
  33. package/lib/modules/Order/utils/orderCollectionIdentity.js +3 -0
  34. package/lib/modules/Order/utils.js +5 -3
  35. package/lib/modules/Payment/index.d.ts +2 -0
  36. package/lib/modules/Payment/index.js +33 -12
  37. package/lib/modules/Payment/types.d.ts +26 -24
  38. package/lib/server/index.d.ts +16 -0
  39. package/lib/server/index.js +670 -18
  40. package/lib/server/modules/order/index.d.ts +49 -4
  41. package/lib/server/modules/order/index.js +657 -66
  42. package/lib/server/modules/order/types.d.ts +11 -3
  43. package/lib/solution/BaseSales/index.d.ts +33 -3
  44. package/lib/solution/BaseSales/index.js +193 -9
  45. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
  46. package/lib/solution/BookingByStep/index.d.ts +1 -1
  47. package/lib/solution/BookingTicket/index.js +2 -1
  48. package/lib/solution/Sales/index.d.ts +1 -0
  49. package/lib/solution/Sales/index.js +5 -3
  50. package/lib/utils/payment-number.d.ts +9 -0
  51. package/lib/utils/payment-number.js +64 -0
  52. 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
  */
@@ -89,8 +90,31 @@ export declare class OrderModule extends BaseModule implements Module {
89
90
  getOrderById(id: OrderId): OrderData | undefined;
90
91
  /** 按 order_id 查询内存订单。 */
91
92
  getOrderByOrderId(orderId: OrderId): OrderData | undefined;
93
+ private buildLocalPaymentOrderLogContext;
92
94
  getLocalOrderFromMemoryByLookup(lookup: OrderId): OrderData | null;
93
- 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>;
94
118
  loadOrdersByServer(): Promise<OrderData[]>;
95
119
  /**
96
120
  * 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
@@ -99,6 +123,10 @@ export declare class OrderModule extends BaseModule implements Module {
99
123
  */
100
124
  silentRefresh(): Promise<OrderData[]>;
101
125
  private normalizeOrderForMemoryList;
126
+ private normalizeOrdersForMemoryList;
127
+ private hasRealOrderId;
128
+ private shouldKeepOrderInMemory;
129
+ private withoutSyntheticDraftOrderId;
102
130
  /**
103
131
  * 仅覆盖本地已存在的订单;不存在则直接跳过,不落库、不 emit。
104
132
  * 适用于"按 order_id 主动刷新本地订单详情"的代理场景。
@@ -110,7 +138,7 @@ export declare class OrderModule extends BaseModule implements Module {
110
138
  * 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
111
139
  * 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
112
140
  */
113
- upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
141
+ upsertOrdersFromRemote(freshOrders: OrderData[], source?: string): Promise<void>;
114
142
  markOrderSyncedByExternalSaleNumber(params: {
115
143
  externalSaleNumber: OrderId;
116
144
  patch?: Partial<OrderData>;
@@ -122,7 +150,14 @@ export declare class OrderModule extends BaseModule implements Module {
122
150
  * 将本地待同步订单按 SQLite storage key 合并进 store 并落库。
123
151
  * checkout 离线兜底可能没有 order_id,但通常会有 external_sale_number。
124
152
  */
125
- 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>;
126
161
  /**
127
162
  * 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
128
163
  */
@@ -222,6 +257,12 @@ export declare class OrderModule extends BaseModule implements Module {
222
257
  private findOrderIndexByIdentity;
223
258
  private getOrderCompletenessScore;
224
259
  private pickPreferredOrder;
260
+ private getProductIdentityKeys;
261
+ private mergeOrderProductLists;
262
+ private mergeOrderPaymentLists;
263
+ private getIdentifiedPendingPayments;
264
+ private shouldProtectLocalOrderFromRemoteSnapshot;
265
+ private getUnmatchedIdentifiedPendingPayments;
225
266
  private mergeOrderRecords;
226
267
  private summarizeDuplicateOrders;
227
268
  private logDuplicateOrders;
@@ -238,7 +279,10 @@ export declare class OrderModule extends BaseModule implements Module {
238
279
  private setStorageItem;
239
280
  private loadOrdersFromSQLite;
240
281
  private isPendingSyncOrder;
282
+ private isDraftOrder;
283
+ private shouldProtectDraftOrderFromIncoming;
241
284
  private normalizeRemoteSyncedOrder;
285
+ private mergeRemoteIdentityIntoDraftOrder;
242
286
  private mergeRemoteSnapshotWithPendingOrders;
243
287
  /**
244
288
  * 串行执行订单 SQLite 写入任务,避免快照替换与增量 upsert 并发交错。
@@ -264,7 +308,8 @@ export declare class OrderModule extends BaseModule implements Module {
264
308
  */
265
309
  private updateOrderInSQLite;
266
310
  /**
267
- * 全量快照替换 orders 表(clear + bulkAdd),用于 SSE 全量拉取与营业日窗口裁剪。
311
+ * 全量快照替换 orders 表(clear + bulkAdd),并保留本地 draft / need_sync / pending 支付订单。
312
+ * 用于 SSE 全量拉取与营业日窗口裁剪。
268
313
  *
269
314
  * @example
270
315
  * await this.replaceOrdersSnapshotInSQLite(orderList)