@pisell/pisellos 0.0.357 → 0.0.359
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/Discount/types.d.ts +1 -4
- package/dist/modules/Rules/index.js +45 -24
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/lib/modules/Discount/types.d.ts +1 -4
- package/lib/modules/Rules/index.js +14 -35
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -17,10 +17,7 @@ interface Formattitle {
|
|
|
17
17
|
}
|
|
18
18
|
interface PackageSubItemUsageRules {
|
|
19
19
|
type: 'universal_discount' | 'package_exclusive' | 'single_item_promo' | 'custom_usage_rules';
|
|
20
|
-
|
|
21
|
-
types: ("standalone_product" | "package_sub_item")[];
|
|
22
|
-
package_sub_item_rules: ("original_price" | "markup_price")[];
|
|
23
|
-
};
|
|
20
|
+
rules: ("original_price" | "markup_price")[];
|
|
24
21
|
}
|
|
25
22
|
interface Limitedrelationproductdata {
|
|
26
23
|
id: number;
|
|
@@ -1290,6 +1290,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1290
1290
|
value: function checkPackageSubItemUsageRules(discount, flatItem) {
|
|
1291
1291
|
var limitedData = discount.limited_relation_product_data;
|
|
1292
1292
|
var usageRules = limitedData === null || limitedData === void 0 ? void 0 : limitedData.package_sub_item_usage_rules;
|
|
1293
|
+
var rules = ['original_price'].concat(_toConsumableArray((usageRules === null || usageRules === void 0 ? void 0 : usageRules.rules) || []));
|
|
1293
1294
|
|
|
1294
1295
|
// 如果没有配置 package_sub_item_usage_rules,则默认可用
|
|
1295
1296
|
if (!usageRules) {
|
|
@@ -1314,8 +1315,33 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1314
1315
|
// 套餐中购买时,判断是否为原价
|
|
1315
1316
|
var priceType = (_flatItem$bundleItem5 = flatItem.bundleItem) === null || _flatItem$bundleItem5 === void 0 ? void 0 : _flatItem$bundleItem5.price_type;
|
|
1316
1317
|
var priceTypeExt = (_flatItem$bundleItem6 = flatItem.bundleItem) === null || _flatItem$bundleItem6 === void 0 ? void 0 : _flatItem$bundleItem6.price_type_ext;
|
|
1318
|
+
// original_price 对应:
|
|
1319
|
+
// 1. price_type: "markup" && price_type_ext: "product_price"
|
|
1320
|
+
// markup_price 对应:
|
|
1321
|
+
// price_type: "markup" && price_type_ext: ""
|
|
1322
|
+
/** 原价 */
|
|
1323
|
+
var isOriginalPrice = priceType === 'markup' && priceTypeExt === 'product_price';
|
|
1324
|
+
/** 加价 */
|
|
1325
|
+
var isMarkupPrice = priceType === 'markup' && (priceTypeExt === '' || !priceTypeExt);
|
|
1326
|
+
|
|
1327
|
+
// 检查 rules
|
|
1328
|
+
if (rules.length > 0) {
|
|
1329
|
+
// 检查原价
|
|
1330
|
+
if (isOriginalPrice && rules.includes('original_price')) {
|
|
1331
|
+
return true;
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
// 检查加价
|
|
1335
|
+
if (isMarkupPrice && rules.includes('markup_price')) {
|
|
1336
|
+
return true;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
// 如果都不匹配,则不可用
|
|
1340
|
+
return false;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1317
1343
|
// 原价包括:price_type: "markup" && price_type_ext: "product_price"
|
|
1318
|
-
return
|
|
1344
|
+
return isOriginalPrice;
|
|
1319
1345
|
}
|
|
1320
1346
|
return true;
|
|
1321
1347
|
}
|
|
@@ -1341,16 +1367,15 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1341
1367
|
return isMainProduct; // 只有单独购买时可用
|
|
1342
1368
|
}
|
|
1343
1369
|
|
|
1370
|
+
/*
|
|
1344
1371
|
// custom_usage_rules: 根据自定义规则判断
|
|
1345
1372
|
if (ruleType === 'custom_usage_rules') {
|
|
1346
|
-
|
|
1347
|
-
|
|
1373
|
+
const customRules = usageRules.custom_usage_rules;
|
|
1374
|
+
if (!customRules) {
|
|
1348
1375
|
return true; // 如果没有自定义规则,默认可用
|
|
1349
1376
|
}
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
// 判断商品类型是否在允许的类型中
|
|
1377
|
+
const { types, package_sub_item_rules } = customRules;
|
|
1378
|
+
// 判断商品类型是否在允许的类型中
|
|
1354
1379
|
if (isMainProduct) {
|
|
1355
1380
|
// 主商品对应 standalone_product
|
|
1356
1381
|
if (!types.includes('standalone_product')) {
|
|
@@ -1358,40 +1383,36 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1358
1383
|
}
|
|
1359
1384
|
return true; // 主商品不需要判断 package_sub_item_rules
|
|
1360
1385
|
}
|
|
1361
|
-
|
|
1362
|
-
var _flatItem$bundleItem9, _flatItem$bundleItem10;
|
|
1386
|
+
if (isBundleItem) {
|
|
1363
1387
|
// bundle子商品对应 package_sub_item
|
|
1364
1388
|
if (!types.includes('package_sub_item')) {
|
|
1365
1389
|
return false;
|
|
1366
1390
|
}
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
// 检查 package_sub_item_rules
|
|
1391
|
+
// 如果包含 package_sub_item,还需要判断 price_type
|
|
1392
|
+
const priceType = flatItem.bundleItem?.price_type;
|
|
1393
|
+
const priceTypeExt = flatItem.bundleItem?.price_type_ext;
|
|
1394
|
+
// 检查 package_sub_item_rules
|
|
1373
1395
|
if (package_sub_item_rules && package_sub_item_rules.length > 0) {
|
|
1374
1396
|
// original_price 对应:
|
|
1375
1397
|
// 1. price_type: "markup" && price_type_ext: "product_price"
|
|
1376
1398
|
// markup_price 对应:
|
|
1377
1399
|
// price_type: "markup" && price_type_ext: ""
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
if (isOriginalPrice && package_sub_item_rules.includes('original_price')) {
|
|
1400
|
+
const isOriginalPrice = (priceType === 'markup' && priceTypeExt === 'product_price');
|
|
1401
|
+
const isMarkupPrice = priceType === 'markup' && (priceTypeExt === '' || !priceTypeExt);
|
|
1402
|
+
if (isOriginalPrice && package_sub_item_rules.includes('original_price')) {
|
|
1382
1403
|
return true;
|
|
1383
1404
|
}
|
|
1384
|
-
|
|
1405
|
+
if (isMarkupPrice && package_sub_item_rules.includes('markup_price')) {
|
|
1385
1406
|
return true;
|
|
1386
1407
|
}
|
|
1387
|
-
|
|
1388
|
-
// 如果都不匹配,则不可用
|
|
1408
|
+
// 如果都不匹配,则不可用
|
|
1389
1409
|
return false;
|
|
1390
1410
|
}
|
|
1391
|
-
|
|
1411
|
+
return true; // 如果没有 package_sub_item_rules 配置,默认可用
|
|
1392
1412
|
}
|
|
1393
|
-
|
|
1413
|
+
return true;
|
|
1394
1414
|
}
|
|
1415
|
+
* */
|
|
1395
1416
|
|
|
1396
1417
|
// 默认可用
|
|
1397
1418
|
return true;
|
|
@@ -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
|
*
|
|
@@ -17,10 +17,7 @@ interface Formattitle {
|
|
|
17
17
|
}
|
|
18
18
|
interface PackageSubItemUsageRules {
|
|
19
19
|
type: 'universal_discount' | 'package_exclusive' | 'single_item_promo' | 'custom_usage_rules';
|
|
20
|
-
|
|
21
|
-
types: ("standalone_product" | "package_sub_item")[];
|
|
22
|
-
package_sub_item_rules: ("original_price" | "markup_price")[];
|
|
23
|
-
};
|
|
20
|
+
rules: ("original_price" | "markup_price")[];
|
|
24
21
|
}
|
|
25
22
|
interface Limitedrelationproductdata {
|
|
26
23
|
id: number;
|
|
@@ -994,9 +994,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
994
994
|
* @returns 是否可用
|
|
995
995
|
*/
|
|
996
996
|
checkPackageSubItemUsageRules(discount, flatItem) {
|
|
997
|
-
var _a, _b, _c, _d
|
|
997
|
+
var _a, _b, _c, _d;
|
|
998
998
|
const limitedData = discount.limited_relation_product_data;
|
|
999
999
|
const usageRules = limitedData == null ? void 0 : limitedData.package_sub_item_usage_rules;
|
|
1000
|
+
const rules = ["original_price", ...(usageRules == null ? void 0 : usageRules.rules) || []];
|
|
1000
1001
|
if (!usageRules) {
|
|
1001
1002
|
return true;
|
|
1002
1003
|
}
|
|
@@ -1013,7 +1014,18 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1013
1014
|
if (isBundleItem) {
|
|
1014
1015
|
const priceType = (_a = flatItem.bundleItem) == null ? void 0 : _a.price_type;
|
|
1015
1016
|
const priceTypeExt = (_b = flatItem.bundleItem) == null ? void 0 : _b.price_type_ext;
|
|
1016
|
-
|
|
1017
|
+
const isOriginalPrice = priceType === "markup" && priceTypeExt === "product_price";
|
|
1018
|
+
const isMarkupPrice = priceType === "markup" && (priceTypeExt === "" || !priceTypeExt);
|
|
1019
|
+
if (rules.length > 0) {
|
|
1020
|
+
if (isOriginalPrice && rules.includes("original_price")) {
|
|
1021
|
+
return true;
|
|
1022
|
+
}
|
|
1023
|
+
if (isMarkupPrice && rules.includes("markup_price")) {
|
|
1024
|
+
return true;
|
|
1025
|
+
}
|
|
1026
|
+
return false;
|
|
1027
|
+
}
|
|
1028
|
+
return isOriginalPrice;
|
|
1017
1029
|
}
|
|
1018
1030
|
return true;
|
|
1019
1031
|
}
|
|
@@ -1031,39 +1043,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1031
1043
|
if (ruleType === "single_item_promo") {
|
|
1032
1044
|
return isMainProduct;
|
|
1033
1045
|
}
|
|
1034
|
-
if (ruleType === "custom_usage_rules") {
|
|
1035
|
-
const customRules = usageRules.custom_usage_rules;
|
|
1036
|
-
if (!customRules) {
|
|
1037
|
-
return true;
|
|
1038
|
-
}
|
|
1039
|
-
const { types, package_sub_item_rules } = customRules;
|
|
1040
|
-
if (isMainProduct) {
|
|
1041
|
-
if (!types.includes("standalone_product")) {
|
|
1042
|
-
return false;
|
|
1043
|
-
}
|
|
1044
|
-
return true;
|
|
1045
|
-
}
|
|
1046
|
-
if (isBundleItem) {
|
|
1047
|
-
if (!types.includes("package_sub_item")) {
|
|
1048
|
-
return false;
|
|
1049
|
-
}
|
|
1050
|
-
const priceType = (_e = flatItem.bundleItem) == null ? void 0 : _e.price_type;
|
|
1051
|
-
const priceTypeExt = (_f = flatItem.bundleItem) == null ? void 0 : _f.price_type_ext;
|
|
1052
|
-
if (package_sub_item_rules && package_sub_item_rules.length > 0) {
|
|
1053
|
-
const isOriginalPrice = priceType === "markup" && priceTypeExt === "product_price";
|
|
1054
|
-
const isMarkupPrice = priceType === "markup" && (priceTypeExt === "" || !priceTypeExt);
|
|
1055
|
-
if (isOriginalPrice && package_sub_item_rules.includes("original_price")) {
|
|
1056
|
-
return true;
|
|
1057
|
-
}
|
|
1058
|
-
if (isMarkupPrice && package_sub_item_rules.includes("markup_price")) {
|
|
1059
|
-
return true;
|
|
1060
|
-
}
|
|
1061
|
-
return false;
|
|
1062
|
-
}
|
|
1063
|
-
return true;
|
|
1064
|
-
}
|
|
1065
|
-
return true;
|
|
1066
|
-
}
|
|
1067
1046
|
return true;
|
|
1068
1047
|
}
|
|
1069
1048
|
async destroy() {
|
|
@@ -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
|
*
|