@pisell/pisellos 2.3.62 → 2.3.63

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 (34) hide show
  1. package/dist/core/index.d.ts +0 -7
  2. package/dist/core/index.js +66 -109
  3. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  4. package/dist/modules/Quotation/index.d.ts +0 -6
  5. package/dist/modules/Quotation/index.js +19 -75
  6. package/dist/plugins/request.d.ts +0 -1
  7. package/dist/server/index.d.ts +2 -6
  8. package/dist/server/index.js +91 -132
  9. package/dist/server/modules/floor-plan/index.d.ts +0 -4
  10. package/dist/server/modules/floor-plan/index.js +98 -240
  11. package/dist/server/modules/menu/index.js +23 -48
  12. package/dist/server/modules/order/index.d.ts +7 -12
  13. package/dist/server/modules/order/index.js +96 -248
  14. package/dist/server/modules/products/index.d.ts +2 -8
  15. package/dist/server/modules/products/index.js +75 -167
  16. package/dist/server/modules/resource/index.js +13 -21
  17. package/dist/solution/BookingByStep/index.d.ts +1 -1
  18. package/lib/core/index.d.ts +0 -7
  19. package/lib/core/index.js +3 -20
  20. package/lib/modules/Quotation/index.d.ts +0 -6
  21. package/lib/modules/Quotation/index.js +5 -49
  22. package/lib/plugins/request.d.ts +0 -1
  23. package/lib/server/index.d.ts +2 -6
  24. package/lib/server/index.js +11 -33
  25. package/lib/server/modules/floor-plan/index.d.ts +0 -4
  26. package/lib/server/modules/floor-plan/index.js +6 -54
  27. package/lib/server/modules/menu/index.js +5 -31
  28. package/lib/server/modules/order/index.d.ts +7 -12
  29. package/lib/server/modules/order/index.js +28 -143
  30. package/lib/server/modules/products/index.d.ts +2 -8
  31. package/lib/server/modules/products/index.js +24 -97
  32. package/lib/server/modules/resource/index.js +2 -7
  33. package/lib/solution/BookingByStep/index.d.ts +1 -1
  34. package/package.json +1 -1
@@ -42,7 +42,6 @@ import { getOrderPaymentIdentityKeys, isIdentifiedPendingOrderPayment, isPending
42
42
  */
43
43
  var INDEXDB_STORE_NAME = 'orders';
44
44
  var ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY = 'server_order_last_full_fetch_at';
45
- var ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY = 'server_order_last_full_fetch_shop_id';
46
45
  var ORDER_SYNC_THROTTLE_MS_STORAGE_KEY = 'order_sync_throttle_ms';
47
46
  var DEFAULT_ORDER_SYNC_THROTTLE_MS = 2000;
48
47
  /** pubsub 回声写入去重窗口:业务 API 刚写入后,跳过同单 SQLite patch */
@@ -701,78 +700,26 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
701
700
  key: "preload",
702
701
  value: function () {
703
702
  var _preload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
704
- var preloadStartedAt, cachedOrders, memoryOrders, orders;
703
+ var orders;
705
704
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
706
705
  while (1) switch (_context4.prev = _context4.next) {
707
706
  case 0:
708
- preloadStartedAt = Date.now();
709
- cachedOrders = null;
710
- if (!this.dbManager) {
711
- _context4.next = 12;
712
- break;
713
- }
714
- _context4.prev = 3;
715
- _context4.next = 6;
716
- return this.loadOrdersFromSQLite({
717
- throwOnError: true
718
- });
719
- case 6:
720
- cachedOrders = _context4.sent;
721
- _context4.next = 12;
722
- break;
723
- case 9:
724
- _context4.prev = 9;
725
- _context4.t0 = _context4["catch"](3);
726
- this.logWarning('preload-SQLite读取失败,回退远端全量拉取', {
727
- error: _context4.t0 instanceof Error ? _context4.t0.message : String(_context4.t0)
728
- });
729
- case 12:
730
- if (!(cachedOrders !== null && this.hasPulledOrdersToday())) {
731
- _context4.next = 22;
732
- break;
733
- }
734
- memoryOrders = this.normalizeOrdersForMemoryList(cachedOrders, 'preload.sqliteMemory');
735
- this.store.list = cloneDeep(memoryOrders);
736
- this.syncOrdersMap();
737
- _context4.next = 18;
738
- return this.core.effects.emit(OrderHooks.onOrdersLoaded, this.store.list);
739
- case 18:
740
- _context4.next = 20;
741
- return this.emitOrdersChanged([], 'preload.sqlite');
742
- case 20:
743
- this.logInfo('预加载完成', {
744
- trigger: 'preload',
745
- source: 'SQLite',
746
- orderCount: this.store.list.length,
747
- duration: "".concat(Date.now() - preloadStartedAt, "ms")
748
- });
749
- return _context4.abrupt("return");
750
- case 22:
751
- _context4.next = 24;
752
- return this.loadOrdersByServer({
753
- trigger: 'preload'
754
- });
755
- case 24:
707
+ _context4.next = 2;
708
+ return this.loadOrdersByServer();
709
+ case 2:
756
710
  orders = _context4.sent;
757
711
  this.store.list = cloneDeep(orders);
758
712
  this.syncOrdersMap();
759
- _context4.next = 29;
713
+ _context4.next = 7;
760
714
  return this.emitOrdersChanged([], 'preload');
761
- case 29:
762
- _context4.next = 31;
715
+ case 7:
716
+ _context4.next = 9;
763
717
  return this.core.effects.emit(OrderHooks.onOrdersSyncCompleted, null);
764
- case 31:
765
- this.logInfo('预加载完成', {
766
- trigger: 'preload',
767
- source: 'Server',
768
- orderCount: this.store.list.length,
769
- duration: "".concat(Date.now() - preloadStartedAt, "ms")
770
- });
771
- case 32:
718
+ case 9:
772
719
  case "end":
773
720
  return _context4.stop();
774
721
  }
775
- }, _callee4, this, [[3, 9]]);
722
+ }, _callee4, this);
776
723
  }));
777
724
  function preload() {
778
725
  return _preload.apply(this, arguments);
@@ -1105,32 +1052,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1105
1052
  var _loadOrdersByServer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
1106
1053
  var _this5 = this,
1107
1054
  _this$store;
1108
- var options,
1109
- orderList,
1110
- hasFetchedRemoteSnapshot,
1111
- trigger,
1112
- protectedOrdersBeforeRemoteFetch,
1113
- data,
1114
- _yield$this$replaceOr,
1115
- mergedOrders,
1116
- isRemoteSnapshotPersisted,
1117
- memoryOrders,
1118
- _args8 = arguments;
1055
+ var orderList, protectedOrdersBeforeRemoteFetch, data, mergedOrders, memoryOrders;
1119
1056
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1120
1057
  while (1) switch (_context8.prev = _context8.next) {
1121
1058
  case 0:
1122
- options = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {};
1123
1059
  orderList = [];
1124
- hasFetchedRemoteSnapshot = false;
1125
- trigger = options.trigger || 'unknown';
1126
- _context8.next = 6;
1060
+ _context8.next = 3;
1127
1061
  return this.loadOrdersFromSQLite();
1128
- case 6:
1062
+ case 3:
1129
1063
  protectedOrdersBeforeRemoteFetch = _context8.sent.filter(function (order) {
1130
1064
  return _this5.shouldProtectLocalOrderFromRemoteSnapshot(order);
1131
1065
  });
1132
1066
  this.logInfo('loadOrdersByServer-开始', {
1133
- trigger: trigger,
1134
1067
  hasOrderDataSource: !!this.orderDataSource,
1135
1068
  query: ((_this$store = this.store) === null || _this$store === void 0 ? void 0 : _this$store.createdAtQuery) || null,
1136
1069
  protectedLocalOrderCount: protectedOrdersBeforeRemoteFetch.length,
@@ -1139,61 +1072,51 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1139
1072
  }, 0)
1140
1073
  });
1141
1074
  if (!this.orderDataSource) {
1142
- _context8.next = 23;
1075
+ _context8.next = 20;
1143
1076
  break;
1144
1077
  }
1145
- _context8.prev = 9;
1146
- _context8.next = 12;
1078
+ _context8.prev = 6;
1079
+ _context8.next = 9;
1147
1080
  return this.orderDataSource.run({
1148
1081
  sse: {
1149
1082
  query: this.store.createdAtQuery
1150
1083
  }
1151
1084
  });
1152
- case 12:
1085
+ case 9:
1153
1086
  data = _context8.sent;
1154
1087
  orderList = data || [];
1155
1088
  this.logInfo('loadOrdersByServer-SSE拉取成功', {
1156
- trigger: trigger,
1157
1089
  count: orderList.length
1158
1090
  });
1159
- hasFetchedRemoteSnapshot = true;
1091
+ this.markOrderPulledAtNow();
1160
1092
  this.lastServerFullFetchAtMs = Date.now();
1161
- _context8.next = 23;
1093
+ _context8.next = 20;
1162
1094
  break;
1163
- case 19:
1164
- _context8.prev = 19;
1165
- _context8.t0 = _context8["catch"](9);
1095
+ case 16:
1096
+ _context8.prev = 16;
1097
+ _context8.t0 = _context8["catch"](6);
1166
1098
  this.logInfo('loadOrdersByServer-SSE拉取失败,保持当前内存订单');
1167
1099
  return _context8.abrupt("return", this.store.list);
1168
- case 23:
1169
- if (hasFetchedRemoteSnapshot) {
1170
- this.clearOrderSnapshotMarker();
1171
- }
1172
- _context8.next = 26;
1100
+ case 20:
1101
+ _context8.next = 22;
1173
1102
  return this.replaceOrdersSnapshotInSQLite(orderList, 'loadOrdersByServer', protectedOrdersBeforeRemoteFetch);
1174
- case 26:
1175
- _yield$this$replaceOr = _context8.sent;
1176
- mergedOrders = _yield$this$replaceOr.orders;
1177
- isRemoteSnapshotPersisted = _yield$this$replaceOr.persisted;
1178
- if (hasFetchedRemoteSnapshot && isRemoteSnapshotPersisted) {
1179
- this.markOrderPulledAtNow();
1180
- }
1103
+ case 22:
1104
+ mergedOrders = _context8.sent;
1181
1105
  memoryOrders = this.normalizeOrdersForMemoryList(mergedOrders, 'loadOrdersByServer.memory');
1182
1106
  this.logInfo('loadOrdersByServer-结束', {
1183
- trigger: trigger,
1184
1107
  count: memoryOrders.length,
1185
1108
  persistedCount: mergedOrders.length,
1186
1109
  sqliteOnlyDraftCount: mergedOrders.length - memoryOrders.length
1187
1110
  });
1188
- _context8.next = 34;
1111
+ _context8.next = 27;
1189
1112
  return this.core.effects.emit(OrderHooks.onOrdersLoaded, memoryOrders);
1190
- case 34:
1113
+ case 27:
1191
1114
  return _context8.abrupt("return", memoryOrders);
1192
- case 35:
1115
+ case 28:
1193
1116
  case "end":
1194
1117
  return _context8.stop();
1195
1118
  }
1196
- }, _callee8, this, [[9, 19]]);
1119
+ }, _callee8, this, [[6, 16]]);
1197
1120
  }));
1198
1121
  function loadOrdersByServer() {
1199
1122
  return _loadOrdersByServer.apply(this, arguments);
@@ -1209,76 +1132,53 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
1209
1132
  key: "silentRefresh",
1210
1133
  value: (function () {
1211
1134
  var _silentRefresh = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1212
- var options,
1213
- startTime,
1214
- trigger,
1215
- elapsedSinceFullFetch,
1216
- orders,
1217
- errorMessage,
1218
- _args9 = arguments;
1135
+ var startTime, elapsedSinceFullFetch, orders, errorMessage;
1219
1136
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1220
1137
  while (1) switch (_context9.prev = _context9.next) {
1221
1138
  case 0:
1222
- options = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {};
1223
1139
  startTime = Date.now();
1224
- trigger = options.trigger || 'background';
1225
1140
  elapsedSinceFullFetch = Date.now() - this.lastServerFullFetchAtMs;
1226
1141
  if (!(this.lastServerFullFetchAtMs > 0 && elapsedSinceFullFetch < ORDER_SILENT_REFRESH_MIN_INTERVAL_MS)) {
1227
- _context9.next = 7;
1142
+ _context9.next = 4;
1228
1143
  break;
1229
1144
  }
1230
- this.logInfo('silentRefresh 跳过全量 SSE', {
1231
- trigger: trigger,
1232
- reason: 'within_min_interval',
1233
- minIntervalMs: ORDER_SILENT_REFRESH_MIN_INTERVAL_MS,
1234
- elapsedSinceFullFetchMs: elapsedSinceFullFetch,
1235
- orderCount: this.store.list.length
1236
- });
1237
1145
  return _context9.abrupt("return", this.store.list);
1238
- case 7:
1239
- this.logInfo('silentRefresh 开始', {
1240
- trigger: trigger,
1241
- elapsedSinceFullFetchMs: elapsedSinceFullFetch,
1242
- orderCount: this.store.list.length
1243
- });
1244
- _context9.prev = 8;
1146
+ case 4:
1147
+ this.logInfo('silentRefresh 开始');
1148
+ _context9.prev = 5;
1245
1149
  // 刷新前,需要更新当前营业日边界(store.createdAtQuery)
1246
1150
  this.updateCreateStore();
1247
- _context9.next = 12;
1248
- return this.loadOrdersByServer({
1249
- trigger: trigger
1250
- });
1251
- case 12:
1151
+ _context9.next = 9;
1152
+ return this.loadOrdersByServer();
1153
+ case 9:
1252
1154
  orders = _context9.sent;
1253
1155
  this.store.list = cloneDeep(orders);
1254
1156
  this.syncOrdersMap();
1255
- _context9.next = 17;
1157
+ _context9.next = 14;
1256
1158
  return this.emitOrdersChanged([], 'silentRefresh');
1257
- case 17:
1258
- _context9.next = 19;
1159
+ case 14:
1160
+ _context9.next = 16;
1259
1161
  return this.core.effects.emit(OrderHooks.onOrdersSyncCompleted, null);
1260
- case 19:
1162
+ case 16:
1261
1163
  this.logInfo('silentRefresh 完成', {
1262
- trigger: trigger,
1263
1164
  orderCount: orders.length,
1264
1165
  duration: "".concat(Date.now() - startTime, "ms")
1265
1166
  });
1266
1167
  return _context9.abrupt("return", this.store.list);
1267
- case 23:
1268
- _context9.prev = 23;
1269
- _context9.t0 = _context9["catch"](8);
1168
+ case 20:
1169
+ _context9.prev = 20;
1170
+ _context9.t0 = _context9["catch"](5);
1270
1171
  errorMessage = _context9.t0 instanceof Error ? _context9.t0.message : String(_context9.t0);
1271
1172
  this.logError('silentRefresh 失败', {
1272
- trigger: trigger,
1273
1173
  duration: "".concat(Date.now() - startTime, "ms"),
1274
1174
  error: errorMessage
1275
1175
  });
1276
1176
  return _context9.abrupt("return", this.store.list);
1277
- case 28:
1177
+ case 25:
1278
1178
  case "end":
1279
1179
  return _context9.stop();
1280
1180
  }
1281
- }, _callee9, this, [[8, 23]]);
1181
+ }, _callee9, this, [[5, 20]]);
1282
1182
  }));
1283
1183
  function silentRefresh() {
1284
1184
  return _silentRefresh.apply(this, arguments);
@@ -3293,32 +3193,25 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3293
3193
  }
3294
3194
 
3295
3195
  /**
3296
- * 当前订单缓存可复用窗口。
3297
- * start_time 模式使用精确的营业日起止时间;配置缺失或异常时退化为自然日。
3196
+ * 当前订单拉取窗口:
3197
+ * - 优先使用 createdAtQuery.sales_time_between(已按营业日边界初始化)
3198
+ * - 无法解析时退化为自然日窗口
3298
3199
  */
3299
3200
  }, {
3300
- key: "getCurrentOrderCacheWindow",
3301
- value: function getCurrentOrderCacheWindow() {
3201
+ key: "getCurrentPullWindow",
3202
+ value: function getCurrentPullWindow() {
3203
+ var _this$store2;
3302
3204
  var now = dayjs();
3303
- try {
3304
- var _coreData$core;
3305
- var appPlugin = this.core.getPlugin('app');
3306
- var app = appPlugin === null || appPlugin === void 0 ? void 0 : appPlugin.getApp();
3307
- var coreData = app === null || app === void 0 ? void 0 : app.data.store.getStore().getDataByModel('core');
3308
- var boundary = coreData === null || coreData === void 0 || (_coreData$core = coreData.core) === null || _coreData$core === void 0 ? void 0 : _coreData$core.operating_day_boundary;
3309
- if ((boundary === null || boundary === void 0 ? void 0 : boundary.type) === 'start_time') {
3310
- var boundaryTime = String(boundary.time || '').trim();
3311
- var todayBoundary = dayjs("".concat(now.format('YYYY-MM-DD'), " ").concat(boundaryTime));
3312
- if (todayBoundary.isValid()) {
3313
- var _startAt = now.isBefore(todayBoundary) ? todayBoundary.subtract(1, 'day') : todayBoundary;
3314
- return {
3315
- startAt: _startAt,
3316
- endExclusiveAt: _startAt.add(1, 'day')
3317
- };
3318
- }
3205
+ var range = (_this$store2 = this.store) === null || _this$store2 === void 0 || (_this$store2 = _this$store2.createdAtQuery) === null || _this$store2 === void 0 ? void 0 : _this$store2.sales_time_between;
3206
+ if (Array.isArray(range) && range.length >= 2) {
3207
+ var _startAt = dayjs(range[0]);
3208
+ var endExclusiveAt = dayjs(range[1]);
3209
+ if (_startAt.isValid() && endExclusiveAt.isValid() && endExclusiveAt.isAfter(_startAt)) {
3210
+ return {
3211
+ startAt: _startAt,
3212
+ endExclusiveAt: endExclusiveAt
3213
+ };
3319
3214
  }
3320
- } catch (_unused6) {
3321
- // 读取营业日配置失败时按自然日兜底,不影响启动。
3322
3215
  }
3323
3216
  var startAt = now.startOf('day');
3324
3217
  return {
@@ -3331,47 +3224,20 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3331
3224
  value: function hasPulledOrdersToday() {
3332
3225
  var lastFullFetchAt = this.getStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY);
3333
3226
  if (!lastFullFetchAt) return false;
3334
- var currentShopId = this.getCurrentShopId();
3335
- var lastFullFetchShopId = this.getStorageItem(ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY);
3336
- if (!currentShopId || !lastFullFetchShopId || currentShopId !== lastFullFetchShopId) {
3337
- return false;
3338
- }
3339
3227
  var parsed = dayjs(lastFullFetchAt);
3340
3228
  if (!parsed.isValid()) return false;
3341
- var _this$getCurrentOrder = this.getCurrentOrderCacheWindow(),
3342
- startAt = _this$getCurrentOrder.startAt,
3343
- endExclusiveAt = _this$getCurrentOrder.endExclusiveAt;
3229
+
3230
+ // 按当前拉取窗口判断,而不是自然日判断。
3231
+ // 这样在营业日跨日边界(start_time)场景下也能正确判定是否需要重新拉取。
3232
+ var _this$getCurrentPullW = this.getCurrentPullWindow(),
3233
+ startAt = _this$getCurrentPullW.startAt,
3234
+ endExclusiveAt = _this$getCurrentPullW.endExclusiveAt;
3344
3235
  return (parsed.isAfter(startAt) || parsed.isSame(startAt)) && parsed.isBefore(endExclusiveAt);
3345
3236
  }
3346
3237
  }, {
3347
3238
  key: "markOrderPulledAtNow",
3348
3239
  value: function markOrderPulledAtNow() {
3349
- var currentShopId = this.getCurrentShopId();
3350
- if (!currentShopId) return;
3351
3240
  this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, dayjs().format('YYYY-MM-DD HH:mm:ss'));
3352
- this.setStorageItem(ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY, currentShopId);
3353
- }
3354
- }, {
3355
- key: "clearOrderSnapshotMarker",
3356
- value: function clearOrderSnapshotMarker() {
3357
- this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, '');
3358
- this.setStorageItem(ORDER_LAST_FULL_FETCH_SHOP_ID_STORAGE_KEY, '');
3359
- }
3360
- }, {
3361
- key: "getCurrentShopId",
3362
- value: function getCurrentShopId() {
3363
- try {
3364
- var _coreData$core2;
3365
- var appPlugin = this.core.getPlugin('app');
3366
- var app = appPlugin === null || appPlugin === void 0 ? void 0 : appPlugin.getApp();
3367
- if (!app) return null;
3368
- var coreData = app.data.store.getStore().getDataByModel('core');
3369
- var shopId = coreData === null || coreData === void 0 || (_coreData$core2 = coreData.core) === null || _coreData$core2 === void 0 ? void 0 : _coreData$core2.id;
3370
- if (shopId === undefined || shopId === null || shopId === '') return null;
3371
- return String(shopId);
3372
- } catch (_unused7) {
3373
- return null;
3374
- }
3375
3241
  }
3376
3242
  }, {
3377
3243
  key: "getStorageItem",
@@ -3382,7 +3248,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3382
3248
  if (typeof globalThis !== 'undefined' && globalThis !== null && globalThis !== void 0 && globalThis.localStorage) {
3383
3249
  return globalThis.localStorage.getItem(key);
3384
3250
  }
3385
- } catch (_unused8) {
3251
+ } catch (_unused6) {
3386
3252
  // 忽略存储异常,避免影响主流程
3387
3253
  }
3388
3254
  return null;
@@ -3399,7 +3265,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3399
3265
  if (typeof globalThis !== 'undefined' && globalThis !== null && globalThis !== void 0 && globalThis.localStorage) {
3400
3266
  globalThis.localStorage.setItem(key, value);
3401
3267
  }
3402
- } catch (_unused9) {
3268
+ } catch (_unused7) {
3403
3269
  // 忽略存储异常,避免影响主流程
3404
3270
  }
3405
3271
  }
@@ -3408,42 +3274,33 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3408
3274
  value: function () {
3409
3275
  var _loadOrdersFromSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20() {
3410
3276
  var _this20 = this;
3411
- var options,
3412
- orders,
3413
- _args20 = arguments;
3277
+ var orders;
3414
3278
  return _regeneratorRuntime().wrap(function _callee20$(_context20) {
3415
3279
  while (1) switch (_context20.prev = _context20.next) {
3416
3280
  case 0:
3417
- options = _args20.length > 0 && _args20[0] !== undefined ? _args20[0] : {};
3418
3281
  if (this.dbManager) {
3419
- _context20.next = 3;
3282
+ _context20.next = 2;
3420
3283
  break;
3421
3284
  }
3422
3285
  return _context20.abrupt("return", []);
3423
- case 3:
3424
- _context20.prev = 3;
3425
- _context20.next = 6;
3286
+ case 2:
3287
+ _context20.prev = 2;
3288
+ _context20.next = 5;
3426
3289
  return this.dbManager.getAll(INDEXDB_STORE_NAME);
3427
- case 6:
3290
+ case 5:
3428
3291
  orders = _context20.sent;
3429
3292
  return _context20.abrupt("return", (orders || []).map(function (order) {
3430
3293
  return _this20.normalizeOrderCollectionsForIngress(order, 'loadOrdersFromSQLite');
3431
3294
  }));
3432
- case 10:
3433
- _context20.prev = 10;
3434
- _context20.t0 = _context20["catch"](3);
3435
- if (!options.throwOnError) {
3436
- _context20.next = 14;
3437
- break;
3438
- }
3439
- throw _context20.t0;
3440
- case 14:
3295
+ case 9:
3296
+ _context20.prev = 9;
3297
+ _context20.t0 = _context20["catch"](2);
3441
3298
  return _context20.abrupt("return", []);
3442
- case 15:
3299
+ case 12:
3443
3300
  case "end":
3444
3301
  return _context20.stop();
3445
3302
  }
3446
- }, _callee20, this, [[3, 10]]);
3303
+ }, _callee20, this, [[2, 9]]);
3447
3304
  }));
3448
3305
  function loadOrdersFromSQLite() {
3449
3306
  return _loadOrdersFromSQLite.apply(this, arguments);
@@ -3883,7 +3740,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3883
3740
  * 用于 SSE 全量拉取与营业日窗口裁剪。
3884
3741
  *
3885
3742
  * @example
3886
- * const { orders, persisted } = await this.replaceOrdersSnapshotInSQLite(orderList, 'refresh')
3743
+ * await this.replaceOrdersSnapshotInSQLite(orderList)
3887
3744
  */
3888
3745
  )
3889
3746
  }, {
@@ -3894,7 +3751,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3894
3751
  var protectedOrdersBeforeRemoteFetch,
3895
3752
  remoteSnapshot,
3896
3753
  mergedSnapshot,
3897
- persisted,
3898
3754
  _args27 = arguments;
3899
3755
  return _regeneratorRuntime().wrap(function _callee27$(_context27) {
3900
3756
  while (1) switch (_context27.prev = _context27.next) {
@@ -3904,12 +3760,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3904
3760
  _context27.next = 3;
3905
3761
  break;
3906
3762
  }
3907
- return _context27.abrupt("return", {
3908
- orders: this.compactOrderListByIdentity(orderList.map(function (order) {
3909
- return _this24.normalizeRemoteSyncedOrder(order);
3910
- }), "".concat(source, ".snapshotNoDb")).list,
3911
- persisted: false
3912
- });
3763
+ return _context27.abrupt("return", this.compactOrderListByIdentity(orderList.map(function (order) {
3764
+ return _this24.normalizeRemoteSyncedOrder(order);
3765
+ }), "".concat(source, ".snapshotNoDb")).list);
3913
3766
  case 3:
3914
3767
  remoteSnapshot = cloneDeep(orderList).map(function (order) {
3915
3768
  return _this24.normalizeOrderCollectionsForIngress(order, "".concat(source, ".remoteIngress"));
@@ -3917,9 +3770,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
3917
3770
  mergedSnapshot = this.compactOrderListByIdentity(remoteSnapshot.map(function (order) {
3918
3771
  return _this24.normalizeRemoteSyncedOrder(order);
3919
3772
  }), "".concat(source, ".remoteSnapshot")).list;
3920
- persisted = false;
3921
- _context27.prev = 6;
3922
- _context27.next = 9;
3773
+ _context27.prev = 5;
3774
+ _context27.next = 8;
3923
3775
  return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
3924
3776
  var existingOrders, protectedLocalOrders, _iterator33, _step33, rawCurrentOrder, currentOrder, protectedIndex, currentNeedsProtection, orderListSnapshot;
3925
3777
  return _regeneratorRuntime().wrap(function _callee26$(_context26) {
@@ -4032,27 +3884,23 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4032
3884
  }
4033
3885
  }, _callee26, null, [[10, 25, 28, 31]]);
4034
3886
  })));
4035
- case 9:
4036
- persisted = true;
4037
- _context27.next = 15;
3887
+ case 8:
3888
+ _context27.next = 13;
4038
3889
  break;
4039
- case 12:
4040
- _context27.prev = 12;
4041
- _context27.t0 = _context27["catch"](6);
3890
+ case 10:
3891
+ _context27.prev = 10;
3892
+ _context27.t0 = _context27["catch"](5);
4042
3893
  this.logError('全量保存订单到 SQLite 失败', {
4043
3894
  error: _context27.t0 instanceof Error ? _context27.t0.message : String(_context27.t0),
4044
3895
  orderList: remoteSnapshot.length
4045
3896
  });
4046
- case 15:
4047
- return _context27.abrupt("return", {
4048
- orders: mergedSnapshot,
4049
- persisted: persisted
4050
- });
4051
- case 16:
3897
+ case 13:
3898
+ return _context27.abrupt("return", mergedSnapshot);
3899
+ case 14:
4052
3900
  case "end":
4053
3901
  return _context27.stop();
4054
3902
  }
4055
- }, _callee27, this, [[6, 12]]);
3903
+ }, _callee27, this, [[5, 10]]);
4056
3904
  }));
4057
3905
  function replaceOrdersSnapshotInSQLite(_x20, _x21) {
4058
3906
  return _replaceOrdersSnapshotInSQLite.apply(this, arguments);
@@ -4094,7 +3942,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4094
3942
  }, _callee28);
4095
3943
  })));
4096
3944
  case 5:
4097
- this.clearOrderSnapshotMarker();
3945
+ this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, '');
4098
3946
  this.emitOrdersChanged([], 'clear');
4099
3947
  case 7:
4100
3948
  case "end":
@@ -25,7 +25,6 @@ export declare class ProductsModule extends BaseModule implements Module {
25
25
  private quotationBridgeLoadedKey?;
26
26
  private quotationBridgeRefreshPromise?;
27
27
  private quotationBridgeRefreshKey?;
28
- private quotationBridgeUpdatedCallback?;
29
28
  private quotationScheduleCache;
30
29
  private quotationScheduleCacheSource;
31
30
  private quotationScheduleCacheLoaded;
@@ -73,7 +72,6 @@ export declare class ProductsModule extends BaseModule implements Module {
73
72
  scheduleModule?: any;
74
73
  channel?: string;
75
74
  customer_id?: number | string;
76
- onQuotationUpdated?: () => void;
77
75
  }): Promise<void>;
78
76
  /**
79
77
  * 刷新桥接器内的报价单列表。
@@ -183,9 +181,7 @@ export declare class ProductsModule extends BaseModule implements Module {
183
181
  /**
184
182
  * 通过 ProductDataSource SSE 加载完整商品列表
185
183
  */
186
- loadProductsByServer(options?: {
187
- trigger?: string;
188
- }): Promise<any>;
184
+ loadProductsByServer(): Promise<any>;
189
185
  /**
190
186
  * 纯请求方法:通过 HTTP 接口获取商品列表(无副作用,不触发事件、不写 IndexDB)
191
187
  * @param params 查询参数
@@ -335,9 +331,7 @@ export declare class ProductsModule extends BaseModule implements Module {
335
331
  * 拿到完整数据后一次性替换 store,清除价格缓存,触发 onProductsSyncCompleted
336
332
  * @returns 刷新后的商品列表
337
333
  */
338
- silentRefresh(options?: {
339
- trigger?: string;
340
- }): Promise<ProductData[]>;
334
+ silentRefresh(): Promise<ProductData[]>;
341
335
  /**
342
336
  * 销毁同步资源(取消 pubsub 订阅、清除定时器)
343
337
  */