@pisell/pisellos 2.3.67 → 2.3.68

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 (85) hide show
  1. package/dist/core/index.d.ts +0 -7
  2. package/dist/core/index.js +65 -109
  3. package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -1
  4. package/dist/model/strategy/adapter/walletPass/utils.js +0 -2
  5. package/dist/modules/BaseModule.d.ts +1 -0
  6. package/dist/modules/BaseModule.js +24 -28
  7. package/dist/modules/Customer/index.d.ts +4 -0
  8. package/dist/modules/Customer/index.js +91 -59
  9. package/dist/modules/Customer/types.d.ts +2 -0
  10. package/dist/modules/Order/index.d.ts +22 -2
  11. package/dist/modules/Order/index.js +313 -142
  12. package/dist/modules/Order/types.d.ts +13 -1
  13. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +15 -0
  14. package/dist/modules/Order/utils/orderCollectionIdentity.js +75 -0
  15. package/dist/modules/Order/utils.js +0 -1
  16. package/dist/modules/Payment/index.d.ts +4 -0
  17. package/dist/modules/Payment/index.js +14 -4
  18. package/dist/modules/Payment/walletpass.js +52 -18
  19. package/dist/modules/Quotation/index.d.ts +0 -6
  20. package/dist/modules/Quotation/index.js +19 -75
  21. package/dist/modules/Rules/index.js +46 -31
  22. package/dist/plugins/request.d.ts +0 -1
  23. package/dist/server/index.d.ts +2 -8
  24. package/dist/server/index.js +143 -212
  25. package/dist/server/modules/floor-plan/index.d.ts +0 -4
  26. package/dist/server/modules/floor-plan/index.js +98 -240
  27. package/dist/server/modules/menu/index.js +23 -48
  28. package/dist/server/modules/order/index.d.ts +8 -17
  29. package/dist/server/modules/order/index.js +453 -506
  30. package/dist/server/modules/products/index.d.ts +2 -8
  31. package/dist/server/modules/products/index.js +75 -167
  32. package/dist/server/modules/resource/index.js +13 -21
  33. package/dist/server/utils/small-ticket.js +2 -1
  34. package/dist/solution/BaseSales/index.d.ts +3 -1
  35. package/dist/solution/BaseSales/index.js +99 -82
  36. package/dist/solution/BaseSales/utils.js +31 -20
  37. package/dist/solution/BookingTicket/index.d.ts +6 -2
  38. package/dist/solution/BookingTicket/index.js +123 -75
  39. package/dist/solution/ScanOrder/utils.js +31 -20
  40. package/dist/solution/UnifiedBookingSales/index.d.ts +25 -0
  41. package/dist/solution/UnifiedBookingSales/index.js +640 -321
  42. package/dist/solution/UnifiedBookingSales/types.d.ts +7 -0
  43. package/lib/core/index.d.ts +0 -7
  44. package/lib/core/index.js +2 -20
  45. package/lib/model/strategy/adapter/walletPass/evaluator.js +0 -1
  46. package/lib/model/strategy/adapter/walletPass/utils.js +0 -1
  47. package/lib/modules/BaseModule.d.ts +1 -0
  48. package/lib/modules/BaseModule.js +24 -37
  49. package/lib/modules/Customer/index.d.ts +4 -0
  50. package/lib/modules/Customer/index.js +11 -0
  51. package/lib/modules/Customer/types.d.ts +2 -0
  52. package/lib/modules/Order/index.d.ts +22 -2
  53. package/lib/modules/Order/index.js +212 -54
  54. package/lib/modules/Order/types.d.ts +13 -1
  55. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +15 -0
  56. package/lib/modules/Order/utils/orderCollectionIdentity.js +70 -0
  57. package/lib/modules/Order/utils.js +0 -1
  58. package/lib/modules/Payment/index.d.ts +4 -0
  59. package/lib/modules/Payment/index.js +7 -0
  60. package/lib/modules/Payment/walletpass.js +27 -2
  61. package/lib/modules/Quotation/index.d.ts +0 -6
  62. package/lib/modules/Quotation/index.js +5 -49
  63. package/lib/modules/Rules/index.js +17 -1
  64. package/lib/plugins/request.d.ts +0 -1
  65. package/lib/server/index.d.ts +2 -8
  66. package/lib/server/index.js +20 -58
  67. package/lib/server/modules/floor-plan/index.d.ts +0 -4
  68. package/lib/server/modules/floor-plan/index.js +6 -54
  69. package/lib/server/modules/menu/index.js +5 -31
  70. package/lib/server/modules/order/index.d.ts +8 -17
  71. package/lib/server/modules/order/index.js +106 -199
  72. package/lib/server/modules/products/index.d.ts +2 -8
  73. package/lib/server/modules/products/index.js +24 -97
  74. package/lib/server/modules/resource/index.js +2 -7
  75. package/lib/server/utils/small-ticket.js +1 -1
  76. package/lib/solution/BaseSales/index.d.ts +3 -1
  77. package/lib/solution/BaseSales/index.js +29 -16
  78. package/lib/solution/BaseSales/utils.js +29 -18
  79. package/lib/solution/BookingTicket/index.d.ts +6 -2
  80. package/lib/solution/BookingTicket/index.js +53 -14
  81. package/lib/solution/ScanOrder/utils.js +29 -18
  82. package/lib/solution/UnifiedBookingSales/index.d.ts +25 -0
  83. package/lib/solution/UnifiedBookingSales/index.js +188 -0
  84. package/lib/solution/UnifiedBookingSales/types.d.ts +7 -0
  85. package/package.json +1 -1
@@ -327,7 +327,7 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
327
327
  key: "loadMenuFromIndexDB",
328
328
  value: (function () {
329
329
  var _loadMenuFromIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
330
- var startedAt, _menuList$length, menuList, errorMessage;
330
+ var _menuList$length, menuList, errorMessage;
331
331
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
332
332
  while (1) switch (_context5.prev = _context5.next) {
333
333
  case 0:
@@ -338,32 +338,29 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
338
338
  this.logWarning('loadMenuFromIndexDB: dbManager 不可用');
339
339
  return _context5.abrupt("return", []);
340
340
  case 3:
341
- startedAt = performance.now();
342
- _context5.prev = 4;
343
- _context5.next = 7;
341
+ _context5.prev = 3;
342
+ _context5.next = 6;
344
343
  return this.dbManager.getAll(INDEXDB_STORE_NAME);
345
- case 7:
344
+ case 6:
346
345
  menuList = _context5.sent;
347
346
  this.logInfo('从 IndexDB 加载餐牌数据', {
348
- menuCount: (_menuList$length = menuList === null || menuList === void 0 ? void 0 : menuList.length) !== null && _menuList$length !== void 0 ? _menuList$length : 0,
349
- durationMs: +(performance.now() - startedAt).toFixed(2)
347
+ menuCount: (_menuList$length = menuList === null || menuList === void 0 ? void 0 : menuList.length) !== null && _menuList$length !== void 0 ? _menuList$length : 0
350
348
  });
351
349
  return _context5.abrupt("return", menuList || []);
352
- case 12:
353
- _context5.prev = 12;
354
- _context5.t0 = _context5["catch"](4);
350
+ case 11:
351
+ _context5.prev = 11;
352
+ _context5.t0 = _context5["catch"](3);
355
353
  errorMessage = _context5.t0 instanceof Error ? _context5.t0.message : String(_context5.t0);
356
354
  console.error('[Menu] 从 IndexDB 读取数据失败:', _context5.t0);
357
355
  this.logError('从 IndexDB 读取数据失败', {
358
- durationMs: +(performance.now() - startedAt).toFixed(2),
359
356
  error: errorMessage
360
357
  });
361
358
  return _context5.abrupt("return", []);
362
- case 18:
359
+ case 17:
363
360
  case "end":
364
361
  return _context5.stop();
365
362
  }
366
- }, _callee5, this, [[4, 12]]);
363
+ }, _callee5, this, [[3, 11]]);
367
364
  }));
368
365
  function loadMenuFromIndexDB() {
369
366
  return _loadMenuFromIndexDB.apply(this, arguments);
@@ -380,7 +377,7 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
380
377
  value: (function () {
381
378
  var _saveMenuToIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(menuList) {
382
379
  var _this2 = this;
383
- var startedAt, clearDurationMs, writeDurationMs, clearStartedAt, writeStartedAt, savePromises, errorMessage;
380
+ var savePromises, errorMessage;
384
381
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
385
382
  while (1) switch (_context6.prev = _context6.next) {
386
383
  case 0:
@@ -391,62 +388,40 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
391
388
  this.logWarning('saveMenuToIndexDB: dbManager 不可用');
392
389
  return _context6.abrupt("return");
393
390
  case 3:
394
- startedAt = performance.now();
395
- clearDurationMs = 0;
396
- writeDurationMs = 0;
397
391
  this.logInfo('开始保存餐牌数据到 IndexDB', {
398
392
  menuCount: menuList.length
399
393
  });
400
- _context6.prev = 7;
401
- // 先清空现有的餐牌数据
402
- clearStartedAt = performance.now();
403
- _context6.prev = 9;
404
- _context6.next = 12;
394
+ _context6.prev = 4;
395
+ _context6.next = 7;
405
396
  return this.dbManager.clear(INDEXDB_STORE_NAME);
406
- case 12:
407
- _context6.prev = 12;
408
- clearDurationMs = +(performance.now() - clearStartedAt).toFixed(2);
409
- return _context6.finish(12);
410
- case 15:
397
+ case 7:
411
398
  // 逐个保存餐牌(每个餐牌是独立的记录)
412
- writeStartedAt = performance.now();
413
399
  savePromises = menuList.map(function (menu) {
414
400
  return _this2.dbManager.add(INDEXDB_STORE_NAME, menu);
415
401
  });
416
- _context6.prev = 17;
417
- _context6.next = 20;
402
+ _context6.next = 10;
418
403
  return Promise.all(savePromises);
419
- case 20:
420
- _context6.prev = 20;
421
- writeDurationMs = +(performance.now() - writeStartedAt).toFixed(2);
422
- return _context6.finish(20);
423
- case 23:
404
+ case 10:
424
405
  console.log("[Menu] \u5DF2\u5C06 ".concat(menuList.length, " \u6761\u9910\u724C\u6570\u636E\u4FDD\u5B58\u5230 IndexDB"));
425
406
  this.logInfo('餐牌数据已保存到 IndexDB', {
426
- menuCount: menuList.length,
427
- clearDurationMs: clearDurationMs,
428
- writeDurationMs: writeDurationMs,
429
- totalDurationMs: +(performance.now() - startedAt).toFixed(2)
407
+ menuCount: menuList.length
430
408
  });
431
- _context6.next = 32;
409
+ _context6.next = 19;
432
410
  break;
433
- case 27:
434
- _context6.prev = 27;
435
- _context6.t0 = _context6["catch"](7);
411
+ case 14:
412
+ _context6.prev = 14;
413
+ _context6.t0 = _context6["catch"](4);
436
414
  errorMessage = _context6.t0 instanceof Error ? _context6.t0.message : String(_context6.t0);
437
415
  console.error('[Menu] 保存数据到 IndexDB 失败:', _context6.t0);
438
416
  this.logError('保存数据到 IndexDB 失败', {
439
417
  menuCount: menuList.length,
440
- clearDurationMs: clearDurationMs,
441
- writeDurationMs: writeDurationMs,
442
- totalDurationMs: +(performance.now() - startedAt).toFixed(2),
443
418
  error: errorMessage
444
419
  });
445
- case 32:
420
+ case 19:
446
421
  case "end":
447
422
  return _context6.stop();
448
423
  }
449
- }, _callee6, this, [[7, 27], [9,, 12, 15], [17,, 20, 23]]);
424
+ }, _callee6, this, [[4, 14]]);
450
425
  }));
451
426
  function saveMenuToIndexDB(_x4) {
452
427
  return _saveMenuToIndexDB.apply(this, arguments);
@@ -119,23 +119,14 @@ export declare class OrderModule extends BaseModule implements Module {
119
119
  payment: Record<string, any>;
120
120
  previousPayment: Record<string, any>;
121
121
  } | null>;
122
- loadOrdersByServer(options?: {
123
- trigger?: string;
124
- }): Promise<OrderData[]>;
122
+ loadOrdersByServer(): Promise<OrderData[]>;
125
123
  /**
126
124
  * 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
127
125
  * 拿到完整数据后一次性替换 store,触发订单变更与同步完成事件
128
126
  * @returns 刷新后的订单列表
129
127
  */
130
- silentRefresh(options?: {
131
- trigger?: string;
132
- }): Promise<OrderData[]>;
128
+ silentRefresh(): Promise<OrderData[]>;
133
129
  private normalizeOrderForMemoryList;
134
- /**
135
- * 将已经完成集合规范化的订单转换为内存身份,不重复扫描 products/bookings/payments。
136
- */
137
- private prepareNormalizedOrderForMemoryList;
138
- private prepareNormalizedOrdersForMemoryList;
139
130
  private normalizeOrdersForMemoryList;
140
131
  private hasRealOrderId;
141
132
  private shouldKeepOrderInMemory;
@@ -283,6 +274,7 @@ export declare class OrderModule extends BaseModule implements Module {
283
274
  * // => 'S-1001'
284
275
  */
285
276
  private getOrderStorageKey;
277
+ private getPersistedOrderStorageKey;
286
278
  private getOrderIdentityMatchKeys;
287
279
  private doOrdersShareIdentity;
288
280
  private findOrderIndexByIdentity;
@@ -299,14 +291,13 @@ export declare class OrderModule extends BaseModule implements Module {
299
291
  private logDuplicateOrders;
300
292
  private compactOrderListByIdentity;
301
293
  /**
302
- * 当前订单缓存可复用窗口。
303
- * start_time 模式使用精确的营业日起止时间;配置缺失或异常时退化为自然日。
294
+ * 当前订单拉取窗口:
295
+ * - 优先使用 createdAtQuery.sales_time_between(已按营业日边界初始化)
296
+ * - 无法解析时退化为自然日窗口
304
297
  */
305
- private getCurrentOrderCacheWindow;
298
+ private getCurrentPullWindow;
306
299
  private hasPulledOrdersToday;
307
300
  private markOrderPulledAtNow;
308
- private clearOrderSnapshotMarker;
309
- private getCurrentShopId;
310
301
  private getStorageItem;
311
302
  private setStorageItem;
312
303
  private loadOrdersFromSQLite;
@@ -344,7 +335,7 @@ export declare class OrderModule extends BaseModule implements Module {
344
335
  * 用于 SSE 全量拉取与营业日窗口裁剪。
345
336
  *
346
337
  * @example
347
- * const { orders, persisted } = await this.replaceOrdersSnapshotInSQLite(orderList, 'refresh')
338
+ * await this.replaceOrdersSnapshotInSQLite(orderList)
348
339
  */
349
340
  private replaceOrdersSnapshotInSQLite;
350
341
  /**