@pisell/pisellos 0.0.239 → 0.0.241
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/Rules/index.d.ts +2 -0
- package/dist/modules/Rules/index.js +12 -3
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/ShopDiscount/index.d.ts +3 -9
- package/dist/solution/ShopDiscount/index.js +48 -33
- package/dist/solution/ShopDiscount/types.d.ts +8 -0
- package/lib/modules/Rules/index.d.ts +2 -0
- package/lib/modules/Rules/index.js +12 -3
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/ShopDiscount/index.d.ts +3 -9
- package/lib/solution/ShopDiscount/index.js +20 -12
- package/lib/solution/ShopDiscount/types.d.ts +8 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
3
|
import { Rules, RulesModuleAPI, DiscountResult } from './types';
|
|
4
4
|
import { Discount } from "../Discount/types";
|
|
5
|
+
import { SetDiscountSelectedParams } from '../../solution/ShopDiscount/types';
|
|
5
6
|
export declare class RulesModule extends BaseModule implements Module, RulesModuleAPI {
|
|
6
7
|
protected defaultName: string;
|
|
7
8
|
protected defaultVersion: string;
|
|
@@ -26,6 +27,7 @@ export declare class RulesModule extends BaseModule implements Module, RulesModu
|
|
|
26
27
|
}, options?: {
|
|
27
28
|
isSelected?: boolean;
|
|
28
29
|
discountId?: number;
|
|
30
|
+
selectedList?: SetDiscountSelectedParams[];
|
|
29
31
|
scan?: boolean;
|
|
30
32
|
}): DiscountResult;
|
|
31
33
|
destroy(): Promise<void>;
|
|
@@ -324,7 +324,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
324
324
|
|
|
325
325
|
// 然后再处理应用哪些优惠券,此时只考虑filteredDiscountList中的优惠券
|
|
326
326
|
sortedProductList.forEach(function (originProduct, i) {
|
|
327
|
-
var _product$discount_lis4, _product$discount_lis5, _product$discount_lis7, _product$discount_lis8, _product$discount_lis9, _product$discount_lis10;
|
|
327
|
+
var _product$discount_lis4, _product$discount_lis5, _product$discount_lis7, _product$discount_lis8, _product$discount_lis9, _product$discount_lis10, _product$discount_lis11;
|
|
328
328
|
var product = _this3.hooks.getProduct(originProduct);
|
|
329
329
|
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) {
|
|
330
330
|
return discount.id && ['good_pass', 'discount_card', 'product_discount_card'].includes(discount.tag || discount.type);
|
|
@@ -378,6 +378,15 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
378
378
|
})) {
|
|
379
379
|
isManualDiscount = false;
|
|
380
380
|
}
|
|
381
|
+
if (options !== null && options !== void 0 && options.selectedList && (_product$discount_lis11 = product.discount_list) !== null && _product$discount_lis11 !== void 0 && _product$discount_lis11.some(function (item) {
|
|
382
|
+
var _options$selectedList;
|
|
383
|
+
return options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.some(function (n) {
|
|
384
|
+
var _item$discount2;
|
|
385
|
+
return n.discountId === ((_item$discount2 = item.discount) === null || _item$discount2 === void 0 ? void 0 : _item$discount2.resource_id);
|
|
386
|
+
});
|
|
387
|
+
})) {
|
|
388
|
+
isManualDiscount = false;
|
|
389
|
+
}
|
|
381
390
|
|
|
382
391
|
// 如果没有适用的优惠券,或者手动折扣,则不适用优惠券
|
|
383
392
|
// 自定义商品:如果未开启适用折扣卡(product.vouchersApplicable),则不适用优惠券
|
|
@@ -435,7 +444,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
435
444
|
}));
|
|
436
445
|
}
|
|
437
446
|
for (var _i = 0; _i < splitCount; _i++) {
|
|
438
|
-
var _product$
|
|
447
|
+
var _product$discount_lis12, _originProduct$_produ;
|
|
439
448
|
// 如果用过折扣卡,也就不存在拆分的情况了,这里直接使用上面计算出来的折扣卡
|
|
440
449
|
var _selectedDiscount = selectedDiscountCard || applicableDiscounts[_i];
|
|
441
450
|
// 标记优惠券为已使用
|
|
@@ -447,7 +456,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
447
456
|
// 优先从 origin_total拿,可能会拿不到(比如用户端预约在没有配置 original_price 的情况下)
|
|
448
457
|
var productOriginTotal = product.origin_total || product.total || 0;
|
|
449
458
|
// 如果当前 product 有 discount_list,则先从 origin_total 拿
|
|
450
|
-
if ((_product$
|
|
459
|
+
if ((_product$discount_lis12 = product.discount_list) !== null && _product$discount_lis12 !== void 0 && _product$discount_lis12.length && product.origin_total) {
|
|
451
460
|
productOriginTotal = product.origin_total;
|
|
452
461
|
}
|
|
453
462
|
// 如果originProduct?._productInit?.original_price为 0,product.origin_total可能为空,此时取 product.total
|
|
@@ -111,7 +111,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
111
111
|
* 获取当前的客户搜索条件
|
|
112
112
|
* @returns 当前搜索条件
|
|
113
113
|
*/
|
|
114
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
114
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
|
|
115
115
|
/**
|
|
116
116
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
117
117
|
* @returns 客户状态
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Module, PisellCore } from '../../types';
|
|
2
2
|
import { BaseModule } from '../../modules/BaseModule';
|
|
3
|
-
import { Customer } from './types';
|
|
3
|
+
import { Customer, SetDiscountSelectedParams } from './types';
|
|
4
4
|
import { Discount } from '../../modules/Discount/types';
|
|
5
5
|
export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
6
6
|
protected defaultName: string;
|
|
@@ -19,17 +19,11 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
|
19
19
|
private registerDependentModules;
|
|
20
20
|
private registerEventListeners;
|
|
21
21
|
setCustomer(customer: Customer): Promise<void>;
|
|
22
|
-
calcDiscount(productList: Record<string, any>[], options?: {
|
|
23
|
-
discountId: number;
|
|
24
|
-
isSelected: boolean;
|
|
25
|
-
}): {
|
|
22
|
+
calcDiscount(productList: Record<string, any>[], options?: SetDiscountSelectedParams): {
|
|
26
23
|
productList: Record<string, any>[];
|
|
27
24
|
discountList: Discount[];
|
|
28
25
|
};
|
|
29
|
-
setDiscountSelected(
|
|
30
|
-
discountId: number;
|
|
31
|
-
isSelected: boolean;
|
|
32
|
-
}): {
|
|
26
|
+
setDiscountSelected(params: SetDiscountSelectedParams): {
|
|
33
27
|
productList: Record<string, any>[];
|
|
34
28
|
discountList: Discount[];
|
|
35
29
|
};
|
|
@@ -267,19 +267,38 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
267
267
|
// 设置优惠券使用状态
|
|
268
268
|
}, {
|
|
269
269
|
key: "setDiscountSelected",
|
|
270
|
-
value: function setDiscountSelected(
|
|
271
|
-
var discountId = _ref2.discountId,
|
|
272
|
-
isSelected = _ref2.isSelected;
|
|
270
|
+
value: function setDiscountSelected(params) {
|
|
273
271
|
// 获取当前优惠券列表
|
|
274
272
|
var discountList = this.getDiscountList();
|
|
275
273
|
|
|
274
|
+
// 构建选择操作列表
|
|
275
|
+
var selectionOperations = [];
|
|
276
|
+
|
|
277
|
+
// 主要操作
|
|
278
|
+
selectionOperations.push({
|
|
279
|
+
discountId: params.discountId,
|
|
280
|
+
isSelected: params.isSelected
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// 如果有批量操作列表,添加到操作列表中
|
|
284
|
+
if (params.selectedList && params.selectedList.length > 0) {
|
|
285
|
+
selectionOperations.push.apply(selectionOperations, _toConsumableArray(params.selectedList));
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// 创建选择状态映射(去重处理,后面的操作会覆盖前面的)
|
|
289
|
+
var selectionMap = new Map();
|
|
290
|
+
selectionOperations.forEach(function (operation) {
|
|
291
|
+
selectionMap.set(operation.discountId, operation.isSelected);
|
|
292
|
+
});
|
|
293
|
+
|
|
276
294
|
// 找到需要修改状态的优惠券
|
|
277
295
|
var newDiscountList = discountList.map(function (discount) {
|
|
278
|
-
if (discount.id
|
|
296
|
+
if (selectionMap.has(discount.id)) {
|
|
297
|
+
var targetIsSelected = selectionMap.get(discount.id);
|
|
279
298
|
return _objectSpread(_objectSpread({}, discount), {}, {
|
|
280
|
-
isSelected:
|
|
299
|
+
isSelected: targetIsSelected,
|
|
281
300
|
// 手动设置不使用
|
|
282
|
-
isManualSelect: !
|
|
301
|
+
isManualSelect: !targetIsSelected
|
|
283
302
|
});
|
|
284
303
|
}
|
|
285
304
|
return _objectSpread(_objectSpread({}, discount), {}, {
|
|
@@ -289,12 +308,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
289
308
|
|
|
290
309
|
// 更新优惠券列表
|
|
291
310
|
this.setDiscountList(newDiscountList);
|
|
292
|
-
|
|
293
|
-
// 如果取消选择优惠券,需要重新计算其他可用优惠券
|
|
294
|
-
return this.calcDiscount(this.store.productList || [], {
|
|
295
|
-
discountId: discountId,
|
|
296
|
-
isSelected: isSelected
|
|
297
|
-
});
|
|
311
|
+
return this.calcDiscount(this.store.productList || [], params);
|
|
298
312
|
}
|
|
299
313
|
}, {
|
|
300
314
|
key: "setProductList",
|
|
@@ -307,7 +321,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
307
321
|
key: "scanCode",
|
|
308
322
|
value: function () {
|
|
309
323
|
var _scanCode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(code, customerId) {
|
|
310
|
-
var _this$store$discount3, resultDiscountList, rulesModule, withScanList,
|
|
324
|
+
var _this$store$discount3, resultDiscountList, rulesModule, withScanList, _ref2, newProductList, newDiscountList, isAvailable, _this$options$otherPa6;
|
|
311
325
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
312
326
|
while (1) switch (_context5.prev = _context5.next) {
|
|
313
327
|
case 0:
|
|
@@ -351,7 +365,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
351
365
|
isScan: true
|
|
352
366
|
});
|
|
353
367
|
});
|
|
354
|
-
|
|
368
|
+
_ref2 = rulesModule.isDiscountListAvailable({
|
|
355
369
|
productList: this.store.productList || [],
|
|
356
370
|
oldDiscountList: this.getDiscountList(),
|
|
357
371
|
newDiscountList: withScanList
|
|
@@ -359,7 +373,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
359
373
|
isAvailable: false,
|
|
360
374
|
productList: this.store.productList || [],
|
|
361
375
|
discountList: this.getDiscountList()
|
|
362
|
-
}, newProductList =
|
|
376
|
+
}, newProductList = _ref2.productList, newDiscountList = _ref2.discountList, isAvailable = _ref2.isAvailable;
|
|
363
377
|
if (!isAvailable) {
|
|
364
378
|
_context5.next = 21;
|
|
365
379
|
break;
|
|
@@ -546,7 +560,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
546
560
|
key: "getCustomerWallet",
|
|
547
561
|
value: function () {
|
|
548
562
|
var _getCustomerWallet = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(id) {
|
|
549
|
-
var
|
|
563
|
+
var _result, customer;
|
|
550
564
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
551
565
|
while (1) switch (_context7.prev = _context7.next) {
|
|
552
566
|
case 0:
|
|
@@ -556,12 +570,12 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
556
570
|
with_trashed: 1
|
|
557
571
|
});
|
|
558
572
|
case 3:
|
|
559
|
-
|
|
560
|
-
if (!(
|
|
573
|
+
_result = _context7.sent;
|
|
574
|
+
if (!(_result !== null && _result !== void 0 && _result.data)) {
|
|
561
575
|
_context7.next = 9;
|
|
562
576
|
break;
|
|
563
577
|
}
|
|
564
|
-
customer = Object.assign({}, (_objectDestructuringEmpty(
|
|
578
|
+
customer = Object.assign({}, (_objectDestructuringEmpty(_result.data), _result.data));
|
|
565
579
|
this.setCustomer(customer);
|
|
566
580
|
_context7.next = 9;
|
|
567
581
|
return this.core.effects.emit(ShopDiscountHooks.onScanCustomerChange, customer);
|
|
@@ -586,31 +600,32 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
586
600
|
}, {
|
|
587
601
|
key: "bestDiscount",
|
|
588
602
|
value: function () {
|
|
589
|
-
var _bestDiscount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
603
|
+
var _bestDiscount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(cb) {
|
|
590
604
|
var _this$store$productLi;
|
|
591
|
-
var newDiscountList,
|
|
605
|
+
var newDiscountList, _result2;
|
|
592
606
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
593
607
|
while (1) switch (_context8.prev = _context8.next) {
|
|
594
608
|
case 0:
|
|
595
609
|
newDiscountList = this.store.originalDiscountList;
|
|
596
610
|
this.setDiscountList(newDiscountList);
|
|
597
611
|
if (!((_this$store$productLi = this.store.productList) !== null && _this$store$productLi !== void 0 && _this$store$productLi.length)) {
|
|
598
|
-
_context8.next =
|
|
612
|
+
_context8.next = 7;
|
|
599
613
|
break;
|
|
600
614
|
}
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
615
|
+
_result2 = this.calcDiscount(this.store.productList);
|
|
616
|
+
cb === null || cb === void 0 || cb(_result2);
|
|
617
|
+
_context8.next = 7;
|
|
618
|
+
return this.core.effects.emit(ShopDiscountHooks.onLoadPrepareCalcResult, _result2);
|
|
619
|
+
case 7:
|
|
620
|
+
_context8.next = 9;
|
|
606
621
|
return this.core.effects.emit(ShopDiscountHooks.onLoadDiscountList, newDiscountList);
|
|
607
|
-
case
|
|
622
|
+
case 9:
|
|
608
623
|
case "end":
|
|
609
624
|
return _context8.stop();
|
|
610
625
|
}
|
|
611
626
|
}, _callee8, this);
|
|
612
627
|
}));
|
|
613
|
-
function bestDiscount() {
|
|
628
|
+
function bestDiscount(_x8) {
|
|
614
629
|
return _bestDiscount.apply(this, arguments);
|
|
615
630
|
}
|
|
616
631
|
return bestDiscount;
|
|
@@ -619,7 +634,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
619
634
|
key: "loadPrepareConfig",
|
|
620
635
|
value: function () {
|
|
621
636
|
var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(params) {
|
|
622
|
-
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList,
|
|
637
|
+
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, _result3;
|
|
623
638
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
624
639
|
while (1) switch (_context9.prev = _context9.next) {
|
|
625
640
|
case 0:
|
|
@@ -652,9 +667,9 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
652
667
|
_context9.next = 15;
|
|
653
668
|
break;
|
|
654
669
|
}
|
|
655
|
-
|
|
670
|
+
_result3 = this.calcDiscount(this.store.productList);
|
|
656
671
|
_context9.next = 15;
|
|
657
|
-
return this.core.effects.emit(ShopDiscountHooks.onLoadPrepareCalcResult,
|
|
672
|
+
return this.core.effects.emit(ShopDiscountHooks.onLoadPrepareCalcResult, _result3);
|
|
658
673
|
case 15:
|
|
659
674
|
_context9.next = 17;
|
|
660
675
|
return this.core.effects.emit(ShopDiscountHooks.onLoadDiscountList, newDiscountList);
|
|
@@ -671,7 +686,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
671
686
|
}
|
|
672
687
|
}, _callee9, this, [[0, 19]]);
|
|
673
688
|
}));
|
|
674
|
-
function loadPrepareConfig(
|
|
689
|
+
function loadPrepareConfig(_x9) {
|
|
675
690
|
return _loadPrepareConfig.apply(this, arguments);
|
|
676
691
|
}
|
|
677
692
|
return loadPrepareConfig;
|
|
@@ -24,3 +24,11 @@ export interface ShopDiscountState {
|
|
|
24
24
|
productList: Record<string, any>[];
|
|
25
25
|
originalDiscountList: Discount[];
|
|
26
26
|
}
|
|
27
|
+
export interface SetDiscountSelectedParams {
|
|
28
|
+
discountId: number;
|
|
29
|
+
isSelected: boolean;
|
|
30
|
+
selectedList?: {
|
|
31
|
+
discountId: number;
|
|
32
|
+
isSelected: boolean;
|
|
33
|
+
}[];
|
|
34
|
+
}
|
|
@@ -2,6 +2,7 @@ import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
3
|
import { Rules, RulesModuleAPI, DiscountResult } from './types';
|
|
4
4
|
import { Discount } from "../Discount/types";
|
|
5
|
+
import { SetDiscountSelectedParams } from '../../solution/ShopDiscount/types';
|
|
5
6
|
export declare class RulesModule extends BaseModule implements Module, RulesModuleAPI {
|
|
6
7
|
protected defaultName: string;
|
|
7
8
|
protected defaultVersion: string;
|
|
@@ -26,6 +27,7 @@ export declare class RulesModule extends BaseModule implements Module, RulesModu
|
|
|
26
27
|
}, options?: {
|
|
27
28
|
isSelected?: boolean;
|
|
28
29
|
discountId?: number;
|
|
30
|
+
selectedList?: SetDiscountSelectedParams[];
|
|
29
31
|
scan?: boolean;
|
|
30
32
|
}): DiscountResult;
|
|
31
33
|
destroy(): Promise<void>;
|
|
@@ -212,7 +212,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
212
212
|
});
|
|
213
213
|
console.log(sortedProductList, "sortedProductListsortedProductList");
|
|
214
214
|
sortedProductList.forEach((originProduct, i) => {
|
|
215
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
215
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
216
216
|
const product = this.hooks.getProduct(originProduct);
|
|
217
217
|
if ((product == null ? void 0 : product.booking_id) && ((_a = product.discount_list) == null ? void 0 : _a.length) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.every((discount) => discount.id && ["good_pass", "discount_card", "product_discount_card"].includes(discount.tag || discount.type)))) {
|
|
218
218
|
processedProductsMap.set(product._id, [originProduct]);
|
|
@@ -247,6 +247,15 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
247
247
|
}))) {
|
|
248
248
|
isManualDiscount = false;
|
|
249
249
|
}
|
|
250
|
+
if ((options == null ? void 0 : options.selectedList) && ((_g = product.discount_list) == null ? void 0 : _g.some((item) => {
|
|
251
|
+
var _a2;
|
|
252
|
+
return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some((n) => {
|
|
253
|
+
var _a3;
|
|
254
|
+
return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
|
|
255
|
+
});
|
|
256
|
+
}))) {
|
|
257
|
+
isManualDiscount = false;
|
|
258
|
+
}
|
|
250
259
|
if (applicableDiscounts.length === 0 || isManualDiscount || (0, import_lodash_es.isBoolean)(product.vouchersApplicable) && !product.vouchersApplicable) {
|
|
251
260
|
if (product.isClient) {
|
|
252
261
|
processedProductsMap.set(
|
|
@@ -307,10 +316,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
307
316
|
usedDiscounts.set(selectedDiscount2.id, true);
|
|
308
317
|
const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
|
|
309
318
|
let productOriginTotal = product.origin_total || product.total || 0;
|
|
310
|
-
if (((
|
|
319
|
+
if (((_h = product.discount_list) == null ? void 0 : _h.length) && product.origin_total) {
|
|
311
320
|
productOriginTotal = product.origin_total;
|
|
312
321
|
}
|
|
313
|
-
if (Number(((
|
|
322
|
+
if (Number(((_i = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _i.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
|
|
314
323
|
productOriginTotal = product.total;
|
|
315
324
|
}
|
|
316
325
|
const targetProductTotal = selectedDiscount2.tag === "good_pass" ? new import_decimal.default(productOriginTotal).minus(new import_decimal.default(product.price || 0)).toNumber() : new import_decimal.default(100).minus(selectedDiscount2.par_value || 0).div(100).mul(new import_decimal.default(productOriginTotal)).toNumber();
|
|
@@ -111,7 +111,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
111
111
|
* 获取当前的客户搜索条件
|
|
112
112
|
* @returns 当前搜索条件
|
|
113
113
|
*/
|
|
114
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
114
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
|
|
115
115
|
/**
|
|
116
116
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
117
117
|
* @returns 客户状态
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Module, PisellCore } from '../../types';
|
|
2
2
|
import { BaseModule } from '../../modules/BaseModule';
|
|
3
|
-
import { Customer } from './types';
|
|
3
|
+
import { Customer, SetDiscountSelectedParams } from './types';
|
|
4
4
|
import { Discount } from '../../modules/Discount/types';
|
|
5
5
|
export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
6
6
|
protected defaultName: string;
|
|
@@ -19,17 +19,11 @@ export declare class ShopDiscountImpl extends BaseModule implements Module {
|
|
|
19
19
|
private registerDependentModules;
|
|
20
20
|
private registerEventListeners;
|
|
21
21
|
setCustomer(customer: Customer): Promise<void>;
|
|
22
|
-
calcDiscount(productList: Record<string, any>[], options?: {
|
|
23
|
-
discountId: number;
|
|
24
|
-
isSelected: boolean;
|
|
25
|
-
}): {
|
|
22
|
+
calcDiscount(productList: Record<string, any>[], options?: SetDiscountSelectedParams): {
|
|
26
23
|
productList: Record<string, any>[];
|
|
27
24
|
discountList: Discount[];
|
|
28
25
|
};
|
|
29
|
-
setDiscountSelected(
|
|
30
|
-
discountId: number;
|
|
31
|
-
isSelected: boolean;
|
|
32
|
-
}): {
|
|
26
|
+
setDiscountSelected(params: SetDiscountSelectedParams): {
|
|
33
27
|
productList: Record<string, any>[];
|
|
34
28
|
discountList: Discount[];
|
|
35
29
|
};
|
|
@@ -174,27 +174,34 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
176
|
// 设置优惠券使用状态
|
|
177
|
-
setDiscountSelected({
|
|
178
|
-
discountId,
|
|
179
|
-
isSelected
|
|
180
|
-
}) {
|
|
177
|
+
setDiscountSelected(params) {
|
|
181
178
|
const discountList = this.getDiscountList();
|
|
179
|
+
const selectionOperations = [];
|
|
180
|
+
selectionOperations.push({
|
|
181
|
+
discountId: params.discountId,
|
|
182
|
+
isSelected: params.isSelected
|
|
183
|
+
});
|
|
184
|
+
if (params.selectedList && params.selectedList.length > 0) {
|
|
185
|
+
selectionOperations.push(...params.selectedList);
|
|
186
|
+
}
|
|
187
|
+
const selectionMap = /* @__PURE__ */ new Map();
|
|
188
|
+
selectionOperations.forEach((operation) => {
|
|
189
|
+
selectionMap.set(operation.discountId, operation.isSelected);
|
|
190
|
+
});
|
|
182
191
|
const newDiscountList = discountList.map((discount) => {
|
|
183
|
-
if (discount.id
|
|
192
|
+
if (selectionMap.has(discount.id)) {
|
|
193
|
+
const targetIsSelected = selectionMap.get(discount.id);
|
|
184
194
|
return {
|
|
185
195
|
...discount,
|
|
186
|
-
isSelected,
|
|
196
|
+
isSelected: targetIsSelected,
|
|
187
197
|
// 手动设置不使用
|
|
188
|
-
isManualSelect: !
|
|
198
|
+
isManualSelect: !targetIsSelected
|
|
189
199
|
};
|
|
190
200
|
}
|
|
191
201
|
return { ...discount, isManualSelect: !(discount == null ? void 0 : discount.isSelected) };
|
|
192
202
|
});
|
|
193
203
|
this.setDiscountList(newDiscountList);
|
|
194
|
-
return this.calcDiscount(this.store.productList || [],
|
|
195
|
-
discountId,
|
|
196
|
-
isSelected
|
|
197
|
-
});
|
|
204
|
+
return this.calcDiscount(this.store.productList || [], params);
|
|
198
205
|
}
|
|
199
206
|
setProductList(productList) {
|
|
200
207
|
this.store.productList = productList;
|
|
@@ -390,12 +397,13 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
|
|
|
390
397
|
console.error("[ShopDiscount] 获取客户钱包信息出错:", error);
|
|
391
398
|
}
|
|
392
399
|
}
|
|
393
|
-
async bestDiscount() {
|
|
400
|
+
async bestDiscount(cb) {
|
|
394
401
|
var _a;
|
|
395
402
|
const newDiscountList = this.store.originalDiscountList;
|
|
396
403
|
this.setDiscountList(newDiscountList);
|
|
397
404
|
if ((_a = this.store.productList) == null ? void 0 : _a.length) {
|
|
398
405
|
const result = this.calcDiscount(this.store.productList);
|
|
406
|
+
cb == null ? void 0 : cb(result);
|
|
399
407
|
await this.core.effects.emit(
|
|
400
408
|
import_types.ShopDiscountHooks.onLoadPrepareCalcResult,
|
|
401
409
|
result
|
|
@@ -24,3 +24,11 @@ export interface ShopDiscountState {
|
|
|
24
24
|
productList: Record<string, any>[];
|
|
25
25
|
originalDiscountList: Discount[];
|
|
26
26
|
}
|
|
27
|
+
export interface SetDiscountSelectedParams {
|
|
28
|
+
discountId: number;
|
|
29
|
+
isSelected: boolean;
|
|
30
|
+
selectedList?: {
|
|
31
|
+
discountId: number;
|
|
32
|
+
isSelected: boolean;
|
|
33
|
+
}[];
|
|
34
|
+
}
|