@pisell/pisellos 2.2.205 → 2.2.206
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/modules/OpenData/index.d.ts +1 -0
- package/dist/modules/OpenData/index.js +21 -16
- package/dist/modules/Order/index.d.ts +9 -0
- package/dist/modules/Order/index.js +230 -145
- package/dist/modules/Order/types.d.ts +10 -0
- package/dist/modules/Order/utils.js +7 -5
- package/dist/server/index.d.ts +136 -0
- package/dist/server/index.js +2054 -781
- package/dist/server/modules/order/index.d.ts +7 -0
- package/dist/server/modules/order/index.js +375 -337
- package/dist/server/modules/order/types.d.ts +15 -0
- package/dist/server/modules/order/types.js +8 -0
- package/dist/server/utils/small-ticket.d.ts +69 -0
- package/dist/server/utils/small-ticket.js +528 -0
- package/dist/solution/BaseSales/index.d.ts +4 -2
- package/dist/solution/BaseSales/index.js +248 -188
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +8 -1
- package/dist/solution/BookingTicket/index.js +443 -263
- package/dist/solution/BookingTicket/types.d.ts +2 -1
- package/dist/solution/BookingTicket/types.js +3 -1
- package/lib/modules/OpenData/index.d.ts +1 -0
- package/lib/modules/OpenData/index.js +6 -4
- package/lib/modules/Order/index.d.ts +9 -0
- package/lib/modules/Order/index.js +59 -3
- package/lib/modules/Order/types.d.ts +10 -0
- package/lib/modules/Order/utils.js +4 -3
- package/lib/server/index.d.ts +136 -0
- package/lib/server/index.js +822 -50
- package/lib/server/modules/order/index.d.ts +7 -0
- package/lib/server/modules/order/index.js +21 -7
- package/lib/server/modules/order/types.d.ts +15 -0
- package/lib/server/utils/small-ticket.d.ts +69 -0
- package/lib/server/utils/small-ticket.js +555 -0
- package/lib/solution/BaseSales/index.d.ts +4 -2
- package/lib/solution/BaseSales/index.js +47 -1
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +8 -1
- package/lib/solution/BookingTicket/index.js +108 -1
- package/lib/solution/BookingTicket/types.d.ts +2 -1
- package/lib/solution/BookingTicket/types.js +5 -0
- package/package.json +1 -1
|
@@ -23,6 +23,13 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
23
23
|
/** 最近一次 SSE 全量拉取完成时间 */
|
|
24
24
|
private lastServerFullFetchAtMs;
|
|
25
25
|
constructor(name?: string, version?: string);
|
|
26
|
+
/**
|
|
27
|
+
* 广播订单变更事件,兼容全量列表订阅并额外携带本次变更订单。
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* await this.emitOrdersChanged([freshOrder], 'pubsub.bodyUpsert')
|
|
31
|
+
*/
|
|
32
|
+
private emitOrdersChanged;
|
|
26
33
|
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
|
|
27
34
|
/**
|
|
28
35
|
* 记录信息日志
|
|
@@ -63,6 +63,20 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
63
63
|
/** 最近一次 SSE 全量拉取完成时间 */
|
|
64
64
|
this.lastServerFullFetchAtMs = 0;
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* 广播订单变更事件,兼容全量列表订阅并额外携带本次变更订单。
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* await this.emitOrdersChanged([freshOrder], 'pubsub.bodyUpsert')
|
|
71
|
+
*/
|
|
72
|
+
async emitOrdersChanged(changedOrders = [], source) {
|
|
73
|
+
const payload = {
|
|
74
|
+
list: this.store.list,
|
|
75
|
+
changedOrders,
|
|
76
|
+
source
|
|
77
|
+
};
|
|
78
|
+
await this.core.effects.emit(import_types.OrderHooks.onOrdersChanged, payload);
|
|
79
|
+
}
|
|
66
80
|
async initialize(core, options) {
|
|
67
81
|
var _a, _b;
|
|
68
82
|
this.core = core;
|
|
@@ -119,7 +133,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
119
133
|
if (Array.isArray((_b = options == null ? void 0 : options.initialState) == null ? void 0 : _b.list)) {
|
|
120
134
|
this.store.list = options.initialState.list;
|
|
121
135
|
this.syncOrdersMap();
|
|
122
|
-
this.
|
|
136
|
+
this.emitOrdersChanged([], "initialState");
|
|
123
137
|
} else {
|
|
124
138
|
this.store.list = [];
|
|
125
139
|
this.store.map = /* @__PURE__ */ new Map();
|
|
@@ -336,7 +350,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
336
350
|
}
|
|
337
351
|
this.store.list = (0, import_lodash_es.cloneDeep)(orders);
|
|
338
352
|
this.syncOrdersMap();
|
|
339
|
-
this.
|
|
353
|
+
this.emitOrdersChanged([], "preload");
|
|
340
354
|
this.core.effects.emit(import_types.OrderHooks.onOrdersSyncCompleted, null);
|
|
341
355
|
};
|
|
342
356
|
getData();
|
|
@@ -416,7 +430,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
416
430
|
if (orders.length > 0) {
|
|
417
431
|
this.store.list = (0, import_lodash_es.cloneDeep)(orders);
|
|
418
432
|
this.syncOrdersMap();
|
|
419
|
-
this.
|
|
433
|
+
this.emitOrdersChanged([], "silentRefresh");
|
|
420
434
|
await this.core.effects.emit(import_types.OrderHooks.onOrdersSyncCompleted, null);
|
|
421
435
|
this.logInfo("silentRefresh 完成", {
|
|
422
436
|
orderCount: orders.length,
|
|
@@ -470,7 +484,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
470
484
|
orderId,
|
|
471
485
|
storeOrderCountAfter: this.store.list.length
|
|
472
486
|
});
|
|
473
|
-
await this.
|
|
487
|
+
await this.emitOrdersChanged([fresh], "overwriteExistingOrder");
|
|
474
488
|
return { overwritten: true };
|
|
475
489
|
}
|
|
476
490
|
/**
|
|
@@ -530,7 +544,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
530
544
|
count: patchedOrders.length,
|
|
531
545
|
storeOrderCountAfter: this.store.list.length
|
|
532
546
|
});
|
|
533
|
-
this.
|
|
547
|
+
this.emitOrdersChanged(patchedOrders, "upsertPendingSyncOrders");
|
|
534
548
|
}
|
|
535
549
|
/**
|
|
536
550
|
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
@@ -879,7 +893,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
879
893
|
uniqueFreshCount,
|
|
880
894
|
storeOrderCountAfter: this.store.list.length
|
|
881
895
|
});
|
|
882
|
-
this.
|
|
896
|
+
this.emitOrdersChanged(patchedOrders, source);
|
|
883
897
|
}
|
|
884
898
|
normalizeOrderSyncMessage(res) {
|
|
885
899
|
const data = (res == null ? void 0 : res.data) || res;
|
|
@@ -1229,7 +1243,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
1229
1243
|
});
|
|
1230
1244
|
}
|
|
1231
1245
|
this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, "");
|
|
1232
|
-
this.
|
|
1246
|
+
this.emitOrdersChanged([], "clear");
|
|
1233
1247
|
}
|
|
1234
1248
|
};
|
|
1235
1249
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -524,6 +524,21 @@ export interface OrderAblyEventPayload {
|
|
|
524
524
|
order_id?: OrderId;
|
|
525
525
|
timestamp: number;
|
|
526
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* 订单变更广播载荷。
|
|
529
|
+
* 用于保留原有全量列表通知能力,同时让订阅方可按 changedOrders 做增量处理。
|
|
530
|
+
*
|
|
531
|
+
* @example
|
|
532
|
+
* const changedOrders = payload.changedOrders
|
|
533
|
+
*/
|
|
534
|
+
export interface OrderChangedPayload {
|
|
535
|
+
/** 当前订单 store 全量列表,兼容既有重算列表订阅 */
|
|
536
|
+
list: OrderData[];
|
|
537
|
+
/** 本次明确发生变更的订单;全量刷新等无法确定 delta 的场景可为空 */
|
|
538
|
+
changedOrders: OrderData[];
|
|
539
|
+
/** 触发来源,便于订阅者区分 pubsub / 远端覆盖 / 清空等场景 */
|
|
540
|
+
source?: string;
|
|
541
|
+
}
|
|
527
542
|
/**
|
|
528
543
|
* OrderSyncMessage - pubsub 同步消息结构
|
|
529
544
|
*/
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface SmallTicketShopInfo {
|
|
2
|
+
name?: string;
|
|
3
|
+
phone?: string;
|
|
4
|
+
address?: string;
|
|
5
|
+
address_street?: string;
|
|
6
|
+
address_detail?: string;
|
|
7
|
+
city?: string;
|
|
8
|
+
province?: string;
|
|
9
|
+
country?: string;
|
|
10
|
+
zip?: string;
|
|
11
|
+
tax_number?: string;
|
|
12
|
+
tax_title?: string;
|
|
13
|
+
currency_symbol?: string;
|
|
14
|
+
currency_code?: string;
|
|
15
|
+
primary_locale?: string;
|
|
16
|
+
timezone?: string;
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}
|
|
19
|
+
export interface BuildSmallTicketDataParams {
|
|
20
|
+
order: Record<string, any>;
|
|
21
|
+
shopInfo?: SmallTicketShopInfo | null;
|
|
22
|
+
locales?: string[];
|
|
23
|
+
productMap?: Record<string | number, Record<string, any>>;
|
|
24
|
+
}
|
|
25
|
+
export interface SmallTicketItem {
|
|
26
|
+
item: string;
|
|
27
|
+
value: string;
|
|
28
|
+
size?: number;
|
|
29
|
+
align?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface SmallTicketProduct {
|
|
32
|
+
product_title: string;
|
|
33
|
+
product_quantity: number;
|
|
34
|
+
selling_price: string;
|
|
35
|
+
original_price: string;
|
|
36
|
+
total_original_price: string;
|
|
37
|
+
extension_list: any[];
|
|
38
|
+
options?: Array<{
|
|
39
|
+
name: string;
|
|
40
|
+
value: string;
|
|
41
|
+
}>;
|
|
42
|
+
variant?: string;
|
|
43
|
+
combinations?: any[];
|
|
44
|
+
}
|
|
45
|
+
export interface SmallTicketLocaleData {
|
|
46
|
+
base_data: Record<string, any>;
|
|
47
|
+
products: SmallTicketProduct[];
|
|
48
|
+
fees: {
|
|
49
|
+
fees: SmallTicketItem[];
|
|
50
|
+
countFee: Record<string, any>;
|
|
51
|
+
};
|
|
52
|
+
customer: SmallTicketItem[];
|
|
53
|
+
appointment: SmallTicketItem[];
|
|
54
|
+
delivery: SmallTicketItem[];
|
|
55
|
+
resources: Array<{
|
|
56
|
+
id: string | number;
|
|
57
|
+
code: string;
|
|
58
|
+
title: string;
|
|
59
|
+
form_title: string;
|
|
60
|
+
}>;
|
|
61
|
+
payment_data: SmallTicketItem[][];
|
|
62
|
+
tickets: any[];
|
|
63
|
+
source_shop: any[];
|
|
64
|
+
refund_data: any[];
|
|
65
|
+
expend_data: any[];
|
|
66
|
+
}
|
|
67
|
+
export type SmallTicketData = Record<string, SmallTicketLocaleData>;
|
|
68
|
+
export declare function buildSmallTicketData(params: BuildSmallTicketDataParams): SmallTicketData;
|
|
69
|
+
export declare function hasSmallTicketData(value: any): boolean;
|