@pisell/pisellos 2.1.41 → 2.1.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.
@@ -634,7 +634,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
634
634
  case 0:
635
635
  _context6.prev = 0;
636
636
  _context6.next = 3;
637
- return this.dbManager.get('order', orderUuid);
637
+ return this.dbManager.get('order', orderUuid, true);
638
638
  case 3:
639
639
  return _context6.abrupt("return", _context6.sent);
640
640
  case 6:
@@ -723,7 +723,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
723
723
  }; // 🚀 性能监控:记录数据库添加操作耗时
724
724
  dbAddStartTime = Date.now();
725
725
  _context7.next = 6;
726
- return this.dbManager.add('order', newOrder);
726
+ return this.dbManager.add('order', newOrder, true);
727
727
  case 6:
728
728
  dbAddDuration = Date.now() - dbAddStartTime;
729
729
  this.logInfo('Database add operation completed', {
@@ -1054,7 +1054,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1054
1054
  key: "addPaymentItemAsync",
1055
1055
  value: (function () {
1056
1056
  var _addPaymentItemAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(orderUuid, paymentItem) {
1057
- var _newPaymentItem$metad, _newPaymentItem$metad2, _newPaymentItem$metad3, order, expectAmount, paidDepositAmount, expectedDepositAmount, warningMessage, paymentUuid, newPaymentItem;
1057
+ var _paymentItem$metadata, _newPaymentItem$metad, _newPaymentItem$metad2, _newPaymentItem$metad3, order, expectAmount, paidDepositAmount, expectedDepositAmount, warningMessage, paymentUuid, newPaymentItem;
1058
1058
  return _regeneratorRuntime().wrap(function _callee13$(_context13) {
1059
1059
  while (1) switch (_context13.prev = _context13.next) {
1060
1060
  case 0:
@@ -1065,16 +1065,23 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1065
1065
  orderPaymentType: paymentItem.order_payment_type
1066
1066
  });
1067
1067
  _context13.prev = 1;
1068
- _context13.next = 4;
1068
+ this.logInfo('准备获取订单', {
1069
+ orderUuid: orderUuid
1070
+ });
1071
+ _context13.next = 5;
1069
1072
  return this.getPaymentOrderByUuidAsync(orderUuid);
1070
- case 4:
1073
+ case 5:
1071
1074
  order = _context13.sent;
1075
+ this.logInfo('获取订单信息成功', {
1076
+ orderUuid: orderUuid,
1077
+ order: order
1078
+ });
1072
1079
  if (order) {
1073
- _context13.next = 7;
1080
+ _context13.next = 9;
1074
1081
  break;
1075
1082
  }
1076
1083
  throw new Error("Order not found: ".concat(orderUuid));
1077
- case 7:
1084
+ case 9:
1078
1085
  // 🔒 支付锁检查:如果订单待付金额已经为0,不允许继续添加支付项
1079
1086
  expectAmount = new Decimal(order.expect_amount);
1080
1087
  paidDepositAmount = order.payment.reduce(function (sum, payment) {
@@ -1085,7 +1092,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1085
1092
  }, new Decimal(0));
1086
1093
  expectedDepositAmount = new Decimal(order.deposit_amount || '0').sub(paidDepositAmount); // 有一种特殊情况,订单金额为 0,但是定金金额>0,且此时是定金状态的,允许添加支付项
1087
1094
  if (!(expectAmount.lte(0) && expectedDepositAmount.eq(0))) {
1088
- _context13.next = 15;
1095
+ _context13.next = 17;
1089
1096
  break;
1090
1097
  }
1091
1098
  warningMessage = "\u8BA2\u5355 ".concat(orderUuid, " \u5F85\u4ED8\u91D1\u989D\u5DF2\u4E3A0\uFF0C\u4E0D\u5141\u8BB8\u6DFB\u52A0\u65B0\u7684\u652F\u4ED8\u9879");
@@ -1102,8 +1109,12 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1102
1109
  paymentItem: paymentItem
1103
1110
  });
1104
1111
  throw new Error(warningMessage);
1105
- case 15:
1106
- paymentUuid = getUniqueId('payment_');
1112
+ case 17:
1113
+ if ((_paymentItem$metadata = paymentItem.metadata) !== null && _paymentItem$metadata !== void 0 && _paymentItem$metadata.unique_payment_number) {
1114
+ paymentUuid = paymentItem.metadata.unique_payment_number;
1115
+ } else {
1116
+ paymentUuid = getUniqueId('payment_');
1117
+ }
1107
1118
  newPaymentItem = {
1108
1119
  uuid: paymentUuid,
1109
1120
  id: paymentItem.id || 0,
@@ -1125,15 +1136,20 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1125
1136
  };
1126
1137
  order.payment.push(newPaymentItem);
1127
1138
  this.recalculateOrderAmount(order);
1128
- _context13.next = 21;
1129
- return this.dbManager.update('order', order);
1130
- case 21:
1131
- _context13.next = 23;
1132
- return this.core.effects.emit("".concat(this.name, ":onPaymentAdded"), {
1139
+ this.logInfo('开始更新订单支付项', {
1140
+ orderUuid: orderUuid,
1141
+ order: order
1142
+ });
1143
+ _context13.next = 24;
1144
+ return this.dbManager.update('order', order, true);
1145
+ case 24:
1146
+ this.logInfo('更新订单支付项完成', {
1147
+ orderUuid: orderUuid
1148
+ });
1149
+ this.core.effects.emit("".concat(this.name, ":onPaymentAdded"), {
1133
1150
  orderUuid: orderUuid,
1134
1151
  payment: newPaymentItem
1135
1152
  });
1136
- case 23:
1137
1153
  this.logInfo('addPaymentItemAsync completed successfully', {
1138
1154
  orderUuid: orderUuid,
1139
1155
  paymentUuid: newPaymentItem.uuid,
@@ -1147,10 +1163,10 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1147
1163
  actualPaidAmount: (_newPaymentItem$metad2 = newPaymentItem.metadata) === null || _newPaymentItem$metad2 === void 0 ? void 0 : _newPaymentItem$metad2.actual_paid_amount,
1148
1164
  changeGivenAmount: (_newPaymentItem$metad3 = newPaymentItem.metadata) === null || _newPaymentItem$metad3 === void 0 ? void 0 : _newPaymentItem$metad3.change_given_amount
1149
1165
  });
1150
- _context13.next = 31;
1166
+ _context13.next = 34;
1151
1167
  break;
1152
- case 26:
1153
- _context13.prev = 26;
1168
+ case 29:
1169
+ _context13.prev = 29;
1154
1170
  _context13.t0 = _context13["catch"](1);
1155
1171
  console.error('[PaymentModule] 添加支付项失败', _context13.t0);
1156
1172
  this.logError('addPaymentItemAsync failed', _context13.t0, {
@@ -1158,11 +1174,11 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1158
1174
  paymentItem: paymentItem
1159
1175
  });
1160
1176
  throw _context13.t0;
1161
- case 31:
1177
+ case 34:
1162
1178
  case "end":
1163
1179
  return _context13.stop();
1164
1180
  }
1165
- }, _callee13, this, [[1, 26]]);
1181
+ }, _callee13, this, [[1, 29]]);
1166
1182
  }));
1167
1183
  function addPaymentItemAsync(_x14, _x15) {
1168
1184
  return _addPaymentItemAsync.apply(this, arguments);
@@ -342,7 +342,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
342
342
  };
343
343
  setOtherData(key: string, value: any): void;
344
344
  getOtherData(key: string): any;
345
- getProductTypeById(id: number): Promise<"duration" | "session" | "normal">;
345
+ getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
346
346
  /**
347
347
  * 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
348
348
  *
@@ -24,8 +24,9 @@ export var formatDefaultCapacitys = function formatDefaultCapacitys(_ref) {
24
24
  if ((capacity === null || capacity === void 0 ? void 0 : capacity.type) === 'package') {
25
25
  return (product_bundle || []).map(function (d) {
26
26
  var id = d.bundle_product_id;
27
+ var variantId = d.bundle_variant_id;
27
28
  var item = ((capacity === null || capacity === void 0 ? void 0 : capacity.package) || []).find(function (item) {
28
- return item.product_id === id;
29
+ return item.product_id === id || item.product_id === variantId;
29
30
  });
30
31
  return {
31
32
  id: id,
@@ -3191,8 +3191,11 @@ export var CheckoutImpl = /*#__PURE__*/function (_BaseModule) {
3191
3191
  depositPaidAmount = paymentItems.filter(function (item) {
3192
3192
  return item.order_payment_type === 'deposit' && item.status !== 'voided';
3193
3193
  }).reduce(function (sum, item) {
3194
- // 如果是 wallet,并且还没同步到后端,则不计入这一部分金额
3195
- if (item.voucher_id && !item.isSynced) {
3194
+ // 如果是 wallet,并且还没同步到后端,且此时还没有其他类型的支付项(现金,eftpos,标记支付),不计入已付金额
3195
+ // 如果有其他支付项了,代表此时处于马上要同步的状态,所以计入
3196
+ if (item.voucher_id && !item.isSynced && paymentItems.filter(function (item) {
3197
+ return !item.voucher_id;
3198
+ }).length === 0) {
3196
3199
  return sum;
3197
3200
  }
3198
3201
  var amount = new Decimal(item.amount || '0');
@@ -308,7 +308,7 @@ var PaymentModule = class extends import_BaseModule.BaseModule {
308
308
  */
309
309
  async getPaymentOrderByUuidAsync(orderUuid) {
310
310
  try {
311
- return await this.dbManager.get("order", orderUuid);
311
+ return await this.dbManager.get("order", orderUuid, true);
312
312
  } catch (error) {
313
313
  console.error("[PaymentModule] 获取支付订单失败", error);
314
314
  return null;
@@ -338,7 +338,7 @@ var PaymentModule = class extends import_BaseModule.BaseModule {
338
338
  deposit_amount: params.deposit_amount || "0.00"
339
339
  };
340
340
  const dbAddStartTime = Date.now();
341
- await this.dbManager.add("order", newOrder);
341
+ await this.dbManager.add("order", newOrder, true);
342
342
  const dbAddDuration = Date.now() - dbAddStartTime;
343
343
  this.logInfo("Database add operation completed", {
344
344
  operation: "dbManager.add",
@@ -502,7 +502,7 @@ var PaymentModule = class extends import_BaseModule.BaseModule {
502
502
  * 为某个订单添加支付项(新方法)
503
503
  */
504
504
  async addPaymentItemAsync(orderUuid, paymentItem) {
505
- var _a, _b, _c;
505
+ var _a, _b, _c, _d;
506
506
  this.logInfo("Starting addPaymentItemAsync", {
507
507
  orderUuid,
508
508
  paymentAmount: paymentItem.amount,
@@ -510,7 +510,14 @@ var PaymentModule = class extends import_BaseModule.BaseModule {
510
510
  orderPaymentType: paymentItem.order_payment_type
511
511
  });
512
512
  try {
513
+ this.logInfo("准备获取订单", {
514
+ orderUuid
515
+ });
513
516
  const order = await this.getPaymentOrderByUuidAsync(orderUuid);
517
+ this.logInfo("获取订单信息成功", {
518
+ orderUuid,
519
+ order
520
+ });
514
521
  if (!order) {
515
522
  throw new Error(`Order not found: ${orderUuid}`);
516
523
  }
@@ -538,7 +545,12 @@ var PaymentModule = class extends import_BaseModule.BaseModule {
538
545
  });
539
546
  throw new Error(warningMessage);
540
547
  }
541
- const paymentUuid = (0, import_utils.getUniqueId)("payment_");
548
+ let paymentUuid;
549
+ if ((_a = paymentItem.metadata) == null ? void 0 : _a.unique_payment_number) {
550
+ paymentUuid = paymentItem.metadata.unique_payment_number;
551
+ } else {
552
+ paymentUuid = (0, import_utils.getUniqueId)("payment_");
553
+ }
542
554
  const newPaymentItem = {
543
555
  uuid: paymentUuid,
544
556
  id: paymentItem.id || 0,
@@ -562,23 +574,30 @@ var PaymentModule = class extends import_BaseModule.BaseModule {
562
574
  };
563
575
  order.payment.push(newPaymentItem);
564
576
  this.recalculateOrderAmount(order);
565
- await this.dbManager.update("order", order);
566
- await this.core.effects.emit(`${this.name}:onPaymentAdded`, {
577
+ this.logInfo("开始更新订单支付项", {
578
+ orderUuid,
579
+ order
580
+ });
581
+ await this.dbManager.update("order", order, true);
582
+ this.logInfo("更新订单支付项完成", {
583
+ orderUuid
584
+ });
585
+ this.core.effects.emit(`${this.name}:onPaymentAdded`, {
567
586
  orderUuid,
568
587
  payment: newPaymentItem
569
588
  });
570
589
  this.logInfo("addPaymentItemAsync completed successfully", {
571
590
  orderUuid,
572
591
  paymentUuid: newPaymentItem.uuid,
573
- uniquePaymentNumber: (_a = newPaymentItem.metadata) == null ? void 0 : _a.unique_payment_number,
592
+ uniquePaymentNumber: (_b = newPaymentItem.metadata) == null ? void 0 : _b.unique_payment_number,
574
593
  newExpectAmount: order.expect_amount,
575
594
  paymentAmount: newPaymentItem.amount,
576
595
  paymentCode: newPaymentItem.code,
577
596
  orderPaymentType: newPaymentItem.order_payment_type,
578
597
  metadataFields: Object.keys(newPaymentItem.metadata || {}),
579
598
  // 现金支付找零信息
580
- actualPaidAmount: (_b = newPaymentItem.metadata) == null ? void 0 : _b.actual_paid_amount,
581
- changeGivenAmount: (_c = newPaymentItem.metadata) == null ? void 0 : _c.change_given_amount
599
+ actualPaidAmount: (_c = newPaymentItem.metadata) == null ? void 0 : _c.actual_paid_amount,
600
+ changeGivenAmount: (_d = newPaymentItem.metadata) == null ? void 0 : _d.change_given_amount
582
601
  });
583
602
  } catch (error) {
584
603
  console.error("[PaymentModule] 添加支付项失败", error);
@@ -342,7 +342,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
342
342
  };
343
343
  setOtherData(key: string, value: any): void;
344
344
  getOtherData(key: string): any;
345
- getProductTypeById(id: number): Promise<"duration" | "session" | "normal">;
345
+ getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
346
346
  /**
347
347
  * 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
348
348
  *
@@ -47,8 +47,9 @@ var formatDefaultCapacitys = ({
47
47
  if ((capacity == null ? void 0 : capacity.type) === "package") {
48
48
  return (product_bundle || []).map((d) => {
49
49
  const id = d.bundle_product_id;
50
+ const variantId = d.bundle_variant_id;
50
51
  const item = ((capacity == null ? void 0 : capacity.package) || []).find(
51
- (item2) => item2.product_id === id
52
+ (item2) => item2.product_id === id || item2.product_id === variantId
52
53
  );
53
54
  return {
54
55
  id,
@@ -1967,7 +1967,7 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
1967
1967
  const depositPaidAmount = paymentItems.filter(
1968
1968
  (item) => item.order_payment_type === "deposit" && item.status !== "voided"
1969
1969
  ).reduce((sum, item) => {
1970
- if (item.voucher_id && !item.isSynced) {
1970
+ if (item.voucher_id && !item.isSynced && paymentItems.filter((item2) => !item2.voucher_id).length === 0) {
1971
1971
  return sum;
1972
1972
  }
1973
1973
  const amount = new import_decimal.default(item.amount || "0");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "2.1.41",
4
+ "version": "2.1.43",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",