@pisell/pisellos 2.3.41 → 2.3.43
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/model/strategy/adapter/promotion/index.js +0 -9
- package/dist/modules/Discount/index.d.ts +1 -0
- package/dist/modules/Discount/index.js +40 -11
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/Holder/index.d.ts +48 -0
- package/dist/modules/Holder/index.js +640 -0
- package/dist/modules/Holder/types.d.ts +123 -0
- package/dist/modules/Holder/types.js +1 -0
- package/dist/modules/Holder/utils.d.ts +13 -0
- package/dist/modules/Holder/utils.js +34 -0
- package/dist/modules/OpenData/index.js +2 -2
- package/dist/modules/Order/index.d.ts +3 -1
- package/dist/modules/Order/index.js +55 -26
- package/dist/modules/Order/types.d.ts +9 -0
- package/dist/modules/Order/utils.d.ts +10 -0
- package/dist/modules/Order/utils.js +35 -3
- package/dist/modules/Product/types.d.ts +1 -0
- package/dist/modules/ProductList/index.js +33 -14
- package/dist/modules/Quotation/index.d.ts +1 -1
- package/dist/modules/Quotation/index.js +2 -2
- package/dist/modules/ResourcePlanner/index.d.ts +24 -0
- package/dist/modules/ResourcePlanner/index.js +181 -0
- package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
- package/dist/modules/ResourcePlanner/planner.js +1069 -0
- package/dist/modules/ResourcePlanner/types.d.ts +227 -0
- package/dist/modules/ResourcePlanner/types.js +1 -0
- package/dist/modules/Rules/index.js +47 -13
- package/dist/modules/SalesSummary/index.js +12 -13
- package/dist/modules/ScanOrderLogger/index.d.ts +2 -0
- package/dist/modules/ScanOrderLogger/index.js +15 -2
- package/dist/modules/ScanOrderLogger/providers/feishu.js +45 -27
- package/dist/modules/ScanOrderLogger/types.d.ts +1 -0
- package/dist/modules/Schedule/index.d.ts +3 -1
- package/dist/modules/Schedule/index.js +21 -16
- package/dist/modules/Summary/utils.js +38 -13
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +3 -1
- package/dist/plugins/window.d.ts +1 -0
- package/dist/server/index.d.ts +14 -0
- package/dist/server/index.js +772 -657
- package/dist/solution/BaseSales/index.d.ts +7 -0
- package/dist/solution/BaseSales/index.js +64 -42
- package/dist/solution/BookingByStep/index.d.ts +17 -2
- package/dist/solution/BookingByStep/index.js +294 -215
- package/dist/solution/BookingByStep/types.d.ts +2 -1
- package/dist/solution/BookingByStep/types.js +3 -1
- package/dist/solution/BookingByStep/utils/capacity.js +17 -1
- package/dist/solution/BookingByStep/utils/timeslots.d.ts +3 -1
- package/dist/solution/BookingByStep/utils/timeslots.js +19 -12
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +2 -2
- package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +10 -2
- package/dist/solution/ScanOrder/index.d.ts +26 -14
- package/dist/solution/ScanOrder/index.js +1142 -739
- package/dist/solution/ScanOrder/types.d.ts +21 -1
- package/dist/solution/ScanOrder/utils.d.ts +8 -0
- package/dist/solution/ScanOrder/utils.js +66 -25
- package/dist/solution/ShopDiscount/index.d.ts +1 -0
- package/dist/solution/ShopDiscount/index.js +125 -87
- package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/dist/solution/UnifiedBookingSales/index.js +1891 -0
- package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/dist/solution/UnifiedBookingSales/types.js +11 -0
- package/dist/solution/VenueBooking/index.d.ts +39 -11
- package/dist/solution/VenueBooking/index.js +1167 -841
- package/dist/solution/VenueBooking/types.d.ts +3 -0
- package/dist/solution/VenueBooking/utils/resource.js +1 -0
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/dist/solution/VenueBooking/utils/slotMerge.js +10 -5
- package/dist/solution/index.d.ts +1 -0
- package/dist/solution/index.js +2 -1
- package/dist/types/index.d.ts +1 -0
- package/lib/model/strategy/adapter/promotion/index.js +0 -51
- package/lib/modules/Discount/index.d.ts +1 -0
- package/lib/modules/Discount/index.js +9 -0
- package/lib/modules/Discount/types.d.ts +1 -0
- package/lib/modules/Holder/index.d.ts +48 -0
- package/lib/modules/Holder/index.js +402 -0
- package/lib/modules/Holder/types.d.ts +123 -0
- package/lib/modules/Holder/types.js +17 -0
- package/lib/modules/Holder/utils.d.ts +13 -0
- package/lib/modules/Holder/utils.js +71 -0
- package/lib/modules/OpenData/index.js +1 -1
- package/lib/modules/Order/index.d.ts +3 -1
- package/lib/modules/Order/index.js +27 -11
- package/lib/modules/Order/types.d.ts +9 -0
- package/lib/modules/Order/utils.d.ts +10 -0
- package/lib/modules/Order/utils.js +36 -5
- package/lib/modules/Product/types.d.ts +1 -0
- package/lib/modules/ProductList/index.js +40 -31
- package/lib/modules/Quotation/index.d.ts +1 -1
- package/lib/modules/Quotation/index.js +2 -2
- package/lib/modules/ResourcePlanner/index.d.ts +24 -0
- package/lib/modules/ResourcePlanner/index.js +148 -0
- package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
- package/lib/modules/ResourcePlanner/planner.js +933 -0
- package/lib/modules/ResourcePlanner/types.d.ts +227 -0
- package/lib/modules/ResourcePlanner/types.js +17 -0
- package/lib/modules/Rules/index.js +33 -16
- package/lib/modules/SalesSummary/index.js +6 -7
- package/lib/modules/ScanOrderLogger/index.d.ts +2 -0
- package/lib/modules/ScanOrderLogger/index.js +13 -1
- package/lib/modules/ScanOrderLogger/providers/feishu.js +15 -6
- package/lib/modules/ScanOrderLogger/types.d.ts +1 -0
- package/lib/modules/Schedule/index.d.ts +3 -1
- package/lib/modules/Schedule/index.js +10 -8
- package/lib/modules/Summary/utils.js +21 -1
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +5 -1
- package/lib/plugins/window.d.ts +1 -0
- package/lib/server/index.d.ts +14 -0
- package/lib/server/index.js +65 -5
- package/lib/solution/BaseSales/index.d.ts +7 -0
- package/lib/solution/BaseSales/index.js +24 -8
- package/lib/solution/BookingByStep/index.d.ts +17 -2
- package/lib/solution/BookingByStep/index.js +60 -18
- package/lib/solution/BookingByStep/types.d.ts +2 -1
- package/lib/solution/BookingByStep/types.js +5 -0
- package/lib/solution/BookingByStep/utils/capacity.js +20 -1
- package/lib/solution/BookingByStep/utils/timeslots.d.ts +3 -1
- package/lib/solution/BookingByStep/utils/timeslots.js +19 -11
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +10 -2
- package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +2 -2
- package/lib/solution/ScanOrder/index.d.ts +26 -14
- package/lib/solution/ScanOrder/index.js +449 -182
- package/lib/solution/ScanOrder/types.d.ts +21 -1
- package/lib/solution/ScanOrder/utils.d.ts +8 -0
- package/lib/solution/ScanOrder/utils.js +31 -0
- package/lib/solution/ShopDiscount/index.d.ts +1 -0
- package/lib/solution/ShopDiscount/index.js +14 -0
- package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/lib/solution/UnifiedBookingSales/index.js +1084 -0
- package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/lib/solution/UnifiedBookingSales/types.js +33 -0
- package/lib/solution/VenueBooking/index.d.ts +39 -11
- package/lib/solution/VenueBooking/index.js +322 -110
- package/lib/solution/VenueBooking/types.d.ts +3 -0
- package/lib/solution/VenueBooking/utils/resource.js +1 -0
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/lib/solution/VenueBooking/utils/slotMerge.js +6 -4
- package/lib/solution/index.d.ts +1 -0
- package/lib/solution/index.js +3 -1
- package/lib/types/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -35,6 +35,7 @@ export interface ScanOrderOrderProductIdentity {
|
|
|
35
35
|
/** 参与合并/匹配;与 remove 通配语义见 isSkuOnlyDeleteIdentity */
|
|
36
36
|
product_sku?: ScanOrderProductSku;
|
|
37
37
|
product_bundle?: any[];
|
|
38
|
+
shop_id?: number | string;
|
|
38
39
|
}
|
|
39
40
|
export interface ScanOrderProductSku {
|
|
40
41
|
option: any[];
|
|
@@ -207,7 +208,7 @@ export interface ScanOrderSubmitPayload extends Omit<ScanOrderTempOrder, 'platfo
|
|
|
207
208
|
}>;
|
|
208
209
|
products: ScanOrderSubmitProduct[];
|
|
209
210
|
}
|
|
210
|
-
export type ScanOrderAvailabilityMode = 'idle' | 'shop_closed' | 'submit_disabled' | 'resource_busy' | 'additional_order_with_code' | 'additional_order';
|
|
211
|
+
export type ScanOrderAvailabilityMode = 'idle' | 'shop_closed' | 'submit_disabled' | 'resource_busy' | 'multiple_orders' | 'additional_order_with_code' | 'additional_order';
|
|
211
212
|
export interface ScanOrderTableFormRecord {
|
|
212
213
|
policy?: string | null;
|
|
213
214
|
partyroom_booking?: string | null;
|
|
@@ -250,6 +251,10 @@ export interface ScanOrderResourceOccupyDetail {
|
|
|
250
251
|
form_id?: number | string | null;
|
|
251
252
|
order_id?: number | string | null;
|
|
252
253
|
last_order_id?: number | string | null;
|
|
254
|
+
order_list?: Array<{
|
|
255
|
+
id?: number | string | null;
|
|
256
|
+
[key: string]: any;
|
|
257
|
+
}> | null;
|
|
253
258
|
resource_capacity?: ScanOrderResourceCapacity[] | null;
|
|
254
259
|
form_record?: ScanOrderTableFormRecord | null;
|
|
255
260
|
[key: string]: any;
|
|
@@ -263,6 +268,21 @@ export interface ScanOrderResourceOccupyDetailApiResponse {
|
|
|
263
268
|
} | null;
|
|
264
269
|
}
|
|
265
270
|
export type ScanOrderResourceSelectType = 'single' | 'multiple' | 'capacity';
|
|
271
|
+
export interface ScanOrderReservationResourceSelectInfo {
|
|
272
|
+
resourceSelectType?: ScanOrderResourceSelectType;
|
|
273
|
+
isSingleReservation: boolean;
|
|
274
|
+
isMultipleReservation: boolean;
|
|
275
|
+
isCapacityReservation: boolean;
|
|
276
|
+
}
|
|
277
|
+
export interface ScanOrderAllowAddItemsInfo {
|
|
278
|
+
enabled: boolean;
|
|
279
|
+
}
|
|
280
|
+
export type ScanOrderSyncAdditionalOrderReason = 'missing_resource_id' | 'no_order' | 'multiple_orders' | 'add_items_disabled' | 'invalid_order_id';
|
|
281
|
+
export interface ScanOrderSyncAdditionalOrderResult {
|
|
282
|
+
matched: boolean;
|
|
283
|
+
order_id?: string;
|
|
284
|
+
reason?: ScanOrderSyncAdditionalOrderReason;
|
|
285
|
+
}
|
|
266
286
|
export interface ScanOrderResourceState extends ScanOrderAvailabilityInfo {
|
|
267
287
|
relationId?: string;
|
|
268
288
|
tableFormId?: string;
|
|
@@ -2,6 +2,7 @@ import { ScanOrderOrderProduct, ScanOrderOrderProductIdentity, ScanOrderResource
|
|
|
2
2
|
import type { CartItemSummary, ItemRuleBusinessData, PaxInfo, QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
|
|
3
3
|
import type { StrategyConfig } from '../../model/strategy/type';
|
|
4
4
|
import type { ProductData } from '../../modules/Product/types';
|
|
5
|
+
import type { OrderSubmitProduct } from '../../modules/Order/types';
|
|
5
6
|
/**
|
|
6
7
|
* 构建金额全为 0 的空 summary。
|
|
7
8
|
* 作为尚未计算金额时的兜底默认值,避免下游因 undefined 报错。
|
|
@@ -42,6 +43,8 @@ export declare function toNonNegativeNumber(value: unknown): number;
|
|
|
42
43
|
export declare function toNonNegativeInt(value: unknown): number;
|
|
43
44
|
export declare function toPriceString(value: unknown, fallback?: string): string;
|
|
44
45
|
export declare function buildProductKey(productId: number, productVariantId: number): string;
|
|
46
|
+
/** 加餐接口只提交本次新增商品,过滤掉首单预约占位规则行。 */
|
|
47
|
+
export declare function filterProductsForScanOrderMore<T extends OrderSubmitProduct>(products?: T[]): T[];
|
|
45
48
|
export declare function getTopLevelProductId(product: Record<string, any>): number | null;
|
|
46
49
|
export declare function getTopLevelVariantId(product: Record<string, any>): number | null;
|
|
47
50
|
export declare function buildQuantityLimitIndex(limits: QuantityLimitResult[]): {
|
|
@@ -134,6 +137,11 @@ export declare function normalizeOrderProduct(product: Partial<ScanOrderOrderPro
|
|
|
134
137
|
* 从 reservation.enabled_reservation_rules 中收集 type=link 的商品 id。
|
|
135
138
|
*/
|
|
136
139
|
export declare function collectLinkProductIdsFromReservationRules(rules: unknown): number[];
|
|
140
|
+
/**
|
|
141
|
+
* 找到第一个归属指定桌台的预约规则商品。
|
|
142
|
+
* 归属判断基于商品资源中的 default_resource / optional_resource。
|
|
143
|
+
*/
|
|
144
|
+
export declare function findReservationRuleProductByResourceId(products: ProductData[], resourceId: string | number | null | undefined): ProductData | undefined;
|
|
137
145
|
/**
|
|
138
146
|
* 返回列表中第一个带有效 duration.value(分钟)的商品时长。
|
|
139
147
|
*/
|
|
@@ -154,6 +154,15 @@ export function toPriceString(value) {
|
|
|
154
154
|
export function buildProductKey(productId, productVariantId) {
|
|
155
155
|
return "".concat(productId, "_").concat(productVariantId);
|
|
156
156
|
}
|
|
157
|
+
|
|
158
|
+
/** 加餐接口只提交本次新增商品,过滤掉首单预约占位规则行。 */
|
|
159
|
+
export function filterProductsForScanOrderMore() {
|
|
160
|
+
var products = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
161
|
+
return products.filter(function (product) {
|
|
162
|
+
var _product$metadata;
|
|
163
|
+
return ((_product$metadata = product.metadata) === null || _product$metadata === void 0 ? void 0 : _product$metadata.is_rule) !== true;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
157
166
|
export function getTopLevelProductId(product) {
|
|
158
167
|
var _product$product_id;
|
|
159
168
|
var rawProductId = (_product$product_id = product.product_id) !== null && _product$product_id !== void 0 ? _product$product_id : product.id;
|
|
@@ -482,11 +491,11 @@ export function getProductIdentityIndex(products, identity) {
|
|
|
482
491
|
* - 因此多次 normalize 不会重复叠加 option/bundle。
|
|
483
492
|
*/
|
|
484
493
|
export function normalizeOrderProduct(product) {
|
|
485
|
-
var _product$
|
|
494
|
+
var _product$metadata2, _metadata$origin, _product$product_sku, _metadata$origin2, _variantList$find, _product$is_charge_ta;
|
|
486
495
|
var metadata = _objectSpread({}, product.metadata || {});
|
|
487
496
|
// 不透明 identity 契约:每条订单行必须带 identity_key。
|
|
488
497
|
// 调用方未传时由 SDK 自动生成 UUID,后续 update/remove 只做严格比对,避免猜测合成 key。
|
|
489
|
-
var resolvedIdentityKey = (_product$
|
|
498
|
+
var resolvedIdentityKey = (_product$metadata2 = product.metadata) !== null && _product$metadata2 !== void 0 && _product$metadata2.unique_identification_number ? String(product.metadata.unique_identification_number) : product.unique_identification_number && String(product.unique_identification_number).length > 0 ? String(product.unique_identification_number) : product.identity_key && String(product.identity_key).length > 0 ? String(product.identity_key) : createUuidV4();
|
|
490
499
|
metadata.unique_identification_number = resolvedIdentityKey;
|
|
491
500
|
var priceOverride = metadata.price_override;
|
|
492
501
|
var originOtherBundle = (_metadata$origin = metadata.origin) === null || _metadata$origin === void 0 || (_metadata$origin = _metadata$origin._extend) === null || _metadata$origin === void 0 || (_metadata$origin = _metadata$origin.other) === null || _metadata$origin === void 0 ? void 0 : _metadata$origin.bundle;
|
|
@@ -695,23 +704,55 @@ export function collectLinkProductIdsFromReservationRules(rules) {
|
|
|
695
704
|
}
|
|
696
705
|
|
|
697
706
|
/**
|
|
698
|
-
*
|
|
707
|
+
* 找到第一个归属指定桌台的预约规则商品。
|
|
708
|
+
* 归属判断基于商品资源中的 default_resource / optional_resource。
|
|
699
709
|
*/
|
|
700
|
-
export function
|
|
710
|
+
export function findReservationRuleProductByResourceId(products, resourceId) {
|
|
711
|
+
var numericResourceId = Number(resourceId);
|
|
712
|
+
if (!Number.isFinite(numericResourceId) || numericResourceId <= 0) return undefined;
|
|
701
713
|
var _iterator7 = _createForOfIteratorHelper(products),
|
|
702
714
|
_step7;
|
|
703
715
|
try {
|
|
704
716
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
705
|
-
var _product$
|
|
717
|
+
var _product$product_reso;
|
|
706
718
|
var product = _step7.value;
|
|
719
|
+
var resources = product === null || product === void 0 || (_product$product_reso = product.product_resource) === null || _product$product_reso === void 0 ? void 0 : _product$product_reso.resources;
|
|
720
|
+
if (!Array.isArray(resources)) continue;
|
|
721
|
+
var hasMatchedResource = resources.some(function (resource) {
|
|
722
|
+
var defaultResources = Array.isArray(resource === null || resource === void 0 ? void 0 : resource.default_resource) ? resource.default_resource : [];
|
|
723
|
+
var optionalResources = Array.isArray(resource === null || resource === void 0 ? void 0 : resource.optional_resource) ? resource.optional_resource : [];
|
|
724
|
+
return [].concat(_toConsumableArray(defaultResources), _toConsumableArray(optionalResources)).some(function (id) {
|
|
725
|
+
return Number(id) === numericResourceId;
|
|
726
|
+
});
|
|
727
|
+
});
|
|
728
|
+
if (hasMatchedResource) return product;
|
|
729
|
+
}
|
|
730
|
+
} catch (err) {
|
|
731
|
+
_iterator7.e(err);
|
|
732
|
+
} finally {
|
|
733
|
+
_iterator7.f();
|
|
734
|
+
}
|
|
735
|
+
return undefined;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* 返回列表中第一个带有效 duration.value(分钟)的商品时长。
|
|
740
|
+
*/
|
|
741
|
+
export function pickFirstDurationMinutesFromProducts(products) {
|
|
742
|
+
var _iterator8 = _createForOfIteratorHelper(products),
|
|
743
|
+
_step8;
|
|
744
|
+
try {
|
|
745
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
746
|
+
var _product$duration;
|
|
747
|
+
var product = _step8.value;
|
|
707
748
|
var value = product === null || product === void 0 || (_product$duration = product.duration) === null || _product$duration === void 0 ? void 0 : _product$duration.value;
|
|
708
749
|
var n = Number(value);
|
|
709
750
|
if (Number.isFinite(n) && n > 0) return Math.floor(n);
|
|
710
751
|
}
|
|
711
752
|
} catch (err) {
|
|
712
|
-
|
|
753
|
+
_iterator8.e(err);
|
|
713
754
|
} finally {
|
|
714
|
-
|
|
755
|
+
_iterator8.f();
|
|
715
756
|
}
|
|
716
757
|
return undefined;
|
|
717
758
|
}
|
|
@@ -741,11 +782,11 @@ export function computeResourceIsFull(params) {
|
|
|
741
782
|
if (!Number.isFinite(totalCapacity) || totalCapacity <= 0) return false;
|
|
742
783
|
var now = dayjs();
|
|
743
784
|
var occupied = 0;
|
|
744
|
-
var
|
|
745
|
-
|
|
785
|
+
var _iterator9 = _createForOfIteratorHelper(capacityList || []),
|
|
786
|
+
_step9;
|
|
746
787
|
try {
|
|
747
|
-
for (
|
|
748
|
-
var slot =
|
|
788
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
789
|
+
var slot = _step9.value;
|
|
749
790
|
var start = dayjs(slot === null || slot === void 0 ? void 0 : slot.start_at);
|
|
750
791
|
var end = dayjs(slot === null || slot === void 0 ? void 0 : slot.end_at);
|
|
751
792
|
if (!start.isValid() || !end.isValid()) continue;
|
|
@@ -755,9 +796,9 @@ export function computeResourceIsFull(params) {
|
|
|
755
796
|
}
|
|
756
797
|
}
|
|
757
798
|
} catch (err) {
|
|
758
|
-
|
|
799
|
+
_iterator9.e(err);
|
|
759
800
|
} finally {
|
|
760
|
-
|
|
801
|
+
_iterator9.f();
|
|
761
802
|
}
|
|
762
803
|
return occupied >= totalCapacity;
|
|
763
804
|
}
|
|
@@ -767,11 +808,11 @@ export function computeResourceIsFull(params) {
|
|
|
767
808
|
* 仅返回有限数字字段;若均无法解析则返回 `undefined`。
|
|
768
809
|
*/
|
|
769
810
|
export function pickFirstCustomCapacityPaxBounds(products) {
|
|
770
|
-
var
|
|
771
|
-
|
|
811
|
+
var _iterator10 = _createForOfIteratorHelper(products),
|
|
812
|
+
_step10;
|
|
772
813
|
try {
|
|
773
|
-
for (
|
|
774
|
-
var p =
|
|
814
|
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
|
815
|
+
var p = _step10.value;
|
|
775
816
|
var cap = p === null || p === void 0 ? void 0 : p.capacity;
|
|
776
817
|
if (!cap || cap.type !== 'custom') continue;
|
|
777
818
|
if (!Array.isArray(cap.custom) || cap.custom.length === 0) continue;
|
|
@@ -790,9 +831,9 @@ export function pickFirstCustomCapacityPaxBounds(products) {
|
|
|
790
831
|
if (out.min !== undefined || out.max !== undefined) return out;
|
|
791
832
|
}
|
|
792
833
|
} catch (err) {
|
|
793
|
-
|
|
834
|
+
_iterator10.e(err);
|
|
794
835
|
} finally {
|
|
795
|
-
|
|
836
|
+
_iterator10.f();
|
|
796
837
|
}
|
|
797
838
|
return undefined;
|
|
798
839
|
}
|
|
@@ -802,11 +843,11 @@ export function pickFirstCustomCapacityPaxBounds(products) {
|
|
|
802
843
|
* 无匹配时返回 `undefined`,调用方应回退为 `0`。
|
|
803
844
|
*/
|
|
804
845
|
export function pickFirstCustomCapacityDimensionId(products) {
|
|
805
|
-
var
|
|
806
|
-
|
|
846
|
+
var _iterator11 = _createForOfIteratorHelper(products),
|
|
847
|
+
_step11;
|
|
807
848
|
try {
|
|
808
|
-
for (
|
|
809
|
-
var p =
|
|
849
|
+
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
|
|
850
|
+
var p = _step11.value;
|
|
810
851
|
var cap = p === null || p === void 0 ? void 0 : p.capacity;
|
|
811
852
|
if (!cap || cap.type !== 'custom') continue;
|
|
812
853
|
if (!Array.isArray(cap.custom) || cap.custom.length === 0) continue;
|
|
@@ -822,9 +863,9 @@ export function pickFirstCustomCapacityDimensionId(products) {
|
|
|
822
863
|
}
|
|
823
864
|
}
|
|
824
865
|
} catch (err) {
|
|
825
|
-
|
|
866
|
+
_iterator11.e(err);
|
|
826
867
|
} finally {
|
|
827
|
-
|
|
868
|
+
_iterator11.f();
|
|
828
869
|
}
|
|
829
870
|
return undefined;
|
|
830
871
|
}
|
|
@@ -40,6 +40,7 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
|
40
40
|
discountList: Discount[];
|
|
41
41
|
};
|
|
42
42
|
setProductList(productList: Record<string, any>[]): void;
|
|
43
|
+
batchSearchByProductIds(productIds: number[]): Promise<Discount[]>;
|
|
43
44
|
scanCode(code: string, customerId?: number): Promise<{
|
|
44
45
|
isAvailable: boolean;
|
|
45
46
|
productList: Record<string, any>[];
|