@pisell/pisellos 2.3.49 → 2.3.51

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 (144) hide show
  1. package/dist/modules/Discount/index.d.ts +1 -0
  2. package/dist/modules/Discount/index.js +40 -11
  3. package/dist/modules/Discount/types.d.ts +1 -0
  4. package/dist/modules/Holder/index.d.ts +48 -0
  5. package/dist/modules/Holder/index.js +640 -0
  6. package/dist/modules/Holder/types.d.ts +123 -0
  7. package/dist/modules/Holder/types.js +1 -0
  8. package/dist/modules/Holder/utils.d.ts +13 -0
  9. package/dist/modules/Holder/utils.js +34 -0
  10. package/dist/modules/OpenData/index.js +2 -2
  11. package/dist/modules/Order/index.d.ts +4 -2
  12. package/dist/modules/Order/index.js +54 -25
  13. package/dist/modules/Order/types.d.ts +9 -0
  14. package/dist/modules/Order/utils.d.ts +10 -0
  15. package/dist/modules/Order/utils.js +35 -3
  16. package/dist/modules/Product/types.d.ts +1 -0
  17. package/dist/modules/ProductList/index.js +33 -14
  18. package/dist/modules/Quotation/index.d.ts +1 -1
  19. package/dist/modules/Quotation/index.js +2 -2
  20. package/dist/modules/ResourcePlanner/index.d.ts +24 -0
  21. package/dist/modules/ResourcePlanner/index.js +181 -0
  22. package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
  23. package/dist/modules/ResourcePlanner/planner.js +1069 -0
  24. package/dist/modules/ResourcePlanner/types.d.ts +227 -0
  25. package/dist/modules/ResourcePlanner/types.js +1 -0
  26. package/dist/modules/Rules/index.js +47 -13
  27. package/dist/modules/SalesSummary/index.js +12 -13
  28. package/dist/modules/ScanOrderLogger/index.d.ts +2 -0
  29. package/dist/modules/ScanOrderLogger/index.js +15 -2
  30. package/dist/modules/ScanOrderLogger/providers/feishu.js +45 -27
  31. package/dist/modules/ScanOrderLogger/types.d.ts +1 -0
  32. package/dist/modules/Schedule/index.d.ts +3 -1
  33. package/dist/modules/Schedule/index.js +21 -16
  34. package/dist/modules/Summary/utils.js +38 -13
  35. package/dist/modules/index.d.ts +2 -0
  36. package/dist/modules/index.js +3 -1
  37. package/dist/plugins/window.d.ts +1 -0
  38. package/dist/server/index.d.ts +14 -0
  39. package/dist/server/index.js +907 -793
  40. package/dist/solution/BaseSales/index.d.ts +7 -0
  41. package/dist/solution/BaseSales/index.js +64 -42
  42. package/dist/solution/BookingByStep/index.d.ts +17 -2
  43. package/dist/solution/BookingByStep/index.js +294 -215
  44. package/dist/solution/BookingByStep/types.d.ts +2 -1
  45. package/dist/solution/BookingByStep/types.js +3 -1
  46. package/dist/solution/BookingByStep/utils/capacity.js +17 -1
  47. package/dist/solution/BookingByStep/utils/timeslots.d.ts +3 -1
  48. package/dist/solution/BookingByStep/utils/timeslots.js +19 -12
  49. package/dist/solution/BookingTicket/index.js +2 -2
  50. package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  51. package/dist/solution/BookingTicket/utils/scan/handleScan.js +10 -2
  52. package/dist/solution/ScanOrder/index.d.ts +26 -14
  53. package/dist/solution/ScanOrder/index.js +1142 -739
  54. package/dist/solution/ScanOrder/types.d.ts +21 -1
  55. package/dist/solution/ScanOrder/utils.d.ts +8 -0
  56. package/dist/solution/ScanOrder/utils.js +66 -25
  57. package/dist/solution/ShopDiscount/index.d.ts +1 -0
  58. package/dist/solution/ShopDiscount/index.js +125 -87
  59. package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
  60. package/dist/solution/UnifiedBookingSales/index.js +1891 -0
  61. package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
  62. package/dist/solution/UnifiedBookingSales/types.js +11 -0
  63. package/dist/solution/VenueBooking/index.d.ts +39 -11
  64. package/dist/solution/VenueBooking/index.js +1167 -841
  65. package/dist/solution/VenueBooking/types.d.ts +3 -0
  66. package/dist/solution/VenueBooking/utils/resource.js +1 -0
  67. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
  68. package/dist/solution/VenueBooking/utils/slotMerge.js +10 -5
  69. package/dist/solution/index.d.ts +1 -0
  70. package/dist/solution/index.js +2 -1
  71. package/dist/types/index.d.ts +1 -0
  72. package/lib/model/strategy/adapter/promotion/index.js +51 -0
  73. package/lib/modules/Discount/index.d.ts +1 -0
  74. package/lib/modules/Discount/index.js +9 -0
  75. package/lib/modules/Discount/types.d.ts +1 -0
  76. package/lib/modules/Holder/index.d.ts +48 -0
  77. package/lib/modules/Holder/index.js +402 -0
  78. package/lib/modules/Holder/types.d.ts +123 -0
  79. package/lib/modules/Holder/types.js +17 -0
  80. package/lib/modules/Holder/utils.d.ts +13 -0
  81. package/lib/modules/Holder/utils.js +71 -0
  82. package/lib/modules/OpenData/index.js +1 -1
  83. package/lib/modules/Order/index.d.ts +4 -2
  84. package/lib/modules/Order/index.js +26 -10
  85. package/lib/modules/Order/types.d.ts +9 -0
  86. package/lib/modules/Order/utils.d.ts +10 -0
  87. package/lib/modules/Order/utils.js +36 -5
  88. package/lib/modules/Product/types.d.ts +1 -0
  89. package/lib/modules/ProductList/index.js +40 -31
  90. package/lib/modules/Quotation/index.d.ts +1 -1
  91. package/lib/modules/Quotation/index.js +2 -2
  92. package/lib/modules/ResourcePlanner/index.d.ts +24 -0
  93. package/lib/modules/ResourcePlanner/index.js +148 -0
  94. package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
  95. package/lib/modules/ResourcePlanner/planner.js +933 -0
  96. package/lib/modules/ResourcePlanner/types.d.ts +227 -0
  97. package/lib/modules/ResourcePlanner/types.js +17 -0
  98. package/lib/modules/Rules/index.js +33 -16
  99. package/lib/modules/SalesSummary/index.js +6 -7
  100. package/lib/modules/ScanOrderLogger/index.d.ts +2 -0
  101. package/lib/modules/ScanOrderLogger/index.js +13 -1
  102. package/lib/modules/ScanOrderLogger/providers/feishu.js +15 -6
  103. package/lib/modules/ScanOrderLogger/types.d.ts +1 -0
  104. package/lib/modules/Schedule/index.d.ts +3 -1
  105. package/lib/modules/Schedule/index.js +10 -8
  106. package/lib/modules/Summary/utils.js +21 -1
  107. package/lib/modules/index.d.ts +2 -0
  108. package/lib/modules/index.js +5 -1
  109. package/lib/plugins/window.d.ts +1 -0
  110. package/lib/server/index.d.ts +14 -0
  111. package/lib/server/index.js +72 -15
  112. package/lib/solution/BaseSales/index.d.ts +7 -0
  113. package/lib/solution/BaseSales/index.js +24 -8
  114. package/lib/solution/BookingByStep/index.d.ts +17 -2
  115. package/lib/solution/BookingByStep/index.js +60 -18
  116. package/lib/solution/BookingByStep/types.d.ts +2 -1
  117. package/lib/solution/BookingByStep/types.js +5 -0
  118. package/lib/solution/BookingByStep/utils/capacity.js +20 -1
  119. package/lib/solution/BookingByStep/utils/timeslots.d.ts +3 -1
  120. package/lib/solution/BookingByStep/utils/timeslots.js +19 -11
  121. package/lib/solution/BookingTicket/index.js +10 -2
  122. package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  123. package/lib/solution/BookingTicket/utils/scan/handleScan.js +2 -2
  124. package/lib/solution/ScanOrder/index.d.ts +26 -14
  125. package/lib/solution/ScanOrder/index.js +449 -182
  126. package/lib/solution/ScanOrder/types.d.ts +21 -1
  127. package/lib/solution/ScanOrder/utils.d.ts +8 -0
  128. package/lib/solution/ScanOrder/utils.js +31 -0
  129. package/lib/solution/ShopDiscount/index.d.ts +1 -0
  130. package/lib/solution/ShopDiscount/index.js +14 -0
  131. package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
  132. package/lib/solution/UnifiedBookingSales/index.js +1084 -0
  133. package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
  134. package/lib/solution/UnifiedBookingSales/types.js +33 -0
  135. package/lib/solution/VenueBooking/index.d.ts +39 -11
  136. package/lib/solution/VenueBooking/index.js +322 -110
  137. package/lib/solution/VenueBooking/types.d.ts +3 -0
  138. package/lib/solution/VenueBooking/utils/resource.js +1 -0
  139. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
  140. package/lib/solution/VenueBooking/utils/slotMerge.js +6 -4
  141. package/lib/solution/index.d.ts +1 -0
  142. package/lib/solution/index.js +3 -1
  143. package/lib/types/index.d.ts +1 -0
  144. 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$metadata, _metadata$origin, _product$product_sku, _metadata$origin2, _variantList$find, _product$is_charge_ta;
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$metadata = product.metadata) !== null && _product$metadata !== void 0 && _product$metadata.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();
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
- * 返回列表中第一个带有效 duration.value(分钟)的商品时长。
707
+ * 找到第一个归属指定桌台的预约规则商品。
708
+ * 归属判断基于商品资源中的 default_resource / optional_resource。
699
709
  */
700
- export function pickFirstDurationMinutesFromProducts(products) {
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$duration;
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
- _iterator7.e(err);
753
+ _iterator8.e(err);
713
754
  } finally {
714
- _iterator7.f();
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 _iterator8 = _createForOfIteratorHelper(capacityList || []),
745
- _step8;
785
+ var _iterator9 = _createForOfIteratorHelper(capacityList || []),
786
+ _step9;
746
787
  try {
747
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
748
- var slot = _step8.value;
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
- _iterator8.e(err);
799
+ _iterator9.e(err);
759
800
  } finally {
760
- _iterator8.f();
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 _iterator9 = _createForOfIteratorHelper(products),
771
- _step9;
811
+ var _iterator10 = _createForOfIteratorHelper(products),
812
+ _step10;
772
813
  try {
773
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
774
- var p = _step9.value;
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
- _iterator9.e(err);
834
+ _iterator10.e(err);
794
835
  } finally {
795
- _iterator9.f();
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 _iterator10 = _createForOfIteratorHelper(products),
806
- _step10;
846
+ var _iterator11 = _createForOfIteratorHelper(products),
847
+ _step11;
807
848
  try {
808
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
809
- var p = _step10.value;
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
- _iterator10.e(err);
866
+ _iterator11.e(err);
826
867
  } finally {
827
- _iterator10.f();
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>[];