@pisell/pisellos 2.3.11 → 2.3.13

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.
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 2 | 1 | 6 | 3 | 4 | 5;
314
+ weekNum: 0 | 1 | 2 | 6 | 3 | 4 | 5;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -557,7 +557,8 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
557
557
  }): Promise<void>;
558
558
  handleCheckIn(params: {
559
559
  voucher_ids: number[];
560
- }): Promise<void>;
560
+ is_checkin: boolean;
561
+ }): Promise<any>;
561
562
  /**
562
563
  * 销毁模块:先调用父类(销毁所有 store 内子模块 + emit destroy + super.destroy()),
563
564
  * 再清理 BookingTicket 自有资源(scan 监听 + scan 内存缓存)。
@@ -2600,7 +2600,8 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2600
2600
  key: "handlePrintWristband",
2601
2601
  value: function () {
2602
2602
  var _handlePrintWristband = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee32(params) {
2603
- var deviceTask, deviceId;
2603
+ var _this$getOrderIdentit;
2604
+ var deviceTask, deviceId, idempotencyKey;
2604
2605
  return _regeneratorRuntime().wrap(function _callee32$(_context32) {
2605
2606
  while (1) switch (_context32.prev = _context32.next) {
2606
2607
  case 0:
@@ -2618,27 +2619,35 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2618
2619
  });
2619
2620
  return _context32.abrupt("return");
2620
2621
  case 4:
2621
- _context32.next = 6;
2622
+ this.logger.addLog({
2623
+ type: 'info',
2624
+ title: '[BookingTicket] handlePrintWristband',
2625
+ metadata: {
2626
+ voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
2627
+ }
2628
+ });
2629
+ _context32.next = 7;
2622
2630
  return this.getShortNumberOrDeviceId();
2623
- case 6:
2631
+ case 7:
2624
2632
  deviceId = _context32.sent;
2633
+ idempotencyKey = createUuidV4();
2625
2634
  deviceTask.dispatch({
2626
- action: 'print_v1',
2635
+ action: 'print_all',
2627
2636
  device_id: deviceId,
2628
2637
  payload: {
2629
2638
  type: 'WRISTBAND',
2630
2639
  data: {
2631
- order_id: this.getOrderIdentity(),
2640
+ order_id: (_this$getOrderIdentit = this.getOrderIdentity()) === null || _this$getOrderIdentit === void 0 ? void 0 : _this$getOrderIdentit.orderId,
2632
2641
  voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
2633
2642
  }
2634
2643
  },
2635
- idempotency_key: createUuidV4(),
2636
- name: 'PRINT_V1',
2637
- source: 'server',
2638
- source_type: 'order',
2639
- source_id: createUuidV4()
2644
+ idempotency_key: idempotencyKey,
2645
+ name: 'PRINT_WRISTBAND',
2646
+ source: 'bookingTicket',
2647
+ source_type: 'handlePrintWristband',
2648
+ source_id: idempotencyKey
2640
2649
  });
2641
- case 8:
2650
+ case 10:
2642
2651
  case "end":
2643
2652
  return _context32.stop();
2644
2653
  }
@@ -2653,13 +2662,79 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2653
2662
  key: "handleCheckIn",
2654
2663
  value: function () {
2655
2664
  var _handleCheckIn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee33(params) {
2665
+ var _this$store$order5, _this$store$order5$ge, _this$store$order6, _ref20, _tempOrder$order_id2;
2666
+ var voucherIds, voucherIdSet, tempOrder, vouchers, batchMetadata, hasUpdatedVoucher, nextVouchers, identity, externalSaleNumber, orderId, orderLookup;
2656
2667
  return _regeneratorRuntime().wrap(function _callee33$(_context33) {
2657
2668
  while (1) switch (_context33.prev = _context33.next) {
2658
2669
  case 0:
2670
+ this.logger.addLog({
2671
+ type: 'info',
2672
+ title: '[BookingTicket] handleCheckIn',
2673
+ metadata: {
2674
+ voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids],
2675
+ is_checkin: params.is_checkin
2676
+ }
2677
+ });
2678
+ voucherIds = Array.isArray(params.voucher_ids) ? params.voucher_ids : [];
2679
+ voucherIdSet = new Set(voucherIds);
2680
+ tempOrder = (_this$store$order5 = this.store.order) === null || _this$store$order5 === void 0 || (_this$store$order5$ge = _this$store$order5.getTempOrder) === null || _this$store$order5$ge === void 0 ? void 0 : _this$store$order5$ge.call(_this$store$order5);
2681
+ vouchers = (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.vouchers) || ((_this$store$order6 = this.store.order) === null || _this$store$order6 === void 0 ? void 0 : _this$store$order6.getVouchers()) || [];
2682
+ batchMetadata = [];
2683
+ hasUpdatedVoucher = false;
2684
+ nextVouchers = vouchers.map(function (voucher) {
2685
+ var _voucher$metadata;
2686
+ if (!voucherIdSet.has(voucher.voucher_id)) return voucher;
2687
+ hasUpdatedVoucher = true;
2688
+ var metadata = _objectSpread(_objectSpread({}, voucher.metadata || {}), {}, {
2689
+ ticket: _objectSpread(_objectSpread({}, ((_voucher$metadata = voucher.metadata) === null || _voucher$metadata === void 0 ? void 0 : _voucher$metadata.ticket) || {}), {}, {
2690
+ is_checkin: params.is_checkin
2691
+ })
2692
+ });
2693
+ batchMetadata.push({
2694
+ voucher_id: voucher.voucher_id,
2695
+ metadata: metadata
2696
+ });
2697
+ return _objectSpread(_objectSpread({}, voucher), {}, {
2698
+ metadata: metadata
2699
+ });
2700
+ });
2701
+ if (!(tempOrder && hasUpdatedVoucher)) {
2702
+ _context33.next = 11;
2703
+ break;
2704
+ }
2705
+ _context33.next = 11;
2706
+ return this.replaceTempOrder(_objectSpread(_objectSpread({}, tempOrder), {}, {
2707
+ vouchers: nextVouchers
2708
+ }));
2709
+ case 11:
2710
+ if (!(batchMetadata.length === 0)) {
2711
+ _context33.next = 13;
2712
+ break;
2713
+ }
2714
+ return _context33.abrupt("return", {
2715
+ code: 200,
2716
+ status: true,
2717
+ message: '',
2718
+ data: []
2719
+ });
2720
+ case 13:
2721
+ identity = this.getOrderIdentity();
2722
+ externalSaleNumber = (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.external_sale_number) || (identity === null || identity === void 0 ? void 0 : identity.externalSaleNumber) || undefined;
2723
+ orderId = (_ref20 = (_tempOrder$order_id2 = tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.order_id) !== null && _tempOrder$order_id2 !== void 0 ? _tempOrder$order_id2 : identity === null || identity === void 0 ? void 0 : identity.orderId) !== null && _ref20 !== void 0 ? _ref20 : undefined;
2724
+ orderLookup = externalSaleNumber || orderId || (identity === null || identity === void 0 ? void 0 : identity.orderNumber) || (identity === null || identity === void 0 ? void 0 : identity.shopOrderNumber) || (identity === null || identity === void 0 ? void 0 : identity.shopFullOrderNumber) || undefined;
2725
+ return _context33.abrupt("return", this.request.post('/machinecode/batch-metadata', {
2726
+ data: batchMetadata,
2727
+ order_lookup: orderLookup,
2728
+ order_id: orderId,
2729
+ external_sale_number: externalSaleNumber
2730
+ }, {
2731
+ osServer: true
2732
+ }));
2733
+ case 18:
2659
2734
  case "end":
2660
2735
  return _context33.stop();
2661
2736
  }
2662
- }, _callee33);
2737
+ }, _callee33, this);
2663
2738
  }));
2664
2739
  function handleCheckIn(_x24) {
2665
2740
  return _handleCheckIn.apply(this, arguments);
@@ -524,5 +524,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
524
524
  private normalizeHydratedOrderProduct;
525
525
  getLastOrderInfo(): Record<string, any> | undefined;
526
526
  getOrderInfo(order_id: number): Promise<any>;
527
+ getVouchers(): any[];
527
528
  }
528
529
  export type { UpdateOrderBookingParams, UpdateOrderProductParams, UpdateOrderProductQuantityParams, } from './types';
@@ -4176,6 +4176,10 @@ var OrderModule = class extends import_BaseModule.BaseModule {
4176
4176
  });
4177
4177
  return res;
4178
4178
  }
4179
+ getVouchers() {
4180
+ var _a;
4181
+ return ((_a = this.store.tempOrder) == null ? void 0 : _a.vouchers) || [];
4182
+ }
4179
4183
  };
4180
4184
  // Annotate the CommonJS export names for ESM import in node:
4181
4185
  0 && (module.exports = {
@@ -431,6 +431,9 @@ declare class Server {
431
431
  private shouldLookupLocalPrintOrder;
432
432
  private getLocalPrintOrderLookup;
433
433
  private handleLocalPrintOrder;
434
+ private handleMachinecodeBatchMetadata;
435
+ private resolveMachinecodeBatchMetadataLookup;
436
+ private syncMachinecodeBatchMetadataToLocalOrder;
434
437
  private handleOrderCheckoutSubmit;
435
438
  private handleSyncCheckoutSubmit;
436
439
  private handlePendingSyncCheckoutOrder;
@@ -639,7 +639,8 @@ var Server = class {
639
639
  checkoutData,
640
640
  order: printableOrder,
641
641
  response: null,
642
- requireFullyPaid: false
642
+ requireFullyPaid: false,
643
+ isManualPrint: true
643
644
  });
644
645
  return {
645
646
  code: 200,
@@ -661,6 +662,86 @@ var Server = class {
661
662
  };
662
663
  }
663
664
  };
665
+ this.handleMachinecodeBatchMetadata = async ({ data }) => {
666
+ var _a, _b;
667
+ const title = "handleMachinecodeBatchMetadata";
668
+ const backendPath = "/shop/machinecode/batch-metadata";
669
+ const batchMetadata = Array.isArray(data == null ? void 0 : data.data) ? data.data : [];
670
+ this.logInfo(`${title}: 开始处理`, {
671
+ backendPath,
672
+ batchSize: batchMetadata.length,
673
+ order_lookup: this.resolveMachinecodeBatchMetadataLookup(data) ?? null
674
+ });
675
+ if (batchMetadata.length === 0) {
676
+ return {
677
+ code: 200,
678
+ status: true,
679
+ message: "",
680
+ data: []
681
+ };
682
+ }
683
+ try {
684
+ await this.syncMachinecodeBatchMetadataToLocalOrder(data, batchMetadata);
685
+ } catch (error) {
686
+ const message = this.getUnknownErrorMessage(error);
687
+ this.logError(`${title}: 本地订单 metadata 更新失败`, {
688
+ error: message,
689
+ error_detail: this.normalizeUnknownError(error)
690
+ });
691
+ return {
692
+ code: 500,
693
+ status: false,
694
+ message,
695
+ data: null
696
+ };
697
+ }
698
+ if (!((_b = (_a = this.app) == null ? void 0 : _a.request) == null ? void 0 : _b.post)) {
699
+ this.logError(`${title}: app.request 不可用`, { backendPath });
700
+ return {
701
+ code: 500,
702
+ status: false,
703
+ message: "app.request 不可用",
704
+ data: null
705
+ };
706
+ }
707
+ try {
708
+ const response = await this.app.request.post(backendPath, {
709
+ data: batchMetadata
710
+ }, {
711
+ isShopApi: true,
712
+ customToast: () => {
713
+ }
714
+ });
715
+ return {
716
+ code: (response == null ? void 0 : response.code) ?? 200,
717
+ status: (response == null ? void 0 : response.status) ?? true,
718
+ message: (response == null ? void 0 : response.message) ?? "",
719
+ data: (response == null ? void 0 : response.data) ?? response
720
+ };
721
+ } catch (error) {
722
+ const backendError = this.extractBackendErrorResponse(error);
723
+ if (backendError) {
724
+ return {
725
+ code: backendError.code ?? 500,
726
+ status: backendError.status ?? false,
727
+ message: backendError.message ?? "后端拒绝 batch-metadata",
728
+ data: backendError.data ?? null
729
+ };
730
+ }
731
+ const message = this.getUnknownErrorMessage(error);
732
+ this.logError(`${title}: 请求失败`, {
733
+ backendPath,
734
+ error: message,
735
+ error_detail: this.normalizeUnknownError(error)
736
+ });
737
+ return {
738
+ code: 500,
739
+ status: false,
740
+ message,
741
+ data: null
742
+ };
743
+ }
744
+ };
664
745
  this.handleOrderSalesDetail = async ({ url, data, path }) => {
665
746
  var _a;
666
747
  const requestPath = this.parseRequestPath(url, path);
@@ -1743,6 +1824,16 @@ var Server = class {
1743
1824
  method: "post",
1744
1825
  path: "/shop/local/print-order",
1745
1826
  handler: this.handleLocalPrintOrder.bind(this)
1827
+ },
1828
+ {
1829
+ method: "post",
1830
+ path: "/shop/machinecode/batch-metadata",
1831
+ handler: this.handleMachinecodeBatchMetadata.bind(this)
1832
+ },
1833
+ {
1834
+ method: "post",
1835
+ path: "/machinecode/batch-metadata",
1836
+ handler: this.handleMachinecodeBatchMetadata.bind(this)
1746
1837
  }
1747
1838
  ]);
1748
1839
  this.registerPrefixRoutes([
@@ -2656,7 +2747,7 @@ var Server = class {
2656
2747
  action: "print_all",
2657
2748
  device_id: params.deviceId ?? deviceId,
2658
2749
  payload: {
2659
- type: "99",
2750
+ type: params.isManualPrint ? "0" : "99",
2660
2751
  data: params.receiptOnly ? {
2661
2752
  order_id: printIdentity,
2662
2753
  small_ticket_data: (_b = (_a = params.syncedOrder) == null ? void 0 : _a.payment_info) == null ? void 0 : _b.small_ticket_data,
@@ -2712,7 +2803,8 @@ var Server = class {
2712
2803
  checkoutData: params.checkoutData,
2713
2804
  syncedOrder: printableOrder,
2714
2805
  response: params.response,
2715
- receiptOnly: true
2806
+ receiptOnly: true,
2807
+ isManualPrint: params.isManualPrint
2716
2808
  });
2717
2809
  return { printed: true, order: printableOrder };
2718
2810
  }
@@ -2730,6 +2822,107 @@ var Server = class {
2730
2822
  }
2731
2823
  return void 0;
2732
2824
  }
2825
+ resolveMachinecodeBatchMetadataLookup(data) {
2826
+ const candidates = [
2827
+ data == null ? void 0 : data.order_lookup,
2828
+ data == null ? void 0 : data.orderLookup,
2829
+ data == null ? void 0 : data.external_sale_number,
2830
+ data == null ? void 0 : data.externalSaleNumber,
2831
+ data == null ? void 0 : data.order_id,
2832
+ data == null ? void 0 : data.orderId,
2833
+ data == null ? void 0 : data.order_number,
2834
+ data == null ? void 0 : data.orderNumber,
2835
+ data == null ? void 0 : data.shop_order_number,
2836
+ data == null ? void 0 : data.shopOrderNumber,
2837
+ data == null ? void 0 : data.shop_full_order_number,
2838
+ data == null ? void 0 : data.shopFullOrderNumber
2839
+ ];
2840
+ return candidates.find((candidate) => candidate !== void 0 && candidate !== null && candidate !== "");
2841
+ }
2842
+ async syncMachinecodeBatchMetadataToLocalOrder(data, batchMetadata) {
2843
+ var _a;
2844
+ const title = "handleMachinecodeBatchMetadata";
2845
+ const lookup = this.resolveMachinecodeBatchMetadataLookup(data);
2846
+ if (lookup === void 0) {
2847
+ this.logWarning(`${title}: order lookup 缺失,跳过本地订单 metadata 更新`, {
2848
+ batchSize: batchMetadata.length
2849
+ });
2850
+ return;
2851
+ }
2852
+ if (!((_a = this.order) == null ? void 0 : _a.getLocalOrderByLookup)) {
2853
+ this.logWarning(`${title}: Order 模块未注册,跳过本地订单 metadata 更新`, {
2854
+ lookup
2855
+ });
2856
+ return;
2857
+ }
2858
+ const localOrder = await this.order.getLocalOrderByLookup(lookup);
2859
+ if (!localOrder) {
2860
+ this.logWarning(`${title}: 本地订单不存在,跳过 metadata 更新`, {
2861
+ lookup
2862
+ });
2863
+ return;
2864
+ }
2865
+ const metadataByVoucherId = /* @__PURE__ */ new Map();
2866
+ for (const item of batchMetadata) {
2867
+ const voucherId = (item == null ? void 0 : item.voucher_id) ?? (item == null ? void 0 : item.voucherId);
2868
+ if (voucherId === void 0 || voucherId === null || voucherId === "")
2869
+ continue;
2870
+ metadataByVoucherId.set(String(voucherId), (item == null ? void 0 : item.metadata) || {});
2871
+ }
2872
+ if (metadataByVoucherId.size === 0) {
2873
+ this.logWarning(`${title}: voucher metadata 缺失,跳过本地订单 metadata 更新`, {
2874
+ lookup
2875
+ });
2876
+ return;
2877
+ }
2878
+ const vouchers = Array.isArray(localOrder.vouchers) ? localOrder.vouchers : [];
2879
+ let hasUpdatedVoucher = false;
2880
+ const nextVouchers = vouchers.map((voucher) => {
2881
+ const voucherId = voucher == null ? void 0 : voucher.voucher_id;
2882
+ if (voucherId === void 0 || voucherId === null)
2883
+ return voucher;
2884
+ const metadata = metadataByVoucherId.get(String(voucherId));
2885
+ if (!metadata)
2886
+ return voucher;
2887
+ hasUpdatedVoucher = true;
2888
+ return {
2889
+ ...voucher,
2890
+ metadata
2891
+ };
2892
+ });
2893
+ if (!hasUpdatedVoucher) {
2894
+ this.logWarning(`${title}: 本地订单未命中任何 voucher,跳过 metadata 更新`, {
2895
+ lookup,
2896
+ voucher_ids: Array.from(metadataByVoucherId.keys())
2897
+ });
2898
+ return;
2899
+ }
2900
+ if (typeof this.order.overwriteExistingOrder === "function") {
2901
+ await this.order.overwriteExistingOrder({
2902
+ ...localOrder,
2903
+ vouchers: nextVouchers
2904
+ });
2905
+ this.logInfo(`${title}: 本地订单 vouchers metadata 已更新`, {
2906
+ lookup,
2907
+ updatedCount: metadataByVoucherId.size
2908
+ });
2909
+ return;
2910
+ }
2911
+ if ((data == null ? void 0 : data.external_sale_number) && typeof this.order.markOrderSyncedByExternalSaleNumber === "function") {
2912
+ await this.order.markOrderSyncedByExternalSaleNumber({
2913
+ externalSaleNumber: data.external_sale_number,
2914
+ patch: { vouchers: nextVouchers }
2915
+ });
2916
+ this.logInfo(`${title}: 本地订单 vouchers metadata 已更新`, {
2917
+ lookup,
2918
+ updatedCount: metadataByVoucherId.size
2919
+ });
2920
+ return;
2921
+ }
2922
+ this.logWarning(`${title}: Order 模块不支持本地订单覆盖,跳过 metadata 更新`, {
2923
+ lookup
2924
+ });
2925
+ }
2733
2926
  async handleOrderCheckoutSubmit(params) {
2734
2927
  const { backendPath, data, title } = params;
2735
2928
  this.logInfo(`${title}: 开始处理`, {
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 2 | 1 | 6 | 3 | 4 | 5;
314
+ weekNum: 0 | 1 | 2 | 6 | 3 | 4 | 5;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -557,7 +557,8 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
557
557
  }): Promise<void>;
558
558
  handleCheckIn(params: {
559
559
  voucher_ids: number[];
560
- }): Promise<void>;
560
+ is_checkin: boolean;
561
+ }): Promise<any>;
561
562
  /**
562
563
  * 销毁模块:先调用父类(销毁所有 store 内子模块 + emit destroy + super.destroy()),
563
564
  * 再清理 BookingTicket 自有资源(scan 监听 + scan 内存缓存)。
@@ -1513,6 +1513,7 @@ var BookingTicketImpl = class extends import_BaseSales.BaseSalesImpl {
1513
1513
  }
1514
1514
  // 打印手环,单个或批量都可以
1515
1515
  async handlePrintWristband(params) {
1516
+ var _a;
1516
1517
  const deviceTask = this.getDeviceTaskPlugin();
1517
1518
  if (!(deviceTask == null ? void 0 : deviceTask.dispatch)) {
1518
1519
  this.logger.addLog({
@@ -1524,26 +1525,96 @@ var BookingTicketImpl = class extends import_BaseSales.BaseSalesImpl {
1524
1525
  });
1525
1526
  return;
1526
1527
  }
1528
+ this.logger.addLog({
1529
+ type: "info",
1530
+ title: "[BookingTicket] handlePrintWristband",
1531
+ metadata: {
1532
+ voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
1533
+ }
1534
+ });
1527
1535
  const deviceId = await this.getShortNumberOrDeviceId();
1536
+ const idempotencyKey = (0, import_utils.createUuidV4)();
1528
1537
  deviceTask.dispatch({
1529
- action: "print_v1",
1538
+ action: "print_all",
1530
1539
  device_id: deviceId,
1531
1540
  payload: {
1532
1541
  type: "WRISTBAND",
1533
1542
  data: {
1534
- order_id: this.getOrderIdentity(),
1543
+ order_id: (_a = this.getOrderIdentity()) == null ? void 0 : _a.orderId,
1535
1544
  voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
1536
1545
  }
1537
1546
  },
1538
- idempotency_key: (0, import_utils.createUuidV4)(),
1539
- name: "PRINT_V1",
1540
- source: "server",
1541
- source_type: "order",
1542
- source_id: (0, import_utils.createUuidV4)()
1547
+ idempotency_key: idempotencyKey,
1548
+ name: "PRINT_WRISTBAND",
1549
+ source: "bookingTicket",
1550
+ source_type: "handlePrintWristband",
1551
+ source_id: idempotencyKey
1543
1552
  });
1544
1553
  }
1545
1554
  // 触发 checkIn
1546
1555
  async handleCheckIn(params) {
1556
+ var _a, _b, _c;
1557
+ this.logger.addLog({
1558
+ type: "info",
1559
+ title: "[BookingTicket] handleCheckIn",
1560
+ metadata: {
1561
+ voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids],
1562
+ is_checkin: params.is_checkin
1563
+ }
1564
+ });
1565
+ const voucherIds = Array.isArray(params.voucher_ids) ? params.voucher_ids : [];
1566
+ const voucherIdSet = new Set(voucherIds);
1567
+ const tempOrder = (_b = (_a = this.store.order) == null ? void 0 : _a.getTempOrder) == null ? void 0 : _b.call(_a);
1568
+ const vouchers = (tempOrder == null ? void 0 : tempOrder.vouchers) || ((_c = this.store.order) == null ? void 0 : _c.getVouchers()) || [];
1569
+ const batchMetadata = [];
1570
+ let hasUpdatedVoucher = false;
1571
+ const nextVouchers = vouchers.map((voucher) => {
1572
+ var _a2;
1573
+ if (!voucherIdSet.has(voucher.voucher_id))
1574
+ return voucher;
1575
+ hasUpdatedVoucher = true;
1576
+ const metadata = {
1577
+ ...voucher.metadata || {},
1578
+ ticket: {
1579
+ ...((_a2 = voucher.metadata) == null ? void 0 : _a2.ticket) || {},
1580
+ is_checkin: params.is_checkin
1581
+ }
1582
+ };
1583
+ batchMetadata.push({
1584
+ voucher_id: voucher.voucher_id,
1585
+ metadata
1586
+ });
1587
+ return {
1588
+ ...voucher,
1589
+ metadata
1590
+ };
1591
+ });
1592
+ if (tempOrder && hasUpdatedVoucher) {
1593
+ await this.replaceTempOrder({
1594
+ ...tempOrder,
1595
+ vouchers: nextVouchers
1596
+ });
1597
+ }
1598
+ if (batchMetadata.length === 0) {
1599
+ return {
1600
+ code: 200,
1601
+ status: true,
1602
+ message: "",
1603
+ data: []
1604
+ };
1605
+ }
1606
+ const identity = this.getOrderIdentity();
1607
+ const externalSaleNumber = (tempOrder == null ? void 0 : tempOrder.external_sale_number) || (identity == null ? void 0 : identity.externalSaleNumber) || void 0;
1608
+ const orderId = (tempOrder == null ? void 0 : tempOrder.order_id) ?? (identity == null ? void 0 : identity.orderId) ?? void 0;
1609
+ const orderLookup = externalSaleNumber || orderId || (identity == null ? void 0 : identity.orderNumber) || (identity == null ? void 0 : identity.shopOrderNumber) || (identity == null ? void 0 : identity.shopFullOrderNumber) || void 0;
1610
+ return this.request.post("/machinecode/batch-metadata", {
1611
+ data: batchMetadata,
1612
+ order_lookup: orderLookup,
1613
+ order_id: orderId,
1614
+ external_sale_number: externalSaleNumber
1615
+ }, {
1616
+ osServer: true
1617
+ });
1547
1618
  }
1548
1619
  /**
1549
1620
  * 销毁模块:先调用父类(销毁所有 store 内子模块 + emit destroy + super.destroy()),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "2.3.11",
4
+ "version": "2.3.13",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",