@pisell/pisellos 2.1.138 → 2.1.140
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/ScanOrderLogger/providers/feishu.js +45 -27
- package/dist/modules/ScanOrderLogger/types.d.ts +1 -0
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- package/dist/solution/ScanOrder/index.js +2 -1
- package/dist/solution/VenueBooking/index.js +44 -30
- package/lib/modules/ScanOrderLogger/providers/feishu.js +15 -6
- package/lib/modules/ScanOrderLogger/types.d.ts +1 -0
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- package/lib/solution/ScanOrder/index.js +2 -1
- package/lib/solution/VenueBooking/index.js +12 -6
- package/package.json +1 -1
|
@@ -142,62 +142,80 @@ function _flushQueue() {
|
|
|
142
142
|
export var feishuLoggerProvider = {
|
|
143
143
|
send: function send(payload) {
|
|
144
144
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
145
|
-
var _payload$providerConf, _payload$providerConf2, _payload$providerConf3;
|
|
146
|
-
var webhook, throttleMs;
|
|
145
|
+
var _payload$providerConf, _payload$providerConf2, _payload$providerConf3, _payload$providerConf4;
|
|
146
|
+
var webhook, errorHook, throttleMs;
|
|
147
147
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
148
148
|
while (1) switch (_context.prev = _context.next) {
|
|
149
149
|
case 0:
|
|
150
150
|
cachedProviderConfig = payload.providerConfig;
|
|
151
151
|
webhook = (_payload$providerConf = payload.providerConfig) === null || _payload$providerConf === void 0 || (_payload$providerConf = _payload$providerConf.feishu) === null || _payload$providerConf === void 0 ? void 0 : _payload$providerConf.webhook;
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
errorHook = (_payload$providerConf2 = payload.providerConfig) === null || _payload$providerConf2 === void 0 || (_payload$providerConf2 = _payload$providerConf2.feishu) === null || _payload$providerConf2 === void 0 ? void 0 : _payload$providerConf2.errorHook;
|
|
153
|
+
if (!(typeof fetch !== 'function')) {
|
|
154
|
+
_context.next = 6;
|
|
154
155
|
break;
|
|
155
156
|
}
|
|
156
|
-
console.warn('[ScanOrderLogger] Feishu
|
|
157
|
+
console.warn('[ScanOrderLogger] 当前环境不支持 fetch,跳过 Feishu 日志上报');
|
|
157
158
|
return _context.abrupt("return");
|
|
158
|
-
case
|
|
159
|
-
if (isWebhookUsable(
|
|
160
|
-
_context.next =
|
|
159
|
+
case 6:
|
|
160
|
+
if (!(payload.record.level === 'error' && isWebhookUsable(errorHook))) {
|
|
161
|
+
_context.next = 16;
|
|
161
162
|
break;
|
|
162
163
|
}
|
|
164
|
+
_context.prev = 7;
|
|
165
|
+
_context.next = 10;
|
|
166
|
+
return postToFeishu(errorHook, buildFeishuBody([payload.record]));
|
|
167
|
+
case 10:
|
|
168
|
+
_context.next = 15;
|
|
169
|
+
break;
|
|
170
|
+
case 12:
|
|
171
|
+
_context.prev = 12;
|
|
172
|
+
_context.t0 = _context["catch"](7);
|
|
173
|
+
console.warn('[ScanOrderLogger] Feishu errorHook 上报失败', _context.t0);
|
|
174
|
+
case 15:
|
|
163
175
|
return _context.abrupt("return");
|
|
164
|
-
case
|
|
165
|
-
if (
|
|
166
|
-
_context.next =
|
|
176
|
+
case 16:
|
|
177
|
+
if (webhook) {
|
|
178
|
+
_context.next = 19;
|
|
167
179
|
break;
|
|
168
180
|
}
|
|
169
|
-
console.warn('[ScanOrderLogger]
|
|
181
|
+
console.warn('[ScanOrderLogger] Feishu webhook 未配置,跳过日志上报');
|
|
170
182
|
return _context.abrupt("return");
|
|
171
|
-
case
|
|
172
|
-
|
|
173
|
-
if (!(throttleMs <= 0)) {
|
|
183
|
+
case 19:
|
|
184
|
+
if (isWebhookUsable(webhook)) {
|
|
174
185
|
_context.next = 21;
|
|
175
186
|
break;
|
|
176
187
|
}
|
|
177
|
-
_context.
|
|
178
|
-
|
|
188
|
+
return _context.abrupt("return");
|
|
189
|
+
case 21:
|
|
190
|
+
throttleMs = (_payload$providerConf3 = (_payload$providerConf4 = payload.providerConfig) === null || _payload$providerConf4 === void 0 || (_payload$providerConf4 = _payload$providerConf4.feishu) === null || _payload$providerConf4 === void 0 ? void 0 : _payload$providerConf4.throttleMs) !== null && _payload$providerConf3 !== void 0 ? _payload$providerConf3 : DEFAULT_THROTTLE_MS;
|
|
191
|
+
if (!(throttleMs <= 0)) {
|
|
192
|
+
_context.next = 32;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
_context.prev = 23;
|
|
196
|
+
_context.next = 26;
|
|
179
197
|
return postToFeishu(webhook, buildFeishuBody([payload.record]));
|
|
180
|
-
case
|
|
181
|
-
_context.next =
|
|
198
|
+
case 26:
|
|
199
|
+
_context.next = 31;
|
|
182
200
|
break;
|
|
183
|
-
case
|
|
184
|
-
_context.prev =
|
|
185
|
-
_context.
|
|
186
|
-
console.warn('[ScanOrderLogger] Feishu 日志上报失败', _context.
|
|
187
|
-
case
|
|
201
|
+
case 28:
|
|
202
|
+
_context.prev = 28;
|
|
203
|
+
_context.t1 = _context["catch"](23);
|
|
204
|
+
console.warn('[ScanOrderLogger] Feishu 日志上报失败', _context.t1);
|
|
205
|
+
case 31:
|
|
188
206
|
return _context.abrupt("return");
|
|
189
|
-
case
|
|
207
|
+
case 32:
|
|
190
208
|
pendingQueue.push(payload.record);
|
|
191
209
|
if (!flushTimer) {
|
|
192
210
|
flushTimer = setTimeout(function () {
|
|
193
211
|
void flushQueue();
|
|
194
212
|
}, throttleMs);
|
|
195
213
|
}
|
|
196
|
-
case
|
|
214
|
+
case 34:
|
|
197
215
|
case "end":
|
|
198
216
|
return _context.stop();
|
|
199
217
|
}
|
|
200
|
-
}, _callee, null, [[12,
|
|
218
|
+
}, _callee, null, [[7, 12], [23, 28]]);
|
|
201
219
|
}))();
|
|
202
220
|
}
|
|
203
221
|
};
|
|
@@ -2,6 +2,7 @@ export type ScanOrderLogLevel = 'info' | 'warning' | 'error' | 'debug';
|
|
|
2
2
|
export type ScanOrderLoggerProviderType = 'feishu' | 'grafana';
|
|
3
3
|
export interface ScanOrderLoggerProviderFeishuConfig {
|
|
4
4
|
webhook?: string;
|
|
5
|
+
errorHook?: string;
|
|
5
6
|
/**
|
|
6
7
|
* 节流窗口毫秒数,默认 3000ms
|
|
7
8
|
* - >0:首条日志进入队列并启动定时器,窗口结束后合并成一条 Feishu post 统一发送
|
|
@@ -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 |
|
|
313
|
+
weekNum: 0 | 2 | 1 | 4 | 3 | 5 | 6;
|
|
314
314
|
}[]>;
|
|
315
315
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
316
316
|
private getScheduleDataByIds;
|
|
@@ -357,7 +357,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
357
357
|
};
|
|
358
358
|
setOtherData(key: string, value: any): void;
|
|
359
359
|
getOtherData(key: string): any;
|
|
360
|
-
getProductTypeById(id: number): Promise<"
|
|
360
|
+
getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
|
|
361
361
|
/**
|
|
362
362
|
* 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
|
|
363
363
|
*
|
|
@@ -497,7 +497,8 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
497
497
|
var loggerProvider = ((_this4$otherParams = _this4.otherParams) === null || _this4$otherParams === void 0 ? void 0 : _this4$otherParams.scanOrderLoggerProvider) || 'feishu';
|
|
498
498
|
var loggerConfig = ((_this4$otherParams2 = _this4.otherParams) === null || _this4$otherParams2 === void 0 ? void 0 : _this4$otherParams2.scanOrderLoggerConfig) || {
|
|
499
499
|
feishu: {
|
|
500
|
-
webhook: 'https://open.feishu.cn/open-apis/bot/v2/hook/216b3fe6-af98-424e-8706-f0471241a7ed'
|
|
500
|
+
webhook: 'https://open.feishu.cn/open-apis/bot/v2/hook/216b3fe6-af98-424e-8706-f0471241a7ed',
|
|
501
|
+
errorHook: 'https://open.feishu.cn/open-apis/bot/v2/hook/015b7c2a-dd3c-4c30-9898-ef0f5253111f'
|
|
501
502
|
}
|
|
502
503
|
};
|
|
503
504
|
_this4.core.registerModule(targetModule, {
|
|
@@ -503,7 +503,10 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
503
503
|
} : {};
|
|
504
504
|
var loggerProvider = ((_this4$otherParams = _this4.otherParams) === null || _this4$otherParams === void 0 ? void 0 : _this4$otherParams.loggerProvider) || 'feishu';
|
|
505
505
|
var loggerConfig = ((_this4$otherParams2 = _this4.otherParams) === null || _this4$otherParams2 === void 0 ? void 0 : _this4$otherParams2.loggerConfig) || {
|
|
506
|
-
feishu: {
|
|
506
|
+
feishu: {
|
|
507
|
+
webhook: 'https://open.feishu.cn/open-apis/bot/v2/hook/8f069b14-9d39-4728-8f78-b56f393bfde8',
|
|
508
|
+
errorHook: 'https://open.feishu.cn/open-apis/bot/v2/hook/bdefae5e-f233-4705-8688-946887d9543d'
|
|
509
|
+
}
|
|
507
510
|
};
|
|
508
511
|
_this4.core.registerModule(targetModule, {
|
|
509
512
|
initialState: initialState,
|
|
@@ -828,24 +831,28 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
828
831
|
}
|
|
829
832
|
throw new Error('addonProducts 模块未初始化');
|
|
830
833
|
case 6:
|
|
834
|
+
_context11.next = 8;
|
|
835
|
+
return this.loadOpenDataConfig();
|
|
836
|
+
case 8:
|
|
831
837
|
associatedMenus = ((_this$otherParams7 = this.otherParams) === null || _this$otherParams7 === void 0 || (_this$otherParams7 = _this$otherParams7.openData) === null || _this$otherParams7 === void 0 ? void 0 : _this$otherParams7['menu.associated_menus']) || [];
|
|
832
838
|
if (associatedMenus.length) {
|
|
833
|
-
_context11.next =
|
|
839
|
+
_context11.next = 12;
|
|
834
840
|
break;
|
|
835
841
|
}
|
|
842
|
+
this.logMethodError('loadAllProducts', new Error('未获取到餐牌配置(menu.associated_menus),请检查 OpenData 配置'));
|
|
836
843
|
throw new Error('未获取到餐牌配置(menu.associated_menus),请检查 OpenData 配置');
|
|
837
|
-
case
|
|
844
|
+
case 12:
|
|
838
845
|
menuListIds = associatedMenus.map(function (n) {
|
|
839
846
|
return Number(n.value);
|
|
840
847
|
});
|
|
841
|
-
_context11.next =
|
|
848
|
+
_context11.next = 15;
|
|
842
849
|
return this.store.venueProducts.loadProducts({
|
|
843
850
|
menu_list_ids: menuListIds,
|
|
844
851
|
cacheId: this.cacheId,
|
|
845
852
|
schedule_date: dayjs().format('YYYY-MM-DD'),
|
|
846
853
|
schedule_datetime: dayjs().format('YYYY-MM-DD HH:mm:ss')
|
|
847
854
|
});
|
|
848
|
-
case
|
|
855
|
+
case 15:
|
|
849
856
|
allProducts = _context11.sent;
|
|
850
857
|
list = Array.isArray(allProducts) ? allProducts : [];
|
|
851
858
|
venueList = list.filter(function (p) {
|
|
@@ -873,16 +880,16 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
873
880
|
venueProducts: venueList,
|
|
874
881
|
addonProducts: addonList
|
|
875
882
|
});
|
|
876
|
-
case
|
|
877
|
-
_context11.prev =
|
|
883
|
+
case 28:
|
|
884
|
+
_context11.prev = 28;
|
|
878
885
|
_context11.t0 = _context11["catch"](1);
|
|
879
886
|
this.logMethodError('loadAllProducts', _context11.t0);
|
|
880
887
|
throw _context11.t0;
|
|
881
|
-
case
|
|
888
|
+
case 32:
|
|
882
889
|
case "end":
|
|
883
890
|
return _context11.stop();
|
|
884
891
|
}
|
|
885
|
-
}, _callee11, this, [[1,
|
|
892
|
+
}, _callee11, this, [[1, 28]]);
|
|
886
893
|
}));
|
|
887
894
|
function _doLoadAllProducts() {
|
|
888
895
|
return _doLoadAllProducts2.apply(this, arguments);
|
|
@@ -2593,8 +2600,7 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2593
2600
|
key: "loadOpenDataConfig",
|
|
2594
2601
|
value: function () {
|
|
2595
2602
|
var _loadOpenDataConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29() {
|
|
2596
|
-
var
|
|
2597
|
-
var lastFetchedAt, cachedData;
|
|
2603
|
+
var lastFetchedAt, cachedData, openDataConfig;
|
|
2598
2604
|
return _regeneratorRuntime().wrap(function _callee29$(_context29) {
|
|
2599
2605
|
while (1) switch (_context29.prev = _context29.next) {
|
|
2600
2606
|
case 0:
|
|
@@ -2614,27 +2620,35 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2614
2620
|
return _context29.abrupt("return", cachedData);
|
|
2615
2621
|
case 7:
|
|
2616
2622
|
if (!this.loadOpenDataConfigInFlight) {
|
|
2617
|
-
_context29.next =
|
|
2623
|
+
_context29.next = 11;
|
|
2618
2624
|
break;
|
|
2619
2625
|
}
|
|
2620
|
-
|
|
2621
|
-
|
|
2626
|
+
_context29.next = 10;
|
|
2627
|
+
return this.loadOpenDataConfigInFlight;
|
|
2628
|
+
case 10:
|
|
2629
|
+
return _context29.abrupt("return", _context29.sent);
|
|
2630
|
+
case 11:
|
|
2622
2631
|
this.loadOpenDataConfigInFlight = this.store.openData.fetchOpenData({
|
|
2623
2632
|
scope: 'board',
|
|
2624
2633
|
target: 'venue_booking+online_store',
|
|
2625
2634
|
section_code: [].concat(OPEN_DATA_SECTION_CODES)
|
|
2626
|
-
}).then(function (openDataConfig) {
|
|
2627
|
-
_this11.otherParams.openData = openDataConfig;
|
|
2628
|
-
return openDataConfig;
|
|
2629
|
-
}).finally(function () {
|
|
2630
|
-
_this11.loadOpenDataConfigInFlight = null;
|
|
2631
2635
|
});
|
|
2632
|
-
|
|
2633
|
-
|
|
2636
|
+
_context29.prev = 12;
|
|
2637
|
+
_context29.next = 15;
|
|
2638
|
+
return this.loadOpenDataConfigInFlight;
|
|
2639
|
+
case 15:
|
|
2640
|
+
openDataConfig = _context29.sent;
|
|
2641
|
+
this.otherParams.openData = openDataConfig;
|
|
2642
|
+
return _context29.abrupt("return", openDataConfig);
|
|
2643
|
+
case 18:
|
|
2644
|
+
_context29.prev = 18;
|
|
2645
|
+
this.loadOpenDataConfigInFlight = null;
|
|
2646
|
+
return _context29.finish(18);
|
|
2647
|
+
case 21:
|
|
2634
2648
|
case "end":
|
|
2635
2649
|
return _context29.stop();
|
|
2636
2650
|
}
|
|
2637
|
-
}, _callee29, this);
|
|
2651
|
+
}, _callee29, this, [[12,, 18, 21]]);
|
|
2638
2652
|
}));
|
|
2639
2653
|
function loadOpenDataConfig() {
|
|
2640
2654
|
return _loadOpenDataConfig.apply(this, arguments);
|
|
@@ -2814,7 +2828,7 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2814
2828
|
key: "ensureItemRuleConfigsLoaded",
|
|
2815
2829
|
value: function () {
|
|
2816
2830
|
var _ensureItemRuleConfigsLoaded = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {
|
|
2817
|
-
var
|
|
2831
|
+
var _this11 = this;
|
|
2818
2832
|
return _regeneratorRuntime().wrap(function _callee34$(_context34) {
|
|
2819
2833
|
while (1) switch (_context34.prev = _context34.next) {
|
|
2820
2834
|
case 0:
|
|
@@ -2835,19 +2849,19 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2835
2849
|
return _regeneratorRuntime().wrap(function _callee33$(_context33) {
|
|
2836
2850
|
while (1) switch (_context33.prev = _context33.next) {
|
|
2837
2851
|
case 0:
|
|
2838
|
-
runtimeConfig =
|
|
2852
|
+
runtimeConfig = _this11.getItemRuleRuntimeConfig();
|
|
2839
2853
|
staticConfigs = normalizeItemRuleStrategies(runtimeConfig.strategyConfigs);
|
|
2840
2854
|
if (!(staticConfigs.length > 0)) {
|
|
2841
2855
|
_context33.next = 6;
|
|
2842
2856
|
break;
|
|
2843
2857
|
}
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
return _context33.abrupt("return",
|
|
2858
|
+
_this11.itemRuleConfigs = staticConfigs;
|
|
2859
|
+
_this11.itemRuleEvaluator.setStrategyConfigs(staticConfigs);
|
|
2860
|
+
return _context33.abrupt("return", _this11.itemRuleConfigs);
|
|
2847
2861
|
case 6:
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
return _context33.abrupt("return",
|
|
2862
|
+
_this11.itemRuleConfigs = [];
|
|
2863
|
+
_this11.itemRuleEvaluator.setStrategyConfigs([]);
|
|
2864
|
+
return _context33.abrupt("return", _this11.itemRuleConfigs);
|
|
2851
2865
|
case 9:
|
|
2852
2866
|
case "end":
|
|
2853
2867
|
return _context33.stop();
|
|
@@ -112,20 +112,29 @@ async function flushQueue() {
|
|
|
112
112
|
}
|
|
113
113
|
var feishuLoggerProvider = {
|
|
114
114
|
async send(payload) {
|
|
115
|
-
var _a, _b, _c, _d;
|
|
115
|
+
var _a, _b, _c, _d, _e, _f;
|
|
116
116
|
cachedProviderConfig = payload.providerConfig;
|
|
117
117
|
const webhook = (_b = (_a = payload.providerConfig) == null ? void 0 : _a.feishu) == null ? void 0 : _b.webhook;
|
|
118
|
+
const errorHook = (_d = (_c = payload.providerConfig) == null ? void 0 : _c.feishu) == null ? void 0 : _d.errorHook;
|
|
119
|
+
if (typeof fetch !== "function") {
|
|
120
|
+
console.warn("[ScanOrderLogger] 当前环境不支持 fetch,跳过 Feishu 日志上报");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (payload.record.level === "error" && isWebhookUsable(errorHook)) {
|
|
124
|
+
try {
|
|
125
|
+
await postToFeishu(errorHook, buildFeishuBody([payload.record]));
|
|
126
|
+
} catch (error) {
|
|
127
|
+
console.warn("[ScanOrderLogger] Feishu errorHook 上报失败", error);
|
|
128
|
+
}
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
118
131
|
if (!webhook) {
|
|
119
132
|
console.warn("[ScanOrderLogger] Feishu webhook 未配置,跳过日志上报");
|
|
120
133
|
return;
|
|
121
134
|
}
|
|
122
135
|
if (!isWebhookUsable(webhook))
|
|
123
136
|
return;
|
|
124
|
-
|
|
125
|
-
console.warn("[ScanOrderLogger] 当前环境不支持 fetch,跳过 Feishu 日志上报");
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
const throttleMs = ((_d = (_c = payload.providerConfig) == null ? void 0 : _c.feishu) == null ? void 0 : _d.throttleMs) ?? DEFAULT_THROTTLE_MS;
|
|
137
|
+
const throttleMs = ((_f = (_e = payload.providerConfig) == null ? void 0 : _e.feishu) == null ? void 0 : _f.throttleMs) ?? DEFAULT_THROTTLE_MS;
|
|
129
138
|
if (throttleMs <= 0) {
|
|
130
139
|
try {
|
|
131
140
|
await postToFeishu(webhook, buildFeishuBody([payload.record]));
|
|
@@ -2,6 +2,7 @@ export type ScanOrderLogLevel = 'info' | 'warning' | 'error' | 'debug';
|
|
|
2
2
|
export type ScanOrderLoggerProviderType = 'feishu' | 'grafana';
|
|
3
3
|
export interface ScanOrderLoggerProviderFeishuConfig {
|
|
4
4
|
webhook?: string;
|
|
5
|
+
errorHook?: string;
|
|
5
6
|
/**
|
|
6
7
|
* 节流窗口毫秒数,默认 3000ms
|
|
7
8
|
* - >0:首条日志进入队列并启动定时器,窗口结束后合并成一条 Feishu post 统一发送
|
|
@@ -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 |
|
|
313
|
+
weekNum: 0 | 2 | 1 | 4 | 3 | 5 | 6;
|
|
314
314
|
}[]>;
|
|
315
315
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
316
316
|
private getScheduleDataByIds;
|
|
@@ -357,7 +357,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
357
357
|
};
|
|
358
358
|
setOtherData(key: string, value: any): void;
|
|
359
359
|
getOtherData(key: string): any;
|
|
360
|
-
getProductTypeById(id: number): Promise<"
|
|
360
|
+
getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
|
|
361
361
|
/**
|
|
362
362
|
* 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
|
|
363
363
|
*
|
|
@@ -324,7 +324,8 @@ var _ScanOrderImpl = class extends import_BaseModule.BaseModule {
|
|
|
324
324
|
const loggerProvider = ((_c2 = this.otherParams) == null ? void 0 : _c2.scanOrderLoggerProvider) || "feishu";
|
|
325
325
|
const loggerConfig = ((_d2 = this.otherParams) == null ? void 0 : _d2.scanOrderLoggerConfig) || {
|
|
326
326
|
feishu: {
|
|
327
|
-
webhook: "https://open.feishu.cn/open-apis/bot/v2/hook/216b3fe6-af98-424e-8706-f0471241a7ed"
|
|
327
|
+
webhook: "https://open.feishu.cn/open-apis/bot/v2/hook/216b3fe6-af98-424e-8706-f0471241a7ed",
|
|
328
|
+
errorHook: "https://open.feishu.cn/open-apis/bot/v2/hook/015b7c2a-dd3c-4c30-9898-ef0f5253111f"
|
|
328
329
|
}
|
|
329
330
|
};
|
|
330
331
|
this.core.registerModule(targetModule, {
|
|
@@ -345,7 +345,10 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
|
|
|
345
345
|
} : {};
|
|
346
346
|
const loggerProvider = ((_c2 = this.otherParams) == null ? void 0 : _c2.loggerProvider) || "feishu";
|
|
347
347
|
const loggerConfig = ((_d2 = this.otherParams) == null ? void 0 : _d2.loggerConfig) || {
|
|
348
|
-
feishu: {
|
|
348
|
+
feishu: {
|
|
349
|
+
webhook: "https://open.feishu.cn/open-apis/bot/v2/hook/8f069b14-9d39-4728-8f78-b56f393bfde8",
|
|
350
|
+
errorHook: "https://open.feishu.cn/open-apis/bot/v2/hook/bdefae5e-f233-4705-8688-946887d9543d"
|
|
351
|
+
}
|
|
349
352
|
};
|
|
350
353
|
this.core.registerModule(targetModule, {
|
|
351
354
|
initialState,
|
|
@@ -523,8 +526,10 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
|
|
|
523
526
|
throw new Error("venueProducts 模块未初始化");
|
|
524
527
|
if (!this.store.addonProducts)
|
|
525
528
|
throw new Error("addonProducts 模块未初始化");
|
|
529
|
+
await this.loadOpenDataConfig();
|
|
526
530
|
const associatedMenus = ((_b = (_a = this.otherParams) == null ? void 0 : _a.openData) == null ? void 0 : _b["menu.associated_menus"]) || [];
|
|
527
531
|
if (!associatedMenus.length) {
|
|
532
|
+
this.logMethodError("loadAllProducts", new Error("未获取到餐牌配置(menu.associated_menus),请检查 OpenData 配置"));
|
|
528
533
|
throw new Error("未获取到餐牌配置(menu.associated_menus),请检查 OpenData 配置");
|
|
529
534
|
}
|
|
530
535
|
const menuListIds = associatedMenus.map((n) => Number(n.value));
|
|
@@ -1529,18 +1534,19 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
|
|
|
1529
1534
|
return cachedData;
|
|
1530
1535
|
}
|
|
1531
1536
|
if (this.loadOpenDataConfigInFlight)
|
|
1532
|
-
return this.loadOpenDataConfigInFlight;
|
|
1537
|
+
return await this.loadOpenDataConfigInFlight;
|
|
1533
1538
|
this.loadOpenDataConfigInFlight = this.store.openData.fetchOpenData({
|
|
1534
1539
|
scope: "board",
|
|
1535
1540
|
target: "venue_booking+online_store",
|
|
1536
1541
|
section_code: [...OPEN_DATA_SECTION_CODES]
|
|
1537
|
-
})
|
|
1542
|
+
});
|
|
1543
|
+
try {
|
|
1544
|
+
const openDataConfig = await this.loadOpenDataConfigInFlight;
|
|
1538
1545
|
this.otherParams.openData = openDataConfig;
|
|
1539
1546
|
return openDataConfig;
|
|
1540
|
-
}
|
|
1547
|
+
} finally {
|
|
1541
1548
|
this.loadOpenDataConfigInFlight = null;
|
|
1542
|
-
}
|
|
1543
|
-
return this.loadOpenDataConfigInFlight;
|
|
1549
|
+
}
|
|
1544
1550
|
}
|
|
1545
1551
|
async loadRuntimeConfigs() {
|
|
1546
1552
|
await this.loadOpenDataConfig();
|