@pisell/pisellos 0.0.567 → 0.0.568
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.js +6 -9
- package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +0 -3
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +1 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +14 -41
- package/dist/modules/Payment/index.js +142 -270
- package/dist/modules/Payment/walletpass.js +4 -5
- package/dist/modules/Rules/index.js +0 -7
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +88 -121
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/products/index.js +29 -49
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +32 -40
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +5 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -246
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.d.ts +5 -0
- package/dist/solution/VenueBooking/index.js +364 -327
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +130 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +92 -53
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
- package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
- package/lib/model/strategy/adapter/promotion/examples.js +139 -159
- package/lib/model/strategy/adapter/promotion/index.js +1 -49
- package/lib/model/strategy/adapter/promotion/type.js +199 -35
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +652 -402
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +22 -45
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +306 -241
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +72 -78
- package/lib/modules/Cart/utils/changePrice.js +26 -62
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +216 -153
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +117 -113
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +63 -74
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +332 -320
- package/lib/modules/Order/types.js +24 -33
- package/lib/modules/Order/utils.js +350 -284
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +566 -432
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +216 -107
- package/lib/modules/Payment/utils.js +50 -47
- package/lib/modules/Payment/walletpass.js +221 -203
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +111 -110
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +60 -82
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/Rules/index.js +1172 -872
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +59 -68
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +176 -193
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -167
- package/lib/modules/Schedule/index.js +97 -107
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -70
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +782 -429
- package/lib/modules/index.js +212 -57
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +882 -623
- package/lib/server/modules/index.js +85 -59
- package/lib/server/modules/menu/index.js +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +195 -231
- package/lib/server/modules/order/types.js +107 -32
- package/lib/server/modules/order/utils/filterBookings.js +174 -140
- package/lib/server/modules/order/utils/filterOrders.js +89 -60
- package/lib/server/modules/products/index.js +430 -335
- package/lib/server/modules/products/types.js +41 -34
- package/lib/server/modules/quotation/index.js +76 -77
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +216 -187
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +134 -119
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1530 -1343
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +147 -122
- package/lib/solution/BookingTicket/types.js +38 -64
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
- package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +227 -158
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +218 -200
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +803 -840
- package/lib/solution/ScanOrder/types.js +34 -34
- package/lib/solution/ScanOrder/utils.js +372 -331
- package/lib/solution/ShopDiscount/index.js +230 -236
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +309 -172
- package/lib/solution/VenueBooking/index.d.ts +5 -0
- package/lib/solution/VenueBooking/index.js +886 -929
- package/lib/solution/VenueBooking/types.js +20 -40
- package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
- package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +102 -37
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,84 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(cloudSearch_exports, {
|
|
22
|
-
searchProduct: () => searchProduct,
|
|
23
|
-
searchWallet: () => searchWallet,
|
|
24
|
-
searchWalletPass: () => searchWalletPass
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
25
5
|
});
|
|
26
|
-
|
|
27
|
-
|
|
6
|
+
exports.searchWalletPass = exports.searchWallet = exports.searchProduct = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* 搜索通用识别码
|
|
9
|
+
*/
|
|
10
|
+
const searchWalletPass = async (request, code) => {
|
|
28
11
|
const params = {
|
|
29
12
|
code,
|
|
30
13
|
translate_flag: 1,
|
|
31
14
|
// 翻译识别码名称 0:不翻译 1:翻译
|
|
32
15
|
relation_product: 1,
|
|
33
16
|
// 组装关联商品: 0不处理 1处理
|
|
34
|
-
with: [
|
|
35
|
-
tags: [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"appointment_ticket"
|
|
49
|
-
// 预约类门票
|
|
17
|
+
with: ['customer'],
|
|
18
|
+
tags: ['point_card',
|
|
19
|
+
// 积分卡
|
|
20
|
+
'gift_card',
|
|
21
|
+
// 充值卡
|
|
22
|
+
'product_voucher',
|
|
23
|
+
// 代金券
|
|
24
|
+
'product_discount_card',
|
|
25
|
+
// 折扣卡
|
|
26
|
+
'good_pass',
|
|
27
|
+
// 商品券
|
|
28
|
+
'session_ticket',
|
|
29
|
+
// 场次票
|
|
30
|
+
'appointment_ticket' // 预约类门票
|
|
50
31
|
]
|
|
51
32
|
};
|
|
52
33
|
try {
|
|
53
|
-
const res = await
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
34
|
+
const res = await request?.get('/machinecode/batch-search', params);
|
|
35
|
+
if (res?.code == 200 && !!res?.data) {
|
|
36
|
+
return {
|
|
37
|
+
searchType: 'walletPass',
|
|
38
|
+
response: res
|
|
39
|
+
};
|
|
59
40
|
}
|
|
60
|
-
throw new Error(
|
|
41
|
+
throw new Error('没有找到对应的识别码');
|
|
61
42
|
} catch (error) {
|
|
62
43
|
throw error;
|
|
63
44
|
}
|
|
64
45
|
};
|
|
65
|
-
|
|
66
|
-
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 搜索钱包
|
|
49
|
+
*/
|
|
50
|
+
exports.searchWalletPass = searchWalletPass;
|
|
51
|
+
const searchWallet = async (request, code) => {
|
|
52
|
+
const params = {
|
|
53
|
+
code,
|
|
54
|
+
with_customer: 1
|
|
55
|
+
};
|
|
67
56
|
try {
|
|
68
|
-
const res = await
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
57
|
+
const res = await request?.post('/wallet/detail/search', params);
|
|
58
|
+
if (res?.code == 200 && !!res?.data) {
|
|
59
|
+
return {
|
|
60
|
+
searchType: 'wallet',
|
|
61
|
+
response: res
|
|
62
|
+
};
|
|
74
63
|
}
|
|
75
|
-
throw new Error(
|
|
64
|
+
throw new Error('没有找到对应的识别码');
|
|
76
65
|
} catch (error) {
|
|
77
66
|
throw error;
|
|
78
67
|
}
|
|
79
68
|
};
|
|
80
|
-
|
|
81
|
-
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 搜索商品
|
|
72
|
+
*/
|
|
73
|
+
exports.searchWallet = searchWallet;
|
|
74
|
+
const searchProduct = async (request, code) => {
|
|
82
75
|
const params = {
|
|
83
76
|
exact_search: code,
|
|
84
77
|
open_bundle: 0,
|
|
@@ -87,31 +80,22 @@ var searchProduct = async (request, code) => {
|
|
|
87
80
|
// 报价单
|
|
88
81
|
skip: 1,
|
|
89
82
|
num: 20,
|
|
90
|
-
status:
|
|
91
|
-
with: [
|
|
92
|
-
with_count: [
|
|
93
|
-
exclude_extension_type: [
|
|
94
|
-
"product_party",
|
|
95
|
-
"product_event",
|
|
96
|
-
"product_series_event",
|
|
97
|
-
"product_package_ticket",
|
|
98
|
-
"ticket",
|
|
99
|
-
"event_item"
|
|
100
|
-
]
|
|
83
|
+
status: 'published',
|
|
84
|
+
with: ['variantGroup'],
|
|
85
|
+
with_count: ['bundleGroup', 'optionGroup'],
|
|
86
|
+
exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item']
|
|
101
87
|
};
|
|
102
88
|
try {
|
|
103
|
-
const res = await
|
|
104
|
-
if (
|
|
105
|
-
return {
|
|
89
|
+
const res = await request?.post('/product/query', params);
|
|
90
|
+
if (res?.code == 200 && res?.data?.list?.length > 0) {
|
|
91
|
+
return {
|
|
92
|
+
searchType: 'product',
|
|
93
|
+
response: res
|
|
94
|
+
};
|
|
106
95
|
}
|
|
107
|
-
throw new Error(
|
|
96
|
+
throw new Error('没有找到对应的识别码');
|
|
108
97
|
} catch (error) {
|
|
109
98
|
throw error;
|
|
110
99
|
}
|
|
111
100
|
};
|
|
112
|
-
|
|
113
|
-
0 && (module.exports = {
|
|
114
|
-
searchProduct,
|
|
115
|
-
searchWallet,
|
|
116
|
-
searchWalletPass
|
|
117
|
-
});
|
|
101
|
+
exports.searchProduct = searchProduct;
|
|
@@ -1,56 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
28
2
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__export(handleScan_exports, {
|
|
32
|
-
handleCustomerScan: () => handleCustomerScan,
|
|
33
|
-
handleGlobalScan: () => handleGlobalScan,
|
|
34
|
-
handleUniversalScan: () => handleUniversalScan
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
35
5
|
});
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
|
|
6
|
+
exports.handleUniversalScan = exports.handleGlobalScan = exports.handleCustomerScan = void 0;
|
|
7
|
+
var _cloudSearch = require("./cloudSearch");
|
|
8
|
+
var _scanCache = _interopRequireDefault(require("./scanCache"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
/**
|
|
11
|
+
* Promise.any 的替代实现
|
|
12
|
+
* 返回第一个成功解析的 Promise,如果所有 Promise 都失败则抛出错误
|
|
13
|
+
* @param promises Promise 数组
|
|
14
|
+
* @returns 第一个成功的结果
|
|
15
|
+
*/
|
|
16
|
+
const promiseAny = async promises => {
|
|
40
17
|
if (promises.length === 0) {
|
|
41
|
-
throw new Error(
|
|
18
|
+
throw new Error('No promises provided');
|
|
42
19
|
}
|
|
43
20
|
const errors = [];
|
|
44
21
|
let completedCount = 0;
|
|
45
22
|
return new Promise((resolve, reject) => {
|
|
46
23
|
promises.forEach((promise, index) => {
|
|
47
|
-
promise.then(
|
|
24
|
+
promise.then(result => {
|
|
48
25
|
resolve(result);
|
|
49
|
-
}).catch(
|
|
26
|
+
}).catch(error => {
|
|
50
27
|
errors[index] = error;
|
|
51
28
|
completedCount++;
|
|
29
|
+
|
|
30
|
+
// 如果所有 Promise 都失败了,抛出包含所有错误的错误
|
|
52
31
|
if (completedCount === promises.length) {
|
|
53
|
-
const errorMessage = `All promises were rejected. Errors: ${errors.map(
|
|
32
|
+
const errorMessage = `All promises were rejected. Errors: ${errors.map(e => e.message).join(', ')}`;
|
|
54
33
|
const combinedError = new Error(errorMessage);
|
|
55
34
|
combinedError.errors = errors;
|
|
56
35
|
reject(combinedError);
|
|
@@ -59,74 +38,97 @@ var promiseAny = async (promises) => {
|
|
|
59
38
|
});
|
|
60
39
|
});
|
|
61
40
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 处理扫码
|
|
44
|
+
* @param getRequestList 获取请求列表
|
|
45
|
+
* @returns 处理结果
|
|
46
|
+
*/
|
|
47
|
+
const handleScanFn = (getRequestList, localSearch) => {
|
|
48
|
+
return async scanResult => {
|
|
49
|
+
const {
|
|
50
|
+
value
|
|
51
|
+
} = scanResult || {};
|
|
52
|
+
|
|
53
|
+
// 本地解析识别码
|
|
65
54
|
if (localSearch) {
|
|
66
55
|
try {
|
|
67
|
-
const localResult = localSearch
|
|
68
|
-
if (
|
|
69
|
-
console.log("本地搜索到数据>>>>>>>", localResult);
|
|
56
|
+
const localResult = localSearch?.(value);
|
|
57
|
+
if (localResult?.length > 0) {
|
|
70
58
|
return {
|
|
71
|
-
searchType:
|
|
72
|
-
response: {
|
|
59
|
+
searchType: 'local_product',
|
|
60
|
+
response: {
|
|
61
|
+
data: {
|
|
62
|
+
list: localResult
|
|
63
|
+
}
|
|
64
|
+
}
|
|
73
65
|
};
|
|
74
|
-
} else {
|
|
75
|
-
console.log("本地搜索无数据>>>>>>>");
|
|
76
|
-
}
|
|
66
|
+
} else {}
|
|
77
67
|
} catch (error) {
|
|
78
|
-
console.error(
|
|
68
|
+
console.error('本地搜索到数据失败>>>>>>>', error);
|
|
79
69
|
}
|
|
80
70
|
}
|
|
71
|
+
|
|
72
|
+
// 检查缓存中是否已有数据
|
|
81
73
|
try {
|
|
82
|
-
if (
|
|
83
|
-
const result =
|
|
84
|
-
console.log("缓存中搜索到数据>>>>>>>", result);
|
|
74
|
+
if (_scanCache.default.has(value)) {
|
|
75
|
+
const result = _scanCache.default.get(value);
|
|
85
76
|
return result;
|
|
86
|
-
} else {
|
|
87
|
-
console.log("缓存中无数据>>>>>>>");
|
|
88
|
-
}
|
|
77
|
+
} else {}
|
|
89
78
|
} catch (error) {
|
|
90
|
-
console.error(
|
|
79
|
+
console.error('缓存中搜索数据失败>>>>>>>', error);
|
|
91
80
|
}
|
|
92
|
-
const requestList =
|
|
81
|
+
const requestList = getRequestList?.(value) || [];
|
|
93
82
|
if (requestList.length === 0) {
|
|
94
|
-
throw new Error(
|
|
83
|
+
throw new Error('requestList is empty');
|
|
95
84
|
}
|
|
96
85
|
try {
|
|
97
86
|
const result = await promiseAny(requestList);
|
|
98
|
-
|
|
87
|
+
// 将结果缓存
|
|
88
|
+
_scanCache.default.set(value, result);
|
|
99
89
|
return result;
|
|
100
90
|
} catch (error) {
|
|
101
91
|
throw error;
|
|
102
92
|
}
|
|
103
93
|
};
|
|
104
94
|
};
|
|
105
|
-
|
|
106
|
-
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 处理全局扫码
|
|
98
|
+
* @param request 请求插件
|
|
99
|
+
* @returns 处理结果
|
|
100
|
+
*/
|
|
101
|
+
const handleGlobalScan = (request, localSearch) => {
|
|
102
|
+
const getRequestList = value => {
|
|
107
103
|
let requestList = [];
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
// 如果value是已WL开头的,则认为是钱包识别码
|
|
105
|
+
if (value.startsWith('WL')) {
|
|
106
|
+
requestList = [(0, _cloudSearch.searchWallet)(request, value)];
|
|
110
107
|
} else {
|
|
111
|
-
requestList = [
|
|
112
|
-
(0, import_cloudSearch.searchWalletPass)(request, value),
|
|
113
|
-
(0, import_cloudSearch.searchWallet)(request, value),
|
|
114
|
-
(0, import_cloudSearch.searchProduct)(request, value)
|
|
115
|
-
];
|
|
108
|
+
requestList = [(0, _cloudSearch.searchWalletPass)(request, value), (0, _cloudSearch.searchWallet)(request, value), (0, _cloudSearch.searchProduct)(request, value)];
|
|
116
109
|
}
|
|
117
110
|
return requestList;
|
|
118
111
|
};
|
|
119
112
|
return handleScanFn(getRequestList, localSearch);
|
|
120
113
|
};
|
|
121
|
-
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* 处理客户扫码
|
|
117
|
+
* @param request 请求插件
|
|
118
|
+
* @returns 处理结果
|
|
119
|
+
*/
|
|
120
|
+
exports.handleGlobalScan = handleGlobalScan;
|
|
121
|
+
const handleCustomerScan = () => {
|
|
122
122
|
return () => Promise.resolve({});
|
|
123
123
|
};
|
|
124
|
-
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* 处理钱包扫码
|
|
127
|
+
* @param request 请求插件
|
|
128
|
+
* @returns 处理结果
|
|
129
|
+
*/
|
|
130
|
+
exports.handleCustomerScan = handleCustomerScan;
|
|
131
|
+
const handleUniversalScan = () => {
|
|
125
132
|
return () => Promise.resolve({});
|
|
126
133
|
};
|
|
127
|
-
|
|
128
|
-
0 && (module.exports = {
|
|
129
|
-
handleCustomerScan,
|
|
130
|
-
handleGlobalScan,
|
|
131
|
-
handleUniversalScan
|
|
132
|
-
});
|
|
134
|
+
exports.handleUniversalScan = handleUniversalScan;
|