@pisell/pisellos 2.1.140 → 2.1.141

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.
@@ -11,10 +11,12 @@ export declare class ScanOrderLoggerModule extends BaseModule implements Module,
11
11
  protected defaultName: string;
12
12
  protected defaultVersion: string;
13
13
  private store;
14
+ private window?;
14
15
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
15
16
  setContext(context: ScanOrderLoggerContext): void;
16
17
  setProvider(provider: ScanOrderLoggerProviderType): void;
17
18
  setProviderConfig(providerConfig: ScanOrderLoggerProviderConfig): void;
19
+ private getCurrentHost;
18
20
  private buildRecord;
19
21
  addLog(params: ScanOrderLogInput): Promise<void>;
20
22
  }
@@ -46,6 +46,7 @@ export var ScanOrderLoggerModule = /*#__PURE__*/function (_BaseModule) {
46
46
  _defineProperty(_assertThisInitialized(_this), "defaultName", 'scanOrderLogger');
47
47
  _defineProperty(_assertThisInitialized(_this), "defaultVersion", '1.0.0');
48
48
  _defineProperty(_assertThisInitialized(_this), "store", void 0);
49
+ _defineProperty(_assertThisInitialized(_this), "window", void 0);
49
50
  return _this;
50
51
  }
51
52
  _createClass(ScanOrderLoggerModule, [{
@@ -64,6 +65,7 @@ export var ScanOrderLoggerModule = /*#__PURE__*/function (_BaseModule) {
64
65
  options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
65
66
  this.core = core;
66
67
  this.store = options.store;
68
+ this.window = core.getPlugin('window') || undefined;
67
69
  provider = ((_options$otherParams = options.otherParams) === null || _options$otherParams === void 0 ? void 0 : _options$otherParams.provider) || 'feishu';
68
70
  providerConfig = ((_options$otherParams2 = options.otherParams) === null || _options$otherParams2 === void 0 ? void 0 : _options$otherParams2.providerConfig) || {};
69
71
  context = ((_options$otherParams3 = options.otherParams) === null || _options$otherParams3 === void 0 ? void 0 : _options$otherParams3.context) || {};
@@ -73,7 +75,7 @@ export var ScanOrderLoggerModule = /*#__PURE__*/function (_BaseModule) {
73
75
  grafana: _objectSpread(_objectSpread({}, defaultProviderConfig.grafana), providerConfig.grafana || {})
74
76
  });
75
77
  this.store.context = context;
76
- case 9:
78
+ case 10:
77
79
  case "end":
78
80
  return _context.stop();
79
81
  }
@@ -102,16 +104,27 @@ export var ScanOrderLoggerModule = /*#__PURE__*/function (_BaseModule) {
102
104
  grafana: _objectSpread(_objectSpread({}, this.store.providerConfig.grafana || {}), providerConfig.grafana || {})
103
105
  });
104
106
  }
107
+ }, {
108
+ key: "getCurrentHost",
109
+ value: function getCurrentHost() {
110
+ var _this$window;
111
+ var host = (_this$window = this.window) === null || _this$window === void 0 || (_this$window = _this$window.location) === null || _this$window === void 0 ? void 0 : _this$window.host;
112
+ if (typeof host === 'string' && host.length > 0) return host;
113
+ return undefined;
114
+ }
105
115
  }, {
106
116
  key: "buildRecord",
107
117
  value: function buildRecord(params) {
118
+ var host = this.getCurrentHost();
108
119
  return {
109
120
  level: params.level || 'info',
110
121
  title: params.title,
111
122
  timestamp: params.timestamp || dayjs().format('YYYY-MM-DD HH:mm:ss'),
112
123
  payload: params.payload || {},
113
124
  extra: params.extra || {},
114
- context: this.store.context || {}
125
+ context: _objectSpread(_objectSpread({}, this.store.context || {}), host ? {
126
+ host: host
127
+ } : {})
115
128
  };
116
129
  }
117
130
  }, {
@@ -310,7 +310,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
310
310
  date: string;
311
311
  status: string;
312
312
  week: string;
313
- weekNum: 0 | 2 | 1 | 4 | 3 | 5 | 6;
313
+ weekNum: 0 | 1 | 4 | 2 | 3 | 5 | 6;
314
314
  }[]>;
315
315
  submitTimeSlot(timeSlots: TimeSliceItem): void;
316
316
  private getScheduleDataByIds;
@@ -5,6 +5,7 @@ import type { UpdateProductInOrderParams } from '../../modules/Order/types';
5
5
  import type { Discount } from '../../modules/Discount/types';
6
6
  import { type CartItemSummary, type PaxInfo, type QuantityCheckResult, type QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
7
7
  import type { StrategyConfig } from '../../model/strategy/type';
8
+ import type { ProductData } from '../../modules/Product/types';
8
9
  export * from './types';
9
10
  interface ScanOrderItemRuleRuntimeConfig {
10
11
  strategyConfigs?: StrategyConfig[];
@@ -41,6 +42,7 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
41
42
  private logMethodStart;
42
43
  private logMethodSuccess;
43
44
  private logMethodError;
45
+ private assertProductListLoaded;
44
46
  addLog(params: ScanOrderAddLogParams): Promise<void>;
45
47
  private normalizeCustomerId;
46
48
  private resolveCustomerIdFromLoginPayload;
@@ -122,7 +124,7 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
122
124
  orderAmount: number;
123
125
  orderItems: any[];
124
126
  }>;
125
- getProductList(): Promise<any>;
127
+ getProductList(): Promise<ProductData[]>;
126
128
  getOtherParams(): Record<string, any>;
127
129
  setOtherParams(params: Record<string, any>, { cover }?: {
128
130
  cover?: boolean;
@@ -192,6 +192,16 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
192
192
  })
193
193
  });
194
194
  }
195
+ }, {
196
+ key: "assertProductListLoaded",
197
+ value: function assertProductListLoaded(method, result) {
198
+ var payload = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
199
+ if (Array.isArray(result)) return result;
200
+ var error = result instanceof Error ? result : new Error('商品列表接口返回异常');
201
+ this.logMethodError(method, error, payload);
202
+ error.__scanOrderLogged = true;
203
+ throw error;
204
+ }
195
205
  }, {
196
206
  key: "addLog",
197
207
  value: function () {
@@ -2509,7 +2519,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
2509
2519
  key: "checkResourceAvailable",
2510
2520
  value: function () {
2511
2521
  var _checkResourceAvailable = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee36(resourceId, hasOrderId) {
2512
- var _this$otherParams$bus, _this$otherParams10, _this$otherParams$cha, _this$otherParams11, _this$otherParams12, _this$otherParams12$g, _occupyDetail$form_re, _occupyDetail$form_re2, _this$otherParams13, _this$store$order5, _this$store$order7, _this$store$order7$ge, _this$otherParams14, businessCode, channel, openDataTarget, openData, dineInConfig, closedBehaviorValue, closedMessage, basicUnavailableMessage, pauseMessage, makeShopClosed, operatingHourIds, outsideOperatingHours, scheduleList, now, tempOrder, reservationLinkIds, pendingRequestEntryPax, pendingRequestPaxMin, pendingRequestPaxMax, reservationProductList, scheduleDate, scheduleDatetime, loaded, occupancyMinutes, paxBounds, occupyDetail, resourceSelectType, resourceState, availabilityInfo, _this$store$order6, _res$data, res, entryPaxNumber, lastOrderInfo, historicalItems;
2522
+ var _this$otherParams$bus, _this$otherParams10, _this$otherParams$cha, _this$otherParams11, _this$otherParams12, _this$otherParams12$g, _occupyDetail$form_re, _occupyDetail$form_re2, _this$otherParams13, _this$store$order5, _this$store$order7, _this$store$order7$ge, _this$otherParams14, businessCode, channel, openDataTarget, openData, dineInConfig, closedBehaviorValue, closedMessage, basicUnavailableMessage, pauseMessage, makeShopClosed, operatingHourIds, outsideOperatingHours, scheduleList, now, tempOrder, reservationLinkIds, pendingRequestEntryPax, pendingRequestPaxMin, pendingRequestPaxMax, reservationProductList, scheduleDate, scheduleDatetime, loaded, occupancyMinutes, paxBounds, error, occupyDetail, resourceSelectType, resourceState, availabilityInfo, _this$store$order6, _res$data, res, entryPaxNumber, lastOrderInfo, historicalItems;
2513
2523
  return _regeneratorRuntime().wrap(function _callee36$(_context36) {
2514
2524
  while (1) switch (_context36.prev = _context36.next) {
2515
2525
  case 0:
@@ -2643,13 +2653,13 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
2643
2653
  }
2644
2654
  } else {
2645
2655
  this.enabledReservationRuleProducts = [];
2646
- void this.addScanOrderLog({
2647
- level: 'error',
2648
- title: '[ScanOrder] enabled_reservation_rules product query failed',
2649
- payload: {
2650
- linkIds: reservationLinkIds,
2651
- error: this.serializeError(loaded)
2652
- }
2656
+ error = loaded instanceof Error ? loaded : new Error('预约规则商品列表接口返回异常');
2657
+ this.logMethodError('loadReservationRuleProducts', error, {
2658
+ resourceId: resourceId,
2659
+ reservationLinkIds: reservationLinkIds,
2660
+ scheduleDate: scheduleDate,
2661
+ scheduleDatetime: scheduleDatetime,
2662
+ cacheId: this.cacheId
2653
2663
  });
2654
2664
  }
2655
2665
  case 46:
@@ -2820,7 +2830,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
2820
2830
  value: function () {
2821
2831
  var _getProductList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee38() {
2822
2832
  var _this$otherParams15;
2823
- var menu_list_ids, _this$store$products, res, formattedRes;
2833
+ var menu_list_ids, res, productList, formattedRes;
2824
2834
  return _regeneratorRuntime().wrap(function _callee38$(_context38) {
2825
2835
  while (1) switch (_context38.prev = _context38.next) {
2826
2836
  case 0:
@@ -2830,30 +2840,45 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
2830
2840
  return Number(n.value);
2831
2841
  })) || [];
2832
2842
  _context38.prev = 2;
2833
- _context38.next = 5;
2834
- return (_this$store$products = this.store.products) === null || _this$store$products === void 0 ? void 0 : _this$store$products.loadProducts({
2843
+ if (this.store.products) {
2844
+ _context38.next = 5;
2845
+ break;
2846
+ }
2847
+ throw new Error('products 模块未初始化');
2848
+ case 5:
2849
+ _context38.next = 7;
2850
+ return this.store.products.loadProducts({
2835
2851
  menu_list_ids: menu_list_ids,
2836
2852
  cacheId: this.cacheId,
2837
2853
  schedule_date: dayjs().format('YYYY-MM-DD'),
2838
2854
  schedule_datetime: dayjs().format('YYYY-MM-DD HH:mm:ss')
2839
2855
  });
2840
- case 5:
2856
+ case 7:
2841
2857
  res = _context38.sent;
2842
- formattedRes = attachItemRuleLimitsToTopLevelProducts(res, this.store.itemRuleQuantityLimits || []);
2858
+ productList = this.assertProductListLoaded('getProductList', res, {
2859
+ menu_list_ids: menu_list_ids,
2860
+ cacheId: this.cacheId
2861
+ });
2862
+ formattedRes = attachItemRuleLimitsToTopLevelProducts(productList, this.store.itemRuleQuantityLimits || []);
2843
2863
  this.logMethodSuccess('getProductList', {
2844
2864
  menuCount: menu_list_ids.length
2845
2865
  });
2846
2866
  return _context38.abrupt("return", formattedRes);
2847
- case 11:
2848
- _context38.prev = 11;
2867
+ case 14:
2868
+ _context38.prev = 14;
2849
2869
  _context38.t0 = _context38["catch"](2);
2850
- this.logMethodError('getProductList', _context38.t0.message);
2870
+ if (!(_context38.t0 !== null && _context38.t0 !== void 0 && _context38.t0.__scanOrderLogged)) {
2871
+ this.logMethodError('getProductList', _context38.t0, {
2872
+ menu_list_ids: menu_list_ids,
2873
+ cacheId: this.cacheId
2874
+ });
2875
+ }
2851
2876
  throw _context38.t0;
2852
- case 15:
2877
+ case 18:
2853
2878
  case "end":
2854
2879
  return _context38.stop();
2855
2880
  }
2856
- }, _callee38, this, [[2, 11]]);
2881
+ }, _callee38, this, [[2, 14]]);
2857
2882
  }));
2858
2883
  function getProductList() {
2859
2884
  return _getProductList.apply(this, arguments);
@@ -11,10 +11,12 @@ export declare class ScanOrderLoggerModule extends BaseModule implements Module,
11
11
  protected defaultName: string;
12
12
  protected defaultVersion: string;
13
13
  private store;
14
+ private window?;
14
15
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
15
16
  setContext(context: ScanOrderLoggerContext): void;
16
17
  setProvider(provider: ScanOrderLoggerProviderType): void;
17
18
  setProviderConfig(providerConfig: ScanOrderLoggerProviderConfig): void;
19
+ private getCurrentHost;
18
20
  private buildRecord;
19
21
  addLog(params: ScanOrderLogInput): Promise<void>;
20
22
  }
@@ -60,6 +60,7 @@ var ScanOrderLoggerModule = class extends import_BaseModule.BaseModule {
60
60
  var _a, _b, _c;
61
61
  this.core = core;
62
62
  this.store = options.store;
63
+ this.window = core.getPlugin("window") || void 0;
63
64
  const provider = ((_a = options.otherParams) == null ? void 0 : _a.provider) || "feishu";
64
65
  const providerConfig = ((_b = options.otherParams) == null ? void 0 : _b.providerConfig) || {};
65
66
  const context = ((_c = options.otherParams) == null ? void 0 : _c.context) || {};
@@ -101,14 +102,25 @@ var ScanOrderLoggerModule = class extends import_BaseModule.BaseModule {
101
102
  }
102
103
  };
103
104
  }
105
+ getCurrentHost() {
106
+ var _a, _b;
107
+ const host = (_b = (_a = this.window) == null ? void 0 : _a.location) == null ? void 0 : _b.host;
108
+ if (typeof host === "string" && host.length > 0)
109
+ return host;
110
+ return void 0;
111
+ }
104
112
  buildRecord(params) {
113
+ const host = this.getCurrentHost();
105
114
  return {
106
115
  level: params.level || "info",
107
116
  title: params.title,
108
117
  timestamp: params.timestamp || (0, import_dayjs.default)().format("YYYY-MM-DD HH:mm:ss"),
109
118
  payload: params.payload || {},
110
119
  extra: params.extra || {},
111
- context: this.store.context || {}
120
+ context: {
121
+ ...this.store.context || {},
122
+ ...host ? { host } : {}
123
+ }
112
124
  };
113
125
  }
114
126
  async addLog(params) {
@@ -310,7 +310,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
310
310
  date: string;
311
311
  status: string;
312
312
  week: string;
313
- weekNum: 0 | 2 | 1 | 4 | 3 | 5 | 6;
313
+ weekNum: 0 | 1 | 4 | 2 | 3 | 5 | 6;
314
314
  }[]>;
315
315
  submitTimeSlot(timeSlots: TimeSliceItem): void;
316
316
  private getScheduleDataByIds;
@@ -5,6 +5,7 @@ import type { UpdateProductInOrderParams } from '../../modules/Order/types';
5
5
  import type { Discount } from '../../modules/Discount/types';
6
6
  import { type CartItemSummary, type PaxInfo, type QuantityCheckResult, type QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
7
7
  import type { StrategyConfig } from '../../model/strategy/type';
8
+ import type { ProductData } from '../../modules/Product/types';
8
9
  export * from './types';
9
10
  interface ScanOrderItemRuleRuntimeConfig {
10
11
  strategyConfigs?: StrategyConfig[];
@@ -41,6 +42,7 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
41
42
  private logMethodStart;
42
43
  private logMethodSuccess;
43
44
  private logMethodError;
45
+ private assertProductListLoaded;
44
46
  addLog(params: ScanOrderAddLogParams): Promise<void>;
45
47
  private normalizeCustomerId;
46
48
  private resolveCustomerIdFromLoginPayload;
@@ -122,7 +124,7 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
122
124
  orderAmount: number;
123
125
  orderItems: any[];
124
126
  }>;
125
- getProductList(): Promise<any>;
127
+ getProductList(): Promise<ProductData[]>;
126
128
  getOtherParams(): Record<string, any>;
127
129
  setOtherParams(params: Record<string, any>, { cover }?: {
128
130
  cover?: boolean;
@@ -155,6 +155,14 @@ var _ScanOrderImpl = class extends import_BaseModule.BaseModule {
155
155
  }
156
156
  });
157
157
  }
158
+ assertProductListLoaded(method, result, payload = {}) {
159
+ if (Array.isArray(result))
160
+ return result;
161
+ const error = result instanceof Error ? result : new Error("商品列表接口返回异常");
162
+ this.logMethodError(method, error, payload);
163
+ error.__scanOrderLogged = true;
164
+ throw error;
165
+ }
158
166
  async addLog(params) {
159
167
  await this.addScanOrderLog({
160
168
  ...params,
@@ -1559,13 +1567,13 @@ var _ScanOrderImpl = class extends import_BaseModule.BaseModule {
1559
1567
  }
1560
1568
  } else {
1561
1569
  this.enabledReservationRuleProducts = [];
1562
- void this.addScanOrderLog({
1563
- level: "error",
1564
- title: "[ScanOrder] enabled_reservation_rules product query failed",
1565
- payload: {
1566
- linkIds: reservationLinkIds,
1567
- error: this.serializeError(loaded)
1568
- }
1570
+ const error = loaded instanceof Error ? loaded : new Error("预约规则商品列表接口返回异常");
1571
+ this.logMethodError("loadReservationRuleProducts", error, {
1572
+ resourceId,
1573
+ reservationLinkIds,
1574
+ scheduleDate,
1575
+ scheduleDatetime,
1576
+ cacheId: this.cacheId
1569
1577
  });
1570
1578
  }
1571
1579
  }
@@ -1681,18 +1689,24 @@ var _ScanOrderImpl = class extends import_BaseModule.BaseModule {
1681
1689
  }
1682
1690
  // 获取商品列表
1683
1691
  async getProductList() {
1684
- var _a, _b, _c;
1692
+ var _a, _b;
1685
1693
  this.logMethodStart("getProductList");
1686
1694
  const menu_list_ids = ((_b = (_a = this.otherParams) == null ? void 0 : _a.dineInConfig) == null ? void 0 : _b["menu.associated_menus"].map((n) => Number(n.value))) || [];
1687
1695
  try {
1688
- const res = await ((_c = this.store.products) == null ? void 0 : _c.loadProducts({
1696
+ if (!this.store.products)
1697
+ throw new Error("products 模块未初始化");
1698
+ const res = await this.store.products.loadProducts({
1689
1699
  menu_list_ids,
1690
1700
  cacheId: this.cacheId,
1691
1701
  schedule_date: (0, import_dayjs.default)().format("YYYY-MM-DD"),
1692
1702
  schedule_datetime: (0, import_dayjs.default)().format("YYYY-MM-DD HH:mm:ss")
1693
- }));
1703
+ });
1704
+ const productList = this.assertProductListLoaded("getProductList", res, {
1705
+ menu_list_ids,
1706
+ cacheId: this.cacheId
1707
+ });
1694
1708
  const formattedRes = (0, import_utils.attachItemRuleLimitsToTopLevelProducts)(
1695
- res,
1709
+ productList,
1696
1710
  this.store.itemRuleQuantityLimits || []
1697
1711
  );
1698
1712
  this.logMethodSuccess("getProductList", {
@@ -1700,7 +1714,12 @@ var _ScanOrderImpl = class extends import_BaseModule.BaseModule {
1700
1714
  });
1701
1715
  return formattedRes;
1702
1716
  } catch (error) {
1703
- this.logMethodError("getProductList", error.message);
1717
+ if (!(error == null ? void 0 : error.__scanOrderLogged)) {
1718
+ this.logMethodError("getProductList", error, {
1719
+ menu_list_ids,
1720
+ cacheId: this.cacheId
1721
+ });
1722
+ }
1704
1723
  throw error;
1705
1724
  }
1706
1725
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "2.1.140",
4
+ "version": "2.1.141",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",