@pisell/pisellos 2.3.12 → 2.3.14

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 | 5 | 1 | 2 | 3 | 6 | 4;
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,6 +2600,7 @@ 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 _this$getOrderIdentit;
2603
2604
  var deviceTask, deviceId, idempotencyKey;
2604
2605
  return _regeneratorRuntime().wrap(function _callee32$(_context32) {
2605
2606
  while (1) switch (_context32.prev = _context32.next) {
@@ -2618,9 +2619,16 @@ 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;
2625
2633
  idempotencyKey = createUuidV4();
2626
2634
  deviceTask.dispatch({
@@ -2629,17 +2637,17 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2629
2637
  payload: {
2630
2638
  type: 'WRISTBAND',
2631
2639
  data: {
2632
- order_id: this.getOrderIdentity(),
2640
+ order_id: (_this$getOrderIdentit = this.getOrderIdentity()) === null || _this$getOrderIdentit === void 0 ? void 0 : _this$getOrderIdentit.orderId,
2633
2641
  voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
2634
2642
  }
2635
2643
  },
2636
2644
  idempotency_key: idempotencyKey,
2637
- name: 'PRINT_V1',
2645
+ name: 'PRINT_WRISTBAND',
2638
2646
  source: 'bookingTicket',
2639
2647
  source_type: 'handlePrintWristband',
2640
2648
  source_id: idempotencyKey
2641
2649
  });
2642
- case 9:
2650
+ case 10:
2643
2651
  case "end":
2644
2652
  return _context32.stop();
2645
2653
  }
@@ -2654,15 +2662,76 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
2654
2662
  key: "handleCheckIn",
2655
2663
  value: function () {
2656
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;
2657
2667
  return _regeneratorRuntime().wrap(function _callee33$(_context33) {
2658
2668
  while (1) switch (_context33.prev = _context33.next) {
2659
2669
  case 0:
2660
- // 优先修改 tempOrder 中 vouchers 的是否 checkIn 字段(需要同步数据库)
2661
- // 然后触发 checkIn 接口
2662
- this.request.post('/shop/machinecode/batch-metadata', {
2663
- voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
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
+ }
2664
2677
  });
2665
- case 1:
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
+ this.core.effects.emit("".concat(this.name, ":onVouchersChange"), {});
2711
+ if (!(batchMetadata.length === 0)) {
2712
+ _context33.next = 14;
2713
+ break;
2714
+ }
2715
+ return _context33.abrupt("return", {
2716
+ code: 200,
2717
+ status: true,
2718
+ message: '',
2719
+ data: []
2720
+ });
2721
+ case 14:
2722
+ identity = this.getOrderIdentity();
2723
+ externalSaleNumber = (tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.external_sale_number) || (identity === null || identity === void 0 ? void 0 : identity.externalSaleNumber) || undefined;
2724
+ 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;
2725
+ 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;
2726
+ return _context33.abrupt("return", this.request.post('/machinecode/batch-metadata', {
2727
+ data: batchMetadata,
2728
+ order_lookup: orderLookup,
2729
+ order_id: orderId,
2730
+ external_sale_number: externalSaleNumber
2731
+ }, {
2732
+ osServer: true
2733
+ }));
2734
+ case 19:
2666
2735
  case "end":
2667
2736
  return _context33.stop();
2668
2737
  }
@@ -1,49 +0,0 @@
1
- var __create = Object.create;
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);
28
-
29
- // src/model/strategy/adapter/promotion/index.ts
30
- var promotion_exports = {};
31
- __export(promotion_exports, {
32
- BUY_X_GET_Y_FREE_STRATEGY: () => import_examples.BUY_X_GET_Y_FREE_STRATEGY,
33
- PromotionAdapter: () => import_adapter.PromotionAdapter,
34
- PromotionEvaluator: () => import_evaluator.PromotionEvaluator,
35
- X_ITEMS_FOR_Y_PRICE_STRATEGY: () => import_examples.X_ITEMS_FOR_Y_PRICE_STRATEGY,
36
- default: () => import_adapter2.default
37
- });
38
- module.exports = __toCommonJS(promotion_exports);
39
- var import_evaluator = require("./evaluator");
40
- var import_adapter = require("./adapter");
41
- var import_adapter2 = __toESM(require("./adapter"));
42
- var import_examples = require("./examples");
43
- // Annotate the CommonJS export names for ESM import in node:
44
- 0 && (module.exports = {
45
- BUY_X_GET_Y_FREE_STRATEGY,
46
- PromotionAdapter,
47
- PromotionEvaluator,
48
- X_ITEMS_FOR_Y_PRICE_STRATEGY
49
- });
@@ -458,7 +458,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
458
458
  generateIdempotencyToken(): string;
459
459
  syncPaymentsToOrder<T = any>(params: SyncPaymentsToOrderParams): Promise<SyncPaymentsToOrderResult<T>>;
460
460
  createOrder(params: CommitOrderParams['query']): {
461
- type: "virtual" | "appointment_booking";
461
+ type: "appointment_booking" | "virtual";
462
462
  platform: string;
463
463
  sales_channel: string;
464
464
  order_sales_channel: string;
@@ -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;
@@ -662,6 +662,86 @@ var Server = class {
662
662
  };
663
663
  }
664
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
+ };
665
745
  this.handleOrderSalesDetail = async ({ url, data, path }) => {
666
746
  var _a;
667
747
  const requestPath = this.parseRequestPath(url, path);
@@ -1744,6 +1824,16 @@ var Server = class {
1744
1824
  method: "post",
1745
1825
  path: "/shop/local/print-order",
1746
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)
1747
1837
  }
1748
1838
  ]);
1749
1839
  this.registerPrefixRoutes([
@@ -2732,6 +2822,107 @@ var Server = class {
2732
2822
  }
2733
2823
  return void 0;
2734
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
+ }
2735
2926
  async handleOrderCheckoutSubmit(params) {
2736
2927
  const { backendPath, data, title } = params;
2737
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 | 5 | 1 | 2 | 3 | 6 | 4;
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,6 +1525,13 @@ 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();
1528
1536
  const idempotencyKey = (0, import_utils.createUuidV4)();
1529
1537
  deviceTask.dispatch({
@@ -1532,12 +1540,12 @@ var BookingTicketImpl = class extends import_BaseSales.BaseSalesImpl {
1532
1540
  payload: {
1533
1541
  type: "WRISTBAND",
1534
1542
  data: {
1535
- order_id: this.getOrderIdentity(),
1543
+ order_id: (_a = this.getOrderIdentity()) == null ? void 0 : _a.orderId,
1536
1544
  voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
1537
1545
  }
1538
1546
  },
1539
1547
  idempotency_key: idempotencyKey,
1540
- name: "PRINT_V1",
1548
+ name: "PRINT_WRISTBAND",
1541
1549
  source: "bookingTicket",
1542
1550
  source_type: "handlePrintWristband",
1543
1551
  source_id: idempotencyKey
@@ -1545,8 +1553,68 @@ var BookingTicketImpl = class extends import_BaseSales.BaseSalesImpl {
1545
1553
  }
1546
1554
  // 触发 checkIn
1547
1555
  async handleCheckIn(params) {
1548
- this.request.post("/shop/machinecode/batch-metadata", {
1549
- voucher_ids: Array.isArray(params.voucher_ids) ? params.voucher_ids : [params.voucher_ids]
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
+ this.core.effects.emit(`${this.name}:onVouchersChange`, {});
1599
+ if (batchMetadata.length === 0) {
1600
+ return {
1601
+ code: 200,
1602
+ status: true,
1603
+ message: "",
1604
+ data: []
1605
+ };
1606
+ }
1607
+ const identity = this.getOrderIdentity();
1608
+ const externalSaleNumber = (tempOrder == null ? void 0 : tempOrder.external_sale_number) || (identity == null ? void 0 : identity.externalSaleNumber) || void 0;
1609
+ const orderId = (tempOrder == null ? void 0 : tempOrder.order_id) ?? (identity == null ? void 0 : identity.orderId) ?? void 0;
1610
+ const orderLookup = externalSaleNumber || orderId || (identity == null ? void 0 : identity.orderNumber) || (identity == null ? void 0 : identity.shopOrderNumber) || (identity == null ? void 0 : identity.shopFullOrderNumber) || void 0;
1611
+ return this.request.post("/machinecode/batch-metadata", {
1612
+ data: batchMetadata,
1613
+ order_lookup: orderLookup,
1614
+ order_id: orderId,
1615
+ external_sale_number: externalSaleNumber
1616
+ }, {
1617
+ osServer: true
1550
1618
  });
1551
1619
  }
1552
1620
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "2.3.12",
4
+ "version": "2.3.14",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",