@pisell/pisellos 3.0.44 → 3.0.46
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/Cart/utils/changePrice.js +22 -4
- package/dist/modules/Rules/index.js +10 -6
- package/dist/solution/ShopDiscount/index.js +9 -8
- package/lib/modules/Cart/utils/changePrice.js +20 -3
- package/lib/modules/Rules/index.js +5 -1
- package/lib/solution/ShopDiscount/index.js +6 -6
- package/package.json +1 -1
|
@@ -23,8 +23,8 @@ function _updateAllCartItemPrice() {
|
|
|
23
23
|
_iterator = _createForOfIteratorHelper(cartItems);
|
|
24
24
|
_context2.prev = 1;
|
|
25
25
|
_loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
|
|
26
|
-
var _bundle;
|
|
27
|
-
var item, targetProduct, cartProduct, productInfo, bundle;
|
|
26
|
+
var _item$_productOrigin, _bundle;
|
|
27
|
+
var item, targetProduct, cartProduct, productInfo, bundle, _productInfo$variant;
|
|
28
28
|
return _regeneratorRuntime().wrap(function _loop$(_context) {
|
|
29
29
|
while (1) switch (_context.prev = _context.next) {
|
|
30
30
|
case 0:
|
|
@@ -40,6 +40,7 @@ function _updateAllCartItemPrice() {
|
|
|
40
40
|
bundle = item._bundleOrigin;
|
|
41
41
|
productInfo.price = targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.price;
|
|
42
42
|
productInfo.base_price = targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.base_price;
|
|
43
|
+
productInfo.product_variant_id = (_item$_productOrigin = item._productOrigin) === null || _item$_productOrigin === void 0 ? void 0 : _item$_productOrigin.product_variant_id;
|
|
43
44
|
bundle = (_bundle = bundle) === null || _bundle === void 0 ? void 0 : _bundle.map(function (n) {
|
|
44
45
|
var _targetProduct$bundle;
|
|
45
46
|
// 更新 bundle 的价格
|
|
@@ -62,12 +63,29 @@ function _updateAllCartItemPrice() {
|
|
|
62
63
|
}
|
|
63
64
|
return n;
|
|
64
65
|
});
|
|
66
|
+
// 如果有返回variant,则把对应variant的数据也补充进去
|
|
67
|
+
if (targetProduct !== null && targetProduct !== void 0 && targetProduct.variant) {
|
|
68
|
+
productInfo.variant = (_productInfo$variant = productInfo.variant) === null || _productInfo$variant === void 0 ? void 0 : _productInfo$variant.map(function (n) {
|
|
69
|
+
var _targetProduct$varian;
|
|
70
|
+
var targetVariant = (_targetProduct$varian = targetProduct.variant) === null || _targetProduct$varian === void 0 ? void 0 : _targetProduct$varian.find(function (m) {
|
|
71
|
+
return m.id === n.id;
|
|
72
|
+
});
|
|
73
|
+
if (targetVariant) {
|
|
74
|
+
return _objectSpread(_objectSpread({}, n), {}, {
|
|
75
|
+
price: targetVariant.price,
|
|
76
|
+
base_price: targetVariant.base_price
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return n;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
65
82
|
updateCart({
|
|
66
83
|
_id: item._id,
|
|
67
84
|
product: productInfo,
|
|
68
|
-
bundle: bundle
|
|
85
|
+
bundle: bundle,
|
|
86
|
+
options: item._optionsOrigin
|
|
69
87
|
});
|
|
70
|
-
case
|
|
88
|
+
case 13:
|
|
71
89
|
case "end":
|
|
72
90
|
return _context.stop();
|
|
73
91
|
}
|
|
@@ -319,7 +319,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
319
319
|
|
|
320
320
|
// 然后再处理应用哪些优惠券,此时只考虑filteredDiscountList中的优惠券
|
|
321
321
|
sortedProductList.forEach(function (originProduct, i) {
|
|
322
|
-
var _product$discount_lis4, _product$discount_lis5, _product$
|
|
322
|
+
var _product$discount_lis4, _product$discount_lis5, _product$discount_lis7, _product$discount_lis8, _product$discount_lis9, _product$discount_lis10;
|
|
323
323
|
var product = _this3.hooks.getProduct(originProduct);
|
|
324
324
|
if (product !== null && product !== void 0 && product.booking_id && (_product$discount_lis4 = product.discount_list) !== null && _product$discount_lis4 !== void 0 && _product$discount_lis4.length && product !== null && product !== void 0 && (_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.every(function (discount) {
|
|
325
325
|
return discount.id && ['good_pass', 'discount_card', 'product_discount_card'].includes(discount.tag || discount.type);
|
|
@@ -330,11 +330,15 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
330
330
|
|
|
331
331
|
// 找到适用于此商品的所有优惠券,仅考虑isSelected不为false的优惠券
|
|
332
332
|
var applicableDiscounts = sortedDiscountList.filter(function (discount) {
|
|
333
|
+
var _product$discount_lis6;
|
|
333
334
|
// 如果商品价格为 0,其实不需要使用任何优惠券,直接 return true
|
|
334
335
|
// 商品券时主商品价格为0不可用
|
|
335
336
|
if ((Number(product.price) === 0 || !product.price) && (discount.tag || discount.type) === 'good_pass') return false;
|
|
336
337
|
// 折扣卡时总价为0时不可用
|
|
337
|
-
if ((Number(product.total) === 0 || !product.total) && (
|
|
338
|
+
if ((Number(product.total) === 0 || !product.total) && !((_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.find(function (n) {
|
|
339
|
+
var _n$discount;
|
|
340
|
+
return ((_n$discount = n.discount) === null || _n$discount === void 0 ? void 0 : _n$discount.resource_id) === discount.id;
|
|
341
|
+
})) && (discount.tag || discount.type) !== 'good_pass') return false;
|
|
338
342
|
// 如果优惠券已被使用,则跳过
|
|
339
343
|
var targetUsedDiscounts = usedDiscounts.get(discount.id);
|
|
340
344
|
if (targetUsedDiscounts && (discount.tag || discount.type) === 'good_pass') return false;
|
|
@@ -358,12 +362,12 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
358
362
|
var selectedDiscount = selectedDiscountCard || applicableDiscounts[0];
|
|
359
363
|
|
|
360
364
|
// 如果是手动折扣,则不适用优惠券
|
|
361
|
-
var isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : product.total != product.origin_total && (!((_product$
|
|
365
|
+
var isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : product.total != product.origin_total && (!((_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.length) || (product === null || product === void 0 || (_product$discount_lis8 = product.discount_list) === null || _product$discount_lis8 === void 0 || (_product$discount_lis9 = _product$discount_lis8.every) === null || _product$discount_lis9 === void 0 ? void 0 : _product$discount_lis9.call(_product$discount_lis8, function (item) {
|
|
362
366
|
return item.type === 'product';
|
|
363
367
|
})));
|
|
364
368
|
|
|
365
369
|
// 勾选时覆盖手动折扣
|
|
366
|
-
if (options !== null && options !== void 0 && options.discountId && (_product$
|
|
370
|
+
if (options !== null && options !== void 0 && options.discountId && (_product$discount_lis10 = product.discount_list) !== null && _product$discount_lis10 !== void 0 && _product$discount_lis10.some(function (item) {
|
|
367
371
|
var _item$discount;
|
|
368
372
|
return ((_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) === options.discountId;
|
|
369
373
|
})) {
|
|
@@ -425,7 +429,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
425
429
|
}));
|
|
426
430
|
}
|
|
427
431
|
for (var _i = 0; _i < splitCount; _i++) {
|
|
428
|
-
var _originProduct$_produ, _product$
|
|
432
|
+
var _originProduct$_produ, _product$discount_lis11;
|
|
429
433
|
// 如果用过折扣卡,也就不存在拆分的情况了,这里直接使用上面计算出来的折扣卡
|
|
430
434
|
var _selectedDiscount = selectedDiscountCard || applicableDiscounts[_i];
|
|
431
435
|
// 标记优惠券为已使用
|
|
@@ -441,7 +445,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
441
445
|
productOriginTotal = product.total;
|
|
442
446
|
}
|
|
443
447
|
// 如果当前 product 有 discount_list,则必须从 origin_total 拿
|
|
444
|
-
if ((_product$
|
|
448
|
+
if ((_product$discount_lis11 = product.discount_list) !== null && _product$discount_lis11 !== void 0 && _product$discount_lis11.length && product.origin_total) {
|
|
445
449
|
productOriginTotal = product.origin_total;
|
|
446
450
|
}
|
|
447
451
|
|
|
@@ -489,6 +489,15 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
489
489
|
var newDiscountList = [].concat(editModeDiscountList, _toConsumableArray(discountList.filter(function (item) {
|
|
490
490
|
return !item.isDisabled;
|
|
491
491
|
})));
|
|
492
|
+
var isProductFree = function isProductFree(id) {
|
|
493
|
+
var _this3$hooks2;
|
|
494
|
+
var targetProduct = productList.find(function (n) {
|
|
495
|
+
return n.id === id;
|
|
496
|
+
});
|
|
497
|
+
var product = (_this3$hooks2 = _this3.hooks) === null || _this3$hooks2 === void 0 ? void 0 : _this3$hooks2.getProduct(targetProduct);
|
|
498
|
+
// 如果 product.total 是 0有可能是她已经用过商品券或者折扣卡导致的 0,所以此时还需要判断 origin_total 是否为 0
|
|
499
|
+
return Number(product === null || product === void 0 ? void 0 : product.total) === 0 && (Number(product === null || product === void 0 ? void 0 : product.origin_total) === 0 || !(product !== null && product !== void 0 && product.origin_total));
|
|
500
|
+
};
|
|
492
501
|
var allUsedProductIds = newDiscountList.map(function (n) {
|
|
493
502
|
var _n$appliedProductDeta;
|
|
494
503
|
return n.isSelected ? (_n$appliedProductDeta = n.appliedProductDetails) === null || _n$appliedProductDeta === void 0 ? void 0 : _n$appliedProductDeta.map(function (n) {
|
|
@@ -498,14 +507,6 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
498
507
|
}).flat();
|
|
499
508
|
newDiscountList.forEach(function (item) {
|
|
500
509
|
var _item$applicableProdu;
|
|
501
|
-
var isProductFree = function isProductFree(id) {
|
|
502
|
-
var _this3$hooks2;
|
|
503
|
-
var targetProduct = productList.find(function (n) {
|
|
504
|
-
return n.id === id;
|
|
505
|
-
});
|
|
506
|
-
var product = (_this3$hooks2 = _this3.hooks) === null || _this3$hooks2 === void 0 ? void 0 : _this3$hooks2.getProduct(targetProduct);
|
|
507
|
-
return Number(product === null || product === void 0 ? void 0 : product.total) === 0;
|
|
508
|
-
};
|
|
509
510
|
var isAllProductUsedOrFree = (_item$applicableProdu = item.applicableProductIds) === null || _item$applicableProdu === void 0 ? void 0 : _item$applicableProdu.every(function (id) {
|
|
510
511
|
var _item$applicableProdu2;
|
|
511
512
|
// 检查当前 id是否在 item.applicableProductIds 里出现了几次,且要求次数和 item.applicableProductIds 里出现的次数一致
|
|
@@ -34,6 +34,7 @@ __export(changePrice_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(changePrice_exports);
|
|
35
35
|
var import_decimal = __toESM(require("decimal.js"));
|
|
36
36
|
async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCart) {
|
|
37
|
+
var _a, _b;
|
|
37
38
|
for (const item of cartItems) {
|
|
38
39
|
const targetProduct = priceData.find((n) => n.id === item.id);
|
|
39
40
|
const cartProduct = await getProduct(
|
|
@@ -43,9 +44,10 @@ async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCa
|
|
|
43
44
|
let bundle = item._bundleOrigin;
|
|
44
45
|
productInfo.price = targetProduct == null ? void 0 : targetProduct.price;
|
|
45
46
|
productInfo.base_price = targetProduct == null ? void 0 : targetProduct.base_price;
|
|
47
|
+
productInfo.product_variant_id = (_a = item._productOrigin) == null ? void 0 : _a.product_variant_id;
|
|
46
48
|
bundle = bundle == null ? void 0 : bundle.map((n) => {
|
|
47
|
-
var
|
|
48
|
-
const targetBundle = (
|
|
49
|
+
var _a2;
|
|
50
|
+
const targetBundle = (_a2 = targetProduct == null ? void 0 : targetProduct.bundle_group) == null ? void 0 : _a2.find(
|
|
49
51
|
(m) => m.id === n.group_id
|
|
50
52
|
);
|
|
51
53
|
if (targetBundle) {
|
|
@@ -65,10 +67,25 @@ async function updateAllCartItemPrice(cartItems, priceData, getProduct, updateCa
|
|
|
65
67
|
}
|
|
66
68
|
return n;
|
|
67
69
|
});
|
|
70
|
+
if (targetProduct == null ? void 0 : targetProduct.variant) {
|
|
71
|
+
productInfo.variant = (_b = productInfo.variant) == null ? void 0 : _b.map((n) => {
|
|
72
|
+
var _a2;
|
|
73
|
+
const targetVariant = (_a2 = targetProduct.variant) == null ? void 0 : _a2.find((m) => m.id === n.id);
|
|
74
|
+
if (targetVariant) {
|
|
75
|
+
return {
|
|
76
|
+
...n,
|
|
77
|
+
price: targetVariant.price,
|
|
78
|
+
base_price: targetVariant.base_price
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return n;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
68
84
|
updateCart({
|
|
69
85
|
_id: item._id,
|
|
70
86
|
product: productInfo,
|
|
71
|
-
bundle
|
|
87
|
+
bundle,
|
|
88
|
+
options: item._optionsOrigin
|
|
72
89
|
});
|
|
73
90
|
}
|
|
74
91
|
}
|
|
@@ -214,9 +214,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
214
214
|
return;
|
|
215
215
|
}
|
|
216
216
|
const applicableDiscounts = sortedDiscountList.filter((discount) => {
|
|
217
|
+
var _a2;
|
|
217
218
|
if ((Number(product.price) === 0 || !product.price) && (discount.tag || discount.type) === "good_pass")
|
|
218
219
|
return false;
|
|
219
|
-
if ((Number(product.total) === 0 || !product.total) && (
|
|
220
|
+
if ((Number(product.total) === 0 || !product.total) && !((_a2 = product.discount_list) == null ? void 0 : _a2.find((n) => {
|
|
221
|
+
var _a3;
|
|
222
|
+
return ((_a3 = n.discount) == null ? void 0 : _a3.resource_id) === discount.id;
|
|
223
|
+
})) && (discount.tag || discount.type) !== "good_pass")
|
|
220
224
|
return false;
|
|
221
225
|
const targetUsedDiscounts = usedDiscounts.get(discount.id);
|
|
222
226
|
if (targetUsedDiscounts && (discount.tag || discount.type) === "good_pass")
|
|
@@ -333,6 +333,12 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
333
333
|
...editModeDiscountList,
|
|
334
334
|
...discountList.filter((item) => !item.isDisabled)
|
|
335
335
|
];
|
|
336
|
+
const isProductFree = (id) => {
|
|
337
|
+
var _a2;
|
|
338
|
+
const targetProduct = productList.find((n) => n.id === id);
|
|
339
|
+
const product = (_a2 = this.hooks) == null ? void 0 : _a2.getProduct(targetProduct);
|
|
340
|
+
return Number(product == null ? void 0 : product.total) === 0 && (Number(product == null ? void 0 : product.origin_total) === 0 || !(product == null ? void 0 : product.origin_total));
|
|
341
|
+
};
|
|
336
342
|
const allUsedProductIds = newDiscountList.map((n) => {
|
|
337
343
|
var _a2;
|
|
338
344
|
return n.isSelected ? (_a2 = n.appliedProductDetails) == null ? void 0 : _a2.map((n2) => {
|
|
@@ -342,12 +348,6 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
342
348
|
}).flat();
|
|
343
349
|
newDiscountList.forEach((item) => {
|
|
344
350
|
var _a2;
|
|
345
|
-
const isProductFree = (id) => {
|
|
346
|
-
var _a3;
|
|
347
|
-
const targetProduct = productList.find((n) => n.id === id);
|
|
348
|
-
const product = (_a3 = this.hooks) == null ? void 0 : _a3.getProduct(targetProduct);
|
|
349
|
-
return Number(product == null ? void 0 : product.total) === 0;
|
|
350
|
-
};
|
|
351
351
|
const isAllProductUsedOrFree = (_a2 = item.applicableProductIds) == null ? void 0 : _a2.every((id) => {
|
|
352
352
|
var _a3;
|
|
353
353
|
const sameIdTimes = ((_a3 = item.applicableProductIds) == null ? void 0 : _a3.filter((n) => n === id).length) || 1;
|