@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.
- package/dist/modules/Payment/index.js +37 -21
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/utils/capacity.js +2 -1
- package/dist/solution/Checkout/index.js +5 -2
- package/lib/modules/Payment/index.js +28 -9
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/utils/capacity.js +2 -1
- package/lib/solution/Checkout/index.js +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
1068
|
+
this.logInfo('准备获取订单', {
|
|
1069
|
+
orderUuid: orderUuid
|
|
1070
|
+
});
|
|
1071
|
+
_context13.next = 5;
|
|
1069
1072
|
return this.getPaymentOrderByUuidAsync(orderUuid);
|
|
1070
|
-
case
|
|
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 =
|
|
1080
|
+
_context13.next = 9;
|
|
1074
1081
|
break;
|
|
1075
1082
|
}
|
|
1076
1083
|
throw new Error("Order not found: ".concat(orderUuid));
|
|
1077
|
-
case
|
|
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 =
|
|
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
|
|
1106
|
-
|
|
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
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
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 =
|
|
1166
|
+
_context13.next = 34;
|
|
1151
1167
|
break;
|
|
1152
|
-
case
|
|
1153
|
-
_context13.prev =
|
|
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
|
|
1177
|
+
case 34:
|
|
1162
1178
|
case "end":
|
|
1163
1179
|
return _context13.stop();
|
|
1164
1180
|
}
|
|
1165
|
-
}, _callee13, this, [[1,
|
|
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<"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
566
|
-
|
|
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: (
|
|
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: (
|
|
581
|
-
changeGivenAmount: (
|
|
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<"
|
|
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");
|