@pisell/pisellos 2.2.274 → 2.2.276
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.
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +7 -0
- package/dist/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/dist/model/strategy/adapter/promotion/adapter.js +23 -0
- package/dist/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/dist/model/strategy/adapter/promotion/evaluator.js +279 -6
- package/dist/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/dist/model/strategy/adapter/promotion/examples.js +99 -0
- package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/dist/model/strategy/adapter/promotion/index.js +1 -1
- package/dist/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/dist/model/strategy/adapter/promotion/type.js +45 -0
- package/dist/modules/OpenData/index.d.ts +2 -0
- package/dist/modules/OpenData/index.js +8 -0
- package/dist/modules/Order/index.d.ts +28 -8
- package/dist/modules/Order/index.js +907 -588
- package/dist/modules/Order/payment-utils.d.ts +26 -0
- package/dist/modules/Order/payment-utils.js +225 -0
- package/dist/modules/Order/types.d.ts +35 -1
- package/dist/modules/Order/utils/orderCollectionIdentity.js +7 -2
- package/dist/modules/Order/utils.js +10 -6
- package/dist/modules/Payment/index.d.ts +2 -0
- package/dist/modules/Payment/index.js +78 -49
- package/dist/modules/Payment/types.d.ts +104 -25
- package/dist/modules/Payment/types.js +17 -0
- package/dist/modules/Payment/walletpass.d.ts +38 -1
- package/dist/modules/Payment/walletpass.js +917 -114
- package/dist/modules/Rules/index.d.ts +3 -0
- package/dist/modules/Rules/index.js +100 -70
- package/dist/server/index.d.ts +25 -0
- package/dist/server/index.js +1993 -1061
- package/dist/server/modules/index.d.ts +1 -1
- package/dist/server/modules/order/index.d.ts +70 -4
- package/dist/server/modules/order/index.js +1816 -728
- package/dist/server/modules/order/types.d.ts +25 -3
- package/dist/server/modules/order/types.js +7 -1
- package/dist/solution/BaseSales/index.d.ts +104 -5
- package/dist/solution/BaseSales/index.js +1767 -436
- package/dist/solution/BaseSales/types.d.ts +55 -1
- package/dist/solution/BaseSales/types.js +2 -1
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/dist/solution/BaseSales/utils/cartPromotion.js +94 -32
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +7 -4
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +21 -5
- package/dist/solution/BookingTicket/index.js +139 -56
- package/dist/solution/BookingTicket/types.d.ts +1 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +8 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +173 -83
- package/dist/solution/Sales/index.d.ts +2 -0
- package/dist/solution/Sales/index.js +26 -4
- package/dist/solution/ScanOrder/index.js +31 -20
- package/dist/solution/VenueBooking/index.d.ts +1 -0
- package/dist/solution/VenueBooking/index.js +30 -19
- package/dist/types/index.d.ts +1 -0
- package/dist/utils/payment-number.d.ts +9 -0
- package/dist/utils/payment-number.js +69 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/core/index.js +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.js +20 -0
- package/lib/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +235 -0
- package/lib/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/lib/model/strategy/adapter/promotion/examples.js +91 -0
- package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/lib/model/strategy/adapter/promotion/index.js +2 -0
- package/lib/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/lib/model/strategy/adapter/promotion/type.js +2 -0
- package/lib/modules/OpenData/index.d.ts +2 -0
- package/lib/modules/OpenData/index.js +5 -0
- package/lib/modules/Order/index.d.ts +28 -8
- package/lib/modules/Order/index.js +252 -84
- package/lib/modules/Order/payment-utils.d.ts +26 -0
- package/lib/modules/Order/payment-utils.js +224 -0
- package/lib/modules/Order/types.d.ts +35 -1
- package/lib/modules/Order/utils/orderCollectionIdentity.js +3 -0
- package/lib/modules/Order/utils.js +11 -4
- package/lib/modules/Payment/index.d.ts +2 -0
- package/lib/modules/Payment/index.js +33 -12
- package/lib/modules/Payment/types.d.ts +104 -25
- package/lib/modules/Payment/types.js +1 -0
- package/lib/modules/Payment/walletpass.d.ts +38 -1
- package/lib/modules/Payment/walletpass.js +730 -21
- package/lib/modules/Rules/index.d.ts +3 -0
- package/lib/modules/Rules/index.js +38 -9
- package/lib/server/index.d.ts +25 -0
- package/lib/server/index.js +726 -31
- package/lib/server/modules/index.d.ts +1 -1
- package/lib/server/modules/order/index.d.ts +70 -4
- package/lib/server/modules/order/index.js +818 -69
- package/lib/server/modules/order/types.d.ts +25 -3
- package/lib/server/modules/order/types.js +1 -0
- package/lib/solution/BaseSales/index.d.ts +104 -5
- package/lib/solution/BaseSales/index.js +858 -27
- package/lib/solution/BaseSales/types.d.ts +55 -1
- package/lib/solution/BaseSales/types.js +2 -1
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.js +66 -12
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +4 -3
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +21 -5
- package/lib/solution/BookingTicket/index.js +64 -13
- package/lib/solution/BookingTicket/types.d.ts +1 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +8 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +37 -5
- package/lib/solution/Sales/index.d.ts +2 -0
- package/lib/solution/Sales/index.js +20 -6
- package/lib/solution/ScanOrder/index.js +8 -0
- package/lib/solution/VenueBooking/index.d.ts +1 -0
- package/lib/solution/VenueBooking/index.js +8 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/utils/payment-number.d.ts +9 -0
- package/lib/utils/payment-number.js +64 -0
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ export { QuotationHooks } from './quotation/types';
|
|
|
14
14
|
export { ScheduleModuleEx } from './schedule';
|
|
15
15
|
export type { ScheduleState, ScheduleItem } from './schedule/types';
|
|
16
16
|
export { OrderModule } from './order';
|
|
17
|
-
export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, OrderFilterRejectDetail, OrderFilterRejectedEntry, BookingFilterResult, OrderModulePagedResult, } from './order/types';
|
|
17
|
+
export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, OrderFilterRejectDetail, OrderFilterRejectedEntry, BookingFilterResult, OrderModulePagedResult, RemoteProductMembershipChangedPayload, RemoteProductMembershipChangeSource, } from './order/types';
|
|
18
18
|
export { OrderHooks } from './order/types';
|
|
19
19
|
export { PaymentServerModule } from './payment';
|
|
20
20
|
export type { PaymentMethod, PaymentMethodsChangedEventData, PaymentServerState } from './payment/types';
|
|
@@ -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
|
*/
|
|
@@ -29,6 +30,10 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
29
30
|
* await this.emitOrdersChanged([freshOrder], 'pubsub.bodyUpsert')
|
|
30
31
|
*/
|
|
31
32
|
private emitOrdersChanged;
|
|
33
|
+
/**
|
|
34
|
+
* 广播远端商品成员增删。监听器异常必须与订单落库和原有订单广播隔离。
|
|
35
|
+
*/
|
|
36
|
+
private emitRemoteProductMembershipChanges;
|
|
32
37
|
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
|
|
33
38
|
/**
|
|
34
39
|
* 记录信息日志
|
|
@@ -89,8 +94,31 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
89
94
|
getOrderById(id: OrderId): OrderData | undefined;
|
|
90
95
|
/** 按 order_id 查询内存订单。 */
|
|
91
96
|
getOrderByOrderId(orderId: OrderId): OrderData | undefined;
|
|
97
|
+
private buildLocalPaymentOrderLogContext;
|
|
92
98
|
getLocalOrderFromMemoryByLookup(lookup: OrderId): OrderData | null;
|
|
93
|
-
getLocalOrderByLookup(lookup: OrderId
|
|
99
|
+
getLocalOrderByLookup(lookup: OrderId, options?: {
|
|
100
|
+
operationId?: string;
|
|
101
|
+
}): Promise<OrderData | null>;
|
|
102
|
+
getLocalPayment(params: {
|
|
103
|
+
saleId: OrderId;
|
|
104
|
+
paymentNumber: OrderId;
|
|
105
|
+
operationId?: string;
|
|
106
|
+
}): Promise<{
|
|
107
|
+
order: OrderData;
|
|
108
|
+
payment: Record<string, any>;
|
|
109
|
+
paymentIndex: number;
|
|
110
|
+
matchedBy: OrderPaymentIdentityType;
|
|
111
|
+
} | null>;
|
|
112
|
+
updateLocalPayment(params: {
|
|
113
|
+
saleId: OrderId;
|
|
114
|
+
paymentNumber: OrderId;
|
|
115
|
+
operationId?: string;
|
|
116
|
+
updates: Record<string, any>;
|
|
117
|
+
}): Promise<{
|
|
118
|
+
order: OrderData;
|
|
119
|
+
payment: Record<string, any>;
|
|
120
|
+
previousPayment: Record<string, any>;
|
|
121
|
+
} | null>;
|
|
94
122
|
loadOrdersByServer(): Promise<OrderData[]>;
|
|
95
123
|
/**
|
|
96
124
|
* 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
|
|
@@ -99,6 +127,10 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
99
127
|
*/
|
|
100
128
|
silentRefresh(): Promise<OrderData[]>;
|
|
101
129
|
private normalizeOrderForMemoryList;
|
|
130
|
+
private normalizeOrdersForMemoryList;
|
|
131
|
+
private hasRealOrderId;
|
|
132
|
+
private shouldKeepOrderInMemory;
|
|
133
|
+
private withoutSyntheticDraftOrderId;
|
|
102
134
|
/**
|
|
103
135
|
* 仅覆盖本地已存在的订单;不存在则直接跳过,不落库、不 emit。
|
|
104
136
|
* 适用于"按 order_id 主动刷新本地订单详情"的代理场景。
|
|
@@ -110,7 +142,7 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
110
142
|
* 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
|
|
111
143
|
* 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
|
|
112
144
|
*/
|
|
113
|
-
upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
|
|
145
|
+
upsertOrdersFromRemote(freshOrders: OrderData[], source?: string): Promise<void>;
|
|
114
146
|
markOrderSyncedByExternalSaleNumber(params: {
|
|
115
147
|
externalSaleNumber: OrderId;
|
|
116
148
|
patch?: Partial<OrderData>;
|
|
@@ -122,7 +154,14 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
122
154
|
* 将本地待同步订单按 SQLite storage key 合并进 store 并落库。
|
|
123
155
|
* checkout 离线兜底可能没有 order_id,但通常会有 external_sale_number。
|
|
124
156
|
*/
|
|
125
|
-
upsertPendingSyncOrders(pendingOrders: OrderData[]
|
|
157
|
+
upsertPendingSyncOrders(pendingOrders: OrderData[], options?: {
|
|
158
|
+
throwOnError?: boolean;
|
|
159
|
+
}): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* 将 POS 草稿订单按 SQLite storage key 落库。
|
|
162
|
+
* 只有具备真实 order_id 的草稿进入 store;其余草稿仅供本地恢复查询。
|
|
163
|
+
*/
|
|
164
|
+
upsertLocalDraftOrders(draftOrders: OrderData[]): Promise<void>;
|
|
126
165
|
/**
|
|
127
166
|
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
128
167
|
*/
|
|
@@ -132,6 +171,11 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
132
171
|
private syncOrdersMap;
|
|
133
172
|
private getOrderMapKey;
|
|
134
173
|
private isBlankIdentityValue;
|
|
174
|
+
/**
|
|
175
|
+
* `/sales/draft` 的旧调用方可能把未设置的 business_code 传成空串。
|
|
176
|
+
* 对同一真实订单,空值不能覆盖已有的分类,否则 booking 查询会把该订单从 Party 列表过滤掉。
|
|
177
|
+
*/
|
|
178
|
+
private preserveExistingBusinessCodeForDraft;
|
|
135
179
|
private getOrderIdentityEntries;
|
|
136
180
|
private getOrderIdentityKeys;
|
|
137
181
|
private getOrderDateKey;
|
|
@@ -191,6 +235,18 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
191
235
|
*/
|
|
192
236
|
private lookupOrderIndexByIdentityKeys;
|
|
193
237
|
private isRemoteEchoMergeSource;
|
|
238
|
+
private getProductMembershipKey;
|
|
239
|
+
private doProductsHaveStableMembershipIdentity;
|
|
240
|
+
/**
|
|
241
|
+
* 冲突提示关注逻辑商品行,而不是服务端 checkout 过程中可能被重建的 detail 记录。
|
|
242
|
+
* 通用集合合并仍以 order_detail_id 为事实主键;这里只允许相同稳定 UID 跨 detail id 对齐,
|
|
243
|
+
* 避免本机 checkout 回声被误判成“一删一增”。
|
|
244
|
+
*/
|
|
245
|
+
private isSameProductMembershipItem;
|
|
246
|
+
/**
|
|
247
|
+
* 对比合并前后的商品成员集合。商品字段修改与数组重排不会产生 diff。
|
|
248
|
+
*/
|
|
249
|
+
private getRemoteProductMembershipChange;
|
|
194
250
|
/**
|
|
195
251
|
* 将订单的全部身份键登记到索引并指向其在列表中的下标。
|
|
196
252
|
* 合并后订单新增的身份字段(如挂单同步后拿到 order_id)也会被登记。
|
|
@@ -222,6 +278,12 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
222
278
|
private findOrderIndexByIdentity;
|
|
223
279
|
private getOrderCompletenessScore;
|
|
224
280
|
private pickPreferredOrder;
|
|
281
|
+
private getProductIdentityKeys;
|
|
282
|
+
private mergeOrderProductLists;
|
|
283
|
+
private mergeOrderPaymentLists;
|
|
284
|
+
private getIdentifiedPendingPayments;
|
|
285
|
+
private shouldProtectLocalOrderFromRemoteSnapshot;
|
|
286
|
+
private getUnmatchedIdentifiedPendingPayments;
|
|
225
287
|
private mergeOrderRecords;
|
|
226
288
|
private summarizeDuplicateOrders;
|
|
227
289
|
private logDuplicateOrders;
|
|
@@ -238,7 +300,10 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
238
300
|
private setStorageItem;
|
|
239
301
|
private loadOrdersFromSQLite;
|
|
240
302
|
private isPendingSyncOrder;
|
|
303
|
+
private isDraftOrder;
|
|
304
|
+
private shouldProtectDraftOrderFromIncoming;
|
|
241
305
|
private normalizeRemoteSyncedOrder;
|
|
306
|
+
private mergeRemoteIdentityIntoDraftOrder;
|
|
242
307
|
private mergeRemoteSnapshotWithPendingOrders;
|
|
243
308
|
/**
|
|
244
309
|
* 串行执行订单 SQLite 写入任务,避免快照替换与增量 upsert 并发交错。
|
|
@@ -264,7 +329,8 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
264
329
|
*/
|
|
265
330
|
private updateOrderInSQLite;
|
|
266
331
|
/**
|
|
267
|
-
* 全量快照替换 orders 表(clear + bulkAdd
|
|
332
|
+
* 全量快照替换 orders 表(clear + bulkAdd),并保留本地 draft / need_sync / pending 支付订单。
|
|
333
|
+
* 用于 SSE 全量拉取与营业日窗口裁剪。
|
|
268
334
|
*
|
|
269
335
|
* @example
|
|
270
336
|
* await this.replaceOrdersSnapshotInSQLite(orderList)
|