@pisell/pisellos 2.1.38 → 2.2.1
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 +8 -1
- package/dist/core/index.js +116 -42
- package/dist/effects/index.d.ts +1 -0
- package/dist/effects/index.js +29 -6
- package/dist/modules/Account/index.js +2 -3
- package/dist/modules/BaseModule.d.ts +3 -0
- package/dist/modules/BaseModule.js +15 -0
- package/dist/modules/Customer/index.js +9 -10
- package/dist/modules/Customer/types.d.ts +2 -2
- package/dist/modules/Customer/types.js +2 -2
- package/dist/modules/Discount/index.js +1 -1
- package/dist/modules/Guests/index.js +9 -9
- package/dist/modules/Order/index.js +1 -1
- package/dist/modules/Payment/index.js +63 -73
- package/dist/modules/Payment/walletpass.js +4 -1
- package/dist/modules/Product/index.d.ts +1 -1
- package/dist/modules/Product/types.d.ts +19 -0
- package/dist/modules/ProductList/index.js +5 -14
- package/dist/modules/Resource/index.js +1 -1
- package/dist/modules/Rules/index.js +2 -3
- package/dist/modules/Schedule/types.d.ts +2 -0
- package/dist/plugins/request.d.ts +1 -0
- package/dist/server/index.d.ts +152 -0
- package/dist/server/index.js +946 -0
- package/dist/server/modules/index.d.ts +16 -0
- package/dist/server/modules/index.js +21 -0
- package/dist/server/modules/menu/index.d.ts +63 -0
- package/dist/server/modules/menu/index.js +476 -0
- package/dist/server/modules/menu/types.d.ts +68 -0
- package/dist/server/modules/menu/types.js +16 -0
- package/dist/server/modules/products/index.d.ts +141 -0
- package/dist/server/modules/products/index.js +768 -0
- package/dist/server/modules/products/types.d.ts +94 -0
- package/dist/server/modules/products/types.js +43 -0
- package/dist/server/modules/quotation/index.d.ts +47 -0
- package/dist/server/modules/quotation/index.js +367 -0
- package/dist/server/modules/quotation/types.d.ts +50 -0
- package/dist/server/modules/quotation/types.js +20 -0
- package/dist/server/modules/schedule/index.d.ts +62 -0
- package/dist/server/modules/schedule/index.js +431 -0
- package/dist/server/modules/schedule/types.d.ts +1 -0
- package/dist/server/modules/schedule/types.js +2 -0
- package/dist/server/modules/schedule/utils.d.ts +32 -0
- package/dist/server/modules/schedule/utils.js +747 -0
- package/dist/server/types.d.ts +64 -0
- package/dist/server/types.js +1 -0
- package/dist/server/utils/index.d.ts +5 -0
- package/dist/server/utils/index.js +6 -0
- package/dist/server/utils/product.d.ts +18 -0
- package/dist/server/utils/product.js +339 -0
- package/dist/server/utils/schedule.d.ts +14 -0
- package/dist/server/utils/schedule.js +108 -0
- package/dist/server/utils/time.d.ts +18 -0
- package/dist/server/utils/time.js +53 -0
- package/dist/solution/BookingByStep/index.d.ts +1 -17
- package/dist/solution/BookingByStep/index.js +23 -468
- package/dist/solution/BookingByStep/utils/capacity.d.ts +2 -7
- package/dist/solution/BookingByStep/utils/capacity.js +8 -24
- package/dist/solution/BookingTicket/index.d.ts +12 -0
- package/dist/solution/BookingTicket/index.js +122 -79
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +4 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +25 -16
- package/dist/solution/BuyTickets/index.js +7 -8
- package/dist/solution/Checkout/index.d.ts +1 -46
- package/dist/solution/Checkout/index.js +530 -850
- package/dist/solution/ShopDiscount/index.js +9 -10
- package/dist/types/index.d.ts +27 -0
- package/lib/core/index.d.ts +8 -1
- package/lib/core/index.js +48 -1
- package/lib/effects/index.d.ts +1 -0
- package/lib/effects/index.js +13 -0
- package/lib/modules/Account/index.js +2 -3
- package/lib/modules/BaseModule.d.ts +3 -0
- package/lib/modules/BaseModule.js +9 -0
- package/lib/modules/Customer/index.js +9 -10
- package/lib/modules/Customer/types.d.ts +2 -2
- package/lib/modules/Customer/types.js +2 -2
- package/lib/modules/Discount/index.js +1 -1
- package/lib/modules/Guests/index.js +9 -9
- package/lib/modules/Order/index.js +1 -1
- package/lib/modules/Payment/index.js +56 -43
- package/lib/modules/Payment/walletpass.js +3 -1
- package/lib/modules/Product/index.d.ts +1 -1
- package/lib/modules/Product/types.d.ts +19 -0
- package/lib/modules/ProductList/index.js +4 -13
- package/lib/modules/Resource/index.js +1 -1
- package/lib/modules/Rules/index.js +2 -3
- package/lib/modules/Schedule/types.d.ts +2 -0
- package/lib/plugins/request.d.ts +1 -0
- package/lib/server/index.d.ts +152 -0
- package/lib/server/index.js +555 -0
- package/lib/server/modules/index.d.ts +16 -0
- package/lib/server/modules/index.js +47 -0
- package/lib/server/modules/menu/index.d.ts +63 -0
- package/lib/server/modules/menu/index.js +234 -0
- package/lib/server/modules/menu/types.d.ts +68 -0
- package/lib/server/modules/menu/types.js +33 -0
- package/lib/server/modules/products/index.d.ts +141 -0
- package/lib/server/modules/products/index.js +434 -0
- package/lib/server/modules/products/types.d.ts +94 -0
- package/lib/server/modules/products/types.js +35 -0
- package/lib/server/modules/quotation/index.d.ts +47 -0
- package/lib/server/modules/quotation/index.js +177 -0
- package/lib/server/modules/quotation/types.d.ts +50 -0
- package/lib/server/modules/quotation/types.js +33 -0
- package/lib/server/modules/schedule/index.d.ts +62 -0
- package/lib/server/modules/schedule/index.js +231 -0
- package/lib/server/modules/schedule/types.d.ts +1 -0
- package/lib/server/modules/schedule/types.js +23 -0
- package/lib/server/modules/schedule/utils.d.ts +32 -0
- package/lib/server/modules/schedule/utils.js +451 -0
- package/lib/server/types.d.ts +64 -0
- package/lib/server/types.js +17 -0
- package/lib/server/utils/index.d.ts +5 -0
- package/lib/server/utils/index.js +25 -0
- package/lib/server/utils/product.d.ts +18 -0
- package/lib/server/utils/product.js +262 -0
- package/lib/server/utils/schedule.d.ts +14 -0
- package/lib/server/utils/schedule.js +88 -0
- package/lib/server/utils/time.d.ts +18 -0
- package/lib/server/utils/time.js +70 -0
- package/lib/solution/BookingByStep/index.d.ts +1 -17
- package/lib/solution/BookingByStep/index.js +40 -312
- package/lib/solution/BookingByStep/utils/capacity.d.ts +2 -7
- package/lib/solution/BookingByStep/utils/capacity.js +8 -21
- package/lib/solution/BookingTicket/index.d.ts +12 -0
- package/lib/solution/BookingTicket/index.js +25 -6
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +4 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +7 -1
- package/lib/solution/BuyTickets/index.js +7 -8
- package/lib/solution/Checkout/index.d.ts +1 -46
- package/lib/solution/Checkout/index.js +92 -289
- package/lib/solution/ShopDiscount/index.js +10 -11
- package/lib/types/index.d.ts +27 -0
- package/package.json +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 餐牌模块状态
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 餐牌数据结构
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 餐牌模块钩子
|
|
11
|
+
*/
|
|
12
|
+
export var MenuHooks = /*#__PURE__*/function (MenuHooks) {
|
|
13
|
+
MenuHooks["onMenuLoaded"] = "menu:onMenuLoaded";
|
|
14
|
+
MenuHooks["onMenuChanged"] = "menu:onMenuChanged";
|
|
15
|
+
return MenuHooks;
|
|
16
|
+
}({});
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Module, PisellCore } from '../../../types';
|
|
2
|
+
import { BaseModule } from '../../../modules/BaseModule';
|
|
3
|
+
import { ProductData } from '../../../modules/Product/types';
|
|
4
|
+
import type { RouteDefinition } from '../../types';
|
|
5
|
+
import { ProductFormatter, ProductFormatterContext } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Products 模块 - 用于获取和管理完整的商品详细数据
|
|
8
|
+
* 相比 ProductList 模块,Products 会获取所有详细信息并缓存
|
|
9
|
+
*/
|
|
10
|
+
export declare class ProductsModule extends BaseModule implements Module {
|
|
11
|
+
protected defaultName: string;
|
|
12
|
+
protected defaultVersion: string;
|
|
13
|
+
private store;
|
|
14
|
+
private request;
|
|
15
|
+
private dbManager;
|
|
16
|
+
private otherParams;
|
|
17
|
+
private productsPriceCache;
|
|
18
|
+
private readonly CACHE_MAX_DAYS;
|
|
19
|
+
private formatters;
|
|
20
|
+
private isPriceFormatterRegistered;
|
|
21
|
+
constructor(name?: string, version?: string);
|
|
22
|
+
initialize(core: PisellCore, options: any): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* 加载商品价格(原始方法,不带缓存)
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
private loadProductsPrice;
|
|
28
|
+
/**
|
|
29
|
+
* 获取应用了价格的商品列表(带缓存)
|
|
30
|
+
* 使用日期作为缓存 key,同一天的商品价格会被缓存
|
|
31
|
+
* 缓存的是已经应用了价格的完整商品列表,避免重复转换
|
|
32
|
+
* @param schedule_date 日期
|
|
33
|
+
* @param extraContext 额外的上下文数据(可选,由 Server 层传入)
|
|
34
|
+
* @returns 应用了价格的商品列表
|
|
35
|
+
*/
|
|
36
|
+
getProductsWithPrice(schedule_date: string, extraContext?: Partial<ProductFormatterContext>): Promise<ProductData[]>;
|
|
37
|
+
/**
|
|
38
|
+
* 准备带价格的商品数据(通过格式化器流程处理)
|
|
39
|
+
* @param schedule_date 日期
|
|
40
|
+
* @param extraContext 额外的上下文数据(可选)
|
|
41
|
+
* @returns 完整处理后的商品列表
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
private prepareProductsWithPrice;
|
|
45
|
+
/**
|
|
46
|
+
* 应用所有已注册的格式化器
|
|
47
|
+
* @param products 商品列表
|
|
48
|
+
* @param context 上下文信息
|
|
49
|
+
* @returns 格式化后的商品列表
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
private applyFormatters;
|
|
53
|
+
/**
|
|
54
|
+
* 注册内置的价格格式化器
|
|
55
|
+
* 这个格式化器负责将价格数据应用到商品上
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
private registerBuiltinPriceFormatter;
|
|
59
|
+
/**
|
|
60
|
+
* 注册商品格式化器
|
|
61
|
+
* 格式化器会按注册顺序依次执行(内置价格格式化器始终是第一个)
|
|
62
|
+
* @param formatter 格式化函数
|
|
63
|
+
* @param prepend 是否插入到队列开头(默认 false,追加到末尾)
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* productsModule.registerFormatter((products, context) => {
|
|
67
|
+
* return products.map(p => ({
|
|
68
|
+
* ...p,
|
|
69
|
+
* custom_field: 'custom_value'
|
|
70
|
+
* }));
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
registerFormatter(formatter: ProductFormatter, prepend?: boolean): void;
|
|
75
|
+
/**
|
|
76
|
+
* 清空所有格式化器(包括内置价格格式化器)
|
|
77
|
+
* @param keepBuiltin 是否保留内置价格格式化器(默认 true)
|
|
78
|
+
*/
|
|
79
|
+
clearFormatters(keepBuiltin?: boolean): void;
|
|
80
|
+
/**
|
|
81
|
+
* 清理过期的价格缓存
|
|
82
|
+
* 当缓存数量超过限制时,删除最老的缓存
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
private cleanExpiredPriceCache;
|
|
86
|
+
/**
|
|
87
|
+
* 清空商品价格缓存
|
|
88
|
+
* 可用于手动刷新价格数据
|
|
89
|
+
*/
|
|
90
|
+
clearPriceCache(): void;
|
|
91
|
+
/**
|
|
92
|
+
* 加载完整商品列表通过接口(包含所有详细数据)
|
|
93
|
+
* @param params 查询参数
|
|
94
|
+
*/
|
|
95
|
+
loadProductsByServer(params?: {
|
|
96
|
+
category_ids?: number[];
|
|
97
|
+
product_ids?: number[];
|
|
98
|
+
collection?: number | string[];
|
|
99
|
+
customer_id?: number;
|
|
100
|
+
cacheId?: string;
|
|
101
|
+
}): Promise<any>;
|
|
102
|
+
/**
|
|
103
|
+
* 获取商品列表(从缓存)
|
|
104
|
+
*/
|
|
105
|
+
getProducts(): Promise<ProductData[]>;
|
|
106
|
+
/**
|
|
107
|
+
* 根据ID获取单个商品(从内存缓存)
|
|
108
|
+
* 使用 Map 快速查询,时间复杂度 O(1)
|
|
109
|
+
*/
|
|
110
|
+
getProductById(id: number): Promise<ProductData | undefined>;
|
|
111
|
+
/**
|
|
112
|
+
* 清空缓存
|
|
113
|
+
*/
|
|
114
|
+
clear(): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* 从 IndexDB 加载商品数据
|
|
117
|
+
* @private
|
|
118
|
+
*/
|
|
119
|
+
private loadProductsFromIndexDB;
|
|
120
|
+
/**
|
|
121
|
+
* 保存商品数据到 IndexDB(平铺存储)
|
|
122
|
+
* @private
|
|
123
|
+
*/
|
|
124
|
+
private saveProductsToIndexDB;
|
|
125
|
+
/**
|
|
126
|
+
* 同步更新商品 Map 缓存
|
|
127
|
+
* 将 list 中的商品同步到 map,以 id 为 key
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
130
|
+
private syncProductsMap;
|
|
131
|
+
/**
|
|
132
|
+
* 预加载模块数据(统一接口)
|
|
133
|
+
* 在模块注册后自动调用
|
|
134
|
+
*/
|
|
135
|
+
preload(): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* 获取模块的路由定义
|
|
138
|
+
* Products 模块暂不提供路由,由 Server 层统一处理
|
|
139
|
+
*/
|
|
140
|
+
getRoutes(): RouteDefinition[];
|
|
141
|
+
}
|