@pisell/pisellos 2.2.128 → 2.2.130
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/core/index.js +0 -1
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/modules/Product/index.d.ts +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +40 -33
- package/dist/server/modules/order/index.d.ts +5 -0
- package/dist/server/modules/order/index.js +168 -133
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/Sales/index.js +7 -4
- package/lib/core/index.js +0 -1
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/modules/Product/index.d.ts +1 -1
- package/lib/server/index.d.ts +2 -2
- package/lib/server/index.js +21 -19
- package/lib/server/modules/order/index.d.ts +5 -0
- package/lib/server/modules/order/index.js +12 -0
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/Sales/index.js +3 -0
- package/package.json +1 -1
package/dist/core/index.js
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// 导出评估器
|
|
2
|
+
export { PromotionEvaluator } from "./evaluator";
|
|
3
|
+
|
|
4
|
+
// 导出适配器
|
|
5
|
+
export { PromotionAdapter } from "./adapter";
|
|
6
|
+
export { default } from "./adapter";
|
|
7
|
+
|
|
8
|
+
// 导出策略配置示例常量
|
|
9
|
+
export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY } from "./examples";
|
|
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
|
|
|
49
49
|
getCategories(): ProductCategory[];
|
|
50
50
|
setOtherParams(key: string, value: any): void;
|
|
51
51
|
getOtherParams(): any;
|
|
52
|
-
getProductType(): "
|
|
52
|
+
getProductType(): "duration" | "session" | "normal";
|
|
53
53
|
}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -255,9 +255,9 @@ declare class Server {
|
|
|
255
255
|
*/
|
|
256
256
|
private handleResourceList;
|
|
257
257
|
/**
|
|
258
|
-
*
|
|
258
|
+
* 代理刷新 / 合并单个订单到本地:
|
|
259
259
|
* - 入参:order_id(data 或 url query)
|
|
260
|
-
* -
|
|
260
|
+
* - 流程:调后端 /order/sales/{id}?with[]=... → 若本地已有则覆盖;若无则 merge 写入 → 落 SQLite → emit onOrdersChanged
|
|
261
261
|
* - 监听级联:onOrdersChanged 触发订单/预约/bookingRemoteCache 三路订阅者推送
|
|
262
262
|
*/
|
|
263
263
|
private handleUpdateLocalOrder;
|
package/dist/server/index.js
CHANGED
|
@@ -443,15 +443,15 @@ var Server = /*#__PURE__*/function () {
|
|
|
443
443
|
};
|
|
444
444
|
}());
|
|
445
445
|
/**
|
|
446
|
-
*
|
|
446
|
+
* 代理刷新 / 合并单个订单到本地:
|
|
447
447
|
* - 入参:order_id(data 或 url query)
|
|
448
|
-
* -
|
|
448
|
+
* - 流程:调后端 /order/sales/{id}?with[]=... → 若本地已有则覆盖;若无则 merge 写入 → 落 SQLite → emit onOrdersChanged
|
|
449
449
|
* - 监听级联:onOrdersChanged 触发订单/预约/bookingRemoteCache 三路订阅者推送
|
|
450
450
|
*/
|
|
451
451
|
_defineProperty(this, "handleUpdateLocalOrder", /*#__PURE__*/function () {
|
|
452
452
|
var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(_ref18) {
|
|
453
453
|
var _ref20, _this$app;
|
|
454
|
-
var url, data, rawOrderId, orderId, backendPath, _response$data, response, fresh, _yield$_this$order$ov, overwritten, errorMessage;
|
|
454
|
+
var url, data, rawOrderId, orderId, backendPath, _response$data, response, fresh, exists, _yield$_this$order$ov, overwritten, errorMessage;
|
|
455
455
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
456
456
|
while (1) switch (_context7.prev = _context7.next) {
|
|
457
457
|
case 0:
|
|
@@ -489,24 +489,8 @@ var Server = /*#__PURE__*/function () {
|
|
|
489
489
|
data: null
|
|
490
490
|
});
|
|
491
491
|
case 10:
|
|
492
|
-
if (_this.order.getOrderByOrderId(orderId)) {
|
|
493
|
-
_context7.next = 13;
|
|
494
|
-
break;
|
|
495
|
-
}
|
|
496
|
-
_this.logInfo('handleUpdateLocalOrder: 本地不存在该订单,忽略', {
|
|
497
|
-
orderId: orderId
|
|
498
|
-
});
|
|
499
|
-
return _context7.abrupt("return", {
|
|
500
|
-
code: 200,
|
|
501
|
-
status: true,
|
|
502
|
-
message: '本地无此订单,已忽略',
|
|
503
|
-
data: {
|
|
504
|
-
overwritten: false
|
|
505
|
-
}
|
|
506
|
-
});
|
|
507
|
-
case 13:
|
|
508
492
|
if ((_this$app = _this.app) !== null && _this$app !== void 0 && _this$app.request) {
|
|
509
|
-
_context7.next =
|
|
493
|
+
_context7.next = 13;
|
|
510
494
|
break;
|
|
511
495
|
}
|
|
512
496
|
_this.logError('handleUpdateLocalOrder: app.request 不可用');
|
|
@@ -516,18 +500,18 @@ var Server = /*#__PURE__*/function () {
|
|
|
516
500
|
message: 'app.request 不可用',
|
|
517
501
|
data: null
|
|
518
502
|
});
|
|
519
|
-
case
|
|
503
|
+
case 13:
|
|
520
504
|
backendPath = "/shop/order/sales/".concat(encodeURIComponent(orderId), "?with%5B%5D=all");
|
|
521
|
-
_context7.prev =
|
|
522
|
-
_context7.next =
|
|
505
|
+
_context7.prev = 14;
|
|
506
|
+
_context7.next = 17;
|
|
523
507
|
return _this.app.request.get(backendPath, undefined, {
|
|
524
508
|
isShopApi: true
|
|
525
509
|
});
|
|
526
|
-
case
|
|
510
|
+
case 17:
|
|
527
511
|
response = _context7.sent;
|
|
528
512
|
fresh = (_response$data = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data !== void 0 ? _response$data : response;
|
|
529
513
|
if (!(!fresh || _typeof(fresh) !== 'object' || fresh.order_id == null)) {
|
|
530
|
-
_context7.next =
|
|
514
|
+
_context7.next = 22;
|
|
531
515
|
break;
|
|
532
516
|
}
|
|
533
517
|
_this.logError('handleUpdateLocalOrder: 后端返回订单为空', {
|
|
@@ -540,10 +524,15 @@ var Server = /*#__PURE__*/function () {
|
|
|
540
524
|
message: '后端返回订单为空',
|
|
541
525
|
data: null
|
|
542
526
|
});
|
|
543
|
-
case
|
|
544
|
-
|
|
527
|
+
case 22:
|
|
528
|
+
exists = !!_this.order.getOrderByOrderId(orderId);
|
|
529
|
+
if (!exists) {
|
|
530
|
+
_context7.next = 30;
|
|
531
|
+
break;
|
|
532
|
+
}
|
|
533
|
+
_context7.next = 26;
|
|
545
534
|
return _this.order.overwriteExistingOrder(fresh);
|
|
546
|
-
case
|
|
535
|
+
case 26:
|
|
547
536
|
_yield$_this$order$ov = _context7.sent;
|
|
548
537
|
overwritten = _yield$_this$order$ov.overwritten;
|
|
549
538
|
_this.logInfo('handleUpdateLocalOrder: 覆盖完成', {
|
|
@@ -556,12 +545,30 @@ var Server = /*#__PURE__*/function () {
|
|
|
556
545
|
message: '',
|
|
557
546
|
data: {
|
|
558
547
|
overwritten: overwritten,
|
|
548
|
+
inserted: false,
|
|
559
549
|
order_id: orderId
|
|
560
550
|
}
|
|
561
551
|
});
|
|
562
|
-
case
|
|
563
|
-
_context7.
|
|
564
|
-
|
|
552
|
+
case 30:
|
|
553
|
+
_context7.next = 32;
|
|
554
|
+
return _this.order.upsertOrdersFromRemote([fresh]);
|
|
555
|
+
case 32:
|
|
556
|
+
_this.logInfo('handleUpdateLocalOrder: 本地合并新订单完成', {
|
|
557
|
+
orderId: orderId
|
|
558
|
+
});
|
|
559
|
+
return _context7.abrupt("return", {
|
|
560
|
+
code: 200,
|
|
561
|
+
status: true,
|
|
562
|
+
message: '',
|
|
563
|
+
data: {
|
|
564
|
+
overwritten: false,
|
|
565
|
+
inserted: true,
|
|
566
|
+
order_id: orderId
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
case 36:
|
|
570
|
+
_context7.prev = 36;
|
|
571
|
+
_context7.t0 = _context7["catch"](14);
|
|
565
572
|
errorMessage = _context7.t0 instanceof Error ? _context7.t0.message : String(_context7.t0);
|
|
566
573
|
_this.logError('handleUpdateLocalOrder: 请求失败', {
|
|
567
574
|
orderId: orderId,
|
|
@@ -574,11 +581,11 @@ var Server = /*#__PURE__*/function () {
|
|
|
574
581
|
message: errorMessage,
|
|
575
582
|
data: null
|
|
576
583
|
});
|
|
577
|
-
case
|
|
584
|
+
case 41:
|
|
578
585
|
case "end":
|
|
579
586
|
return _context7.stop();
|
|
580
587
|
}
|
|
581
|
-
}, _callee7, null, [[
|
|
588
|
+
}, _callee7, null, [[14, 36]]);
|
|
582
589
|
}));
|
|
583
590
|
return function (_x7) {
|
|
584
591
|
return _ref19.apply(this, arguments);
|
|
@@ -47,6 +47,11 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
47
47
|
overwriteExistingOrder(fresh: OrderData): Promise<{
|
|
48
48
|
overwritten: boolean;
|
|
49
49
|
}>;
|
|
50
|
+
/**
|
|
51
|
+
* 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
|
|
52
|
+
* 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
|
|
53
|
+
*/
|
|
54
|
+
upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
|
|
50
55
|
/**
|
|
51
56
|
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
52
57
|
*/
|
|
@@ -417,6 +417,41 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
417
417
|
}
|
|
418
418
|
return overwriteExistingOrder;
|
|
419
419
|
}()
|
|
420
|
+
/**
|
|
421
|
+
* 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
|
|
422
|
+
* 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
|
|
423
|
+
*/
|
|
424
|
+
)
|
|
425
|
+
}, {
|
|
426
|
+
key: "upsertOrdersFromRemote",
|
|
427
|
+
value: (function () {
|
|
428
|
+
var _upsertOrdersFromRemote = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(freshOrders) {
|
|
429
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
430
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
431
|
+
case 0:
|
|
432
|
+
if (freshOrders !== null && freshOrders !== void 0 && freshOrders.length) {
|
|
433
|
+
_context6.next = 3;
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
this.logInfo('upsertOrdersFromRemote-订单列表为空', {});
|
|
437
|
+
return _context6.abrupt("return");
|
|
438
|
+
case 3:
|
|
439
|
+
this.logInfo('upsertOrdersFromRemote-开始', {
|
|
440
|
+
count: freshOrders.length
|
|
441
|
+
});
|
|
442
|
+
_context6.next = 6;
|
|
443
|
+
return this.mergeOrdersToStore(freshOrders);
|
|
444
|
+
case 6:
|
|
445
|
+
case "end":
|
|
446
|
+
return _context6.stop();
|
|
447
|
+
}
|
|
448
|
+
}, _callee6, this);
|
|
449
|
+
}));
|
|
450
|
+
function upsertOrdersFromRemote(_x4) {
|
|
451
|
+
return _upsertOrdersFromRemote.apply(this, arguments);
|
|
452
|
+
}
|
|
453
|
+
return upsertOrdersFromRemote;
|
|
454
|
+
}()
|
|
420
455
|
/**
|
|
421
456
|
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
422
457
|
*/
|
|
@@ -424,42 +459,42 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
424
459
|
}, {
|
|
425
460
|
key: "fetchOrdersBySSE",
|
|
426
461
|
value: (function () {
|
|
427
|
-
var _fetchOrdersBySSE = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
462
|
+
var _fetchOrdersBySSE = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
428
463
|
var query,
|
|
429
464
|
data,
|
|
430
|
-
|
|
431
|
-
return _regeneratorRuntime().wrap(function
|
|
432
|
-
while (1) switch (
|
|
465
|
+
_args7 = arguments;
|
|
466
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
467
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
433
468
|
case 0:
|
|
434
|
-
query =
|
|
469
|
+
query = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {};
|
|
435
470
|
if (this.orderDataSource) {
|
|
436
|
-
|
|
471
|
+
_context7.next = 3;
|
|
437
472
|
break;
|
|
438
473
|
}
|
|
439
|
-
return
|
|
474
|
+
return _context7.abrupt("return", []);
|
|
440
475
|
case 3:
|
|
441
|
-
|
|
442
|
-
|
|
476
|
+
_context7.prev = 3;
|
|
477
|
+
_context7.next = 6;
|
|
443
478
|
return this.orderDataSource.run({
|
|
444
479
|
sse: {
|
|
445
480
|
query: query
|
|
446
481
|
}
|
|
447
482
|
});
|
|
448
483
|
case 6:
|
|
449
|
-
data =
|
|
450
|
-
return
|
|
484
|
+
data = _context7.sent;
|
|
485
|
+
return _context7.abrupt("return", data || []);
|
|
451
486
|
case 10:
|
|
452
|
-
|
|
453
|
-
|
|
487
|
+
_context7.prev = 10;
|
|
488
|
+
_context7.t0 = _context7["catch"](3);
|
|
454
489
|
this.logError('fetchOrdersBySSE-失败', {
|
|
455
|
-
error:
|
|
490
|
+
error: _context7.t0 instanceof Error ? _context7.t0.message : String(_context7.t0)
|
|
456
491
|
});
|
|
457
|
-
return
|
|
492
|
+
return _context7.abrupt("return", []);
|
|
458
493
|
case 14:
|
|
459
494
|
case "end":
|
|
460
|
-
return
|
|
495
|
+
return _context7.stop();
|
|
461
496
|
}
|
|
462
|
-
},
|
|
497
|
+
}, _callee7, this, [[3, 10]]);
|
|
463
498
|
}));
|
|
464
499
|
function fetchOrdersBySSE() {
|
|
465
500
|
return _fetchOrdersBySSE.apply(this, arguments);
|
|
@@ -640,41 +675,41 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
640
675
|
}, {
|
|
641
676
|
key: "flushOrderSyncMessagesByThrottle",
|
|
642
677
|
value: (function () {
|
|
643
|
-
var _flushOrderSyncMessagesByThrottle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
644
|
-
return _regeneratorRuntime().wrap(function
|
|
645
|
-
while (1) switch (
|
|
678
|
+
var _flushOrderSyncMessagesByThrottle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
679
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
680
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
646
681
|
case 0:
|
|
647
682
|
if (!this.isProcessingSyncBatch) {
|
|
648
|
-
|
|
683
|
+
_context8.next = 2;
|
|
649
684
|
break;
|
|
650
685
|
}
|
|
651
|
-
return
|
|
686
|
+
return _context8.abrupt("return");
|
|
652
687
|
case 2:
|
|
653
688
|
if (!(this.pendingSyncMessages.length === 0)) {
|
|
654
|
-
|
|
689
|
+
_context8.next = 5;
|
|
655
690
|
break;
|
|
656
691
|
}
|
|
657
692
|
this.isIdlePhase = true;
|
|
658
|
-
return
|
|
693
|
+
return _context8.abrupt("return");
|
|
659
694
|
case 5:
|
|
660
695
|
this.isProcessingSyncBatch = true;
|
|
661
|
-
|
|
662
|
-
|
|
696
|
+
_context8.prev = 6;
|
|
697
|
+
_context8.next = 9;
|
|
663
698
|
return this.processOrderSyncMessages();
|
|
664
699
|
case 9:
|
|
665
|
-
|
|
700
|
+
_context8.prev = 9;
|
|
666
701
|
this.isProcessingSyncBatch = false;
|
|
667
702
|
if (this.pendingSyncMessages.length > 0) {
|
|
668
703
|
this.scheduleOrderSyncThrottle();
|
|
669
704
|
} else {
|
|
670
705
|
this.isIdlePhase = true;
|
|
671
706
|
}
|
|
672
|
-
return
|
|
707
|
+
return _context8.finish(9);
|
|
673
708
|
case 13:
|
|
674
709
|
case "end":
|
|
675
|
-
return
|
|
710
|
+
return _context8.stop();
|
|
676
711
|
}
|
|
677
|
-
},
|
|
712
|
+
}, _callee8, this, [[6,, 9, 13]]);
|
|
678
713
|
}));
|
|
679
714
|
function flushOrderSyncMessagesByThrottle() {
|
|
680
715
|
return _flushOrderSyncMessagesByThrottle.apply(this, arguments);
|
|
@@ -696,18 +731,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
696
731
|
}, {
|
|
697
732
|
key: "processOrderSyncMessages",
|
|
698
733
|
value: (function () {
|
|
699
|
-
var _processOrderSyncMessages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
734
|
+
var _processOrderSyncMessages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
|
|
700
735
|
var messages, batchProcessStartAt, earliestReceivedAt, upsertOrders, refreshIds, _iterator3, _step3, _msg$id, _msg$relation_order_i, msg, hasBatchIds, singleId, hasSingleId, rawBody, normalizedBody, uniqueRefreshIds, upsertList, freshOrders, batchProcessEndAt;
|
|
701
|
-
return _regeneratorRuntime().wrap(function
|
|
702
|
-
while (1) switch (
|
|
736
|
+
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
737
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
703
738
|
case 0:
|
|
704
739
|
messages = _toConsumableArray(this.pendingSyncMessages);
|
|
705
740
|
this.pendingSyncMessages = [];
|
|
706
741
|
if (!(messages.length === 0)) {
|
|
707
|
-
|
|
742
|
+
_context9.next = 4;
|
|
708
743
|
break;
|
|
709
744
|
}
|
|
710
|
-
return
|
|
745
|
+
return _context9.abrupt("return");
|
|
711
746
|
case 4:
|
|
712
747
|
batchProcessStartAt = Date.now();
|
|
713
748
|
earliestReceivedAt = Math.min.apply(Math, _toConsumableArray(messages.map(function (m) {
|
|
@@ -723,11 +758,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
723
758
|
upsertOrders = new Map();
|
|
724
759
|
refreshIds = [];
|
|
725
760
|
_iterator3 = _createForOfIteratorHelper(messages);
|
|
726
|
-
|
|
761
|
+
_context9.prev = 10;
|
|
727
762
|
_iterator3.s();
|
|
728
763
|
case 12:
|
|
729
764
|
if ((_step3 = _iterator3.n()).done) {
|
|
730
|
-
|
|
765
|
+
_context9.next = 25;
|
|
731
766
|
break;
|
|
732
767
|
}
|
|
733
768
|
msg = _step3.value;
|
|
@@ -737,27 +772,27 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
737
772
|
rawBody = msg.body || msg.data;
|
|
738
773
|
normalizedBody = this.normalizeOrderSyncPayload(rawBody);
|
|
739
774
|
if (!(hasSingleId && normalizedBody)) {
|
|
740
|
-
|
|
775
|
+
_context9.next = 22;
|
|
741
776
|
break;
|
|
742
777
|
}
|
|
743
778
|
upsertOrders.set(this.getIdKey(normalizedBody.order_id), normalizedBody);
|
|
744
|
-
return
|
|
779
|
+
return _context9.abrupt("continue", 23);
|
|
745
780
|
case 22:
|
|
746
781
|
if (hasBatchIds) refreshIds.push.apply(refreshIds, _toConsumableArray(msg.ids));else if (hasSingleId) refreshIds.push(singleId);else if ((_msg$relation_order_i = msg.relation_order_ids) !== null && _msg$relation_order_i !== void 0 && _msg$relation_order_i.length) refreshIds.push.apply(refreshIds, _toConsumableArray(msg.relation_order_ids));
|
|
747
782
|
case 23:
|
|
748
|
-
|
|
783
|
+
_context9.next = 12;
|
|
749
784
|
break;
|
|
750
785
|
case 25:
|
|
751
|
-
|
|
786
|
+
_context9.next = 30;
|
|
752
787
|
break;
|
|
753
788
|
case 27:
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
_iterator3.e(
|
|
789
|
+
_context9.prev = 27;
|
|
790
|
+
_context9.t0 = _context9["catch"](10);
|
|
791
|
+
_iterator3.e(_context9.t0);
|
|
757
792
|
case 30:
|
|
758
|
-
|
|
793
|
+
_context9.prev = 30;
|
|
759
794
|
_iterator3.f();
|
|
760
|
-
return
|
|
795
|
+
return _context9.finish(30);
|
|
761
796
|
case 33:
|
|
762
797
|
uniqueRefreshIds = this.uniqueOrderIds(refreshIds);
|
|
763
798
|
upsertList = _toConsumableArray(upsertOrders.values());
|
|
@@ -766,32 +801,32 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
766
801
|
refreshIdCount: uniqueRefreshIds.length
|
|
767
802
|
});
|
|
768
803
|
if (!(upsertList.length > 0)) {
|
|
769
|
-
|
|
804
|
+
_context9.next = 39;
|
|
770
805
|
break;
|
|
771
806
|
}
|
|
772
|
-
|
|
807
|
+
_context9.next = 39;
|
|
773
808
|
return this.mergeOrdersToStore(upsertList);
|
|
774
809
|
case 39:
|
|
775
810
|
if (!(uniqueRefreshIds.length > 0)) {
|
|
776
|
-
|
|
811
|
+
_context9.next = 46;
|
|
777
812
|
break;
|
|
778
813
|
}
|
|
779
|
-
|
|
814
|
+
_context9.next = 42;
|
|
780
815
|
return this.fetchOrdersByHttp(uniqueRefreshIds);
|
|
781
816
|
case 42:
|
|
782
|
-
freshOrders =
|
|
817
|
+
freshOrders = _context9.sent;
|
|
783
818
|
if (!(freshOrders.length > 0)) {
|
|
784
|
-
|
|
819
|
+
_context9.next = 46;
|
|
785
820
|
break;
|
|
786
821
|
}
|
|
787
|
-
|
|
822
|
+
_context9.next = 46;
|
|
788
823
|
return this.mergeOrdersToStore(freshOrders);
|
|
789
824
|
case 46:
|
|
790
825
|
if (!(upsertList.length === 0 && uniqueRefreshIds.length === 0)) {
|
|
791
|
-
|
|
826
|
+
_context9.next = 48;
|
|
792
827
|
break;
|
|
793
828
|
}
|
|
794
|
-
return
|
|
829
|
+
return _context9.abrupt("return");
|
|
795
830
|
case 48:
|
|
796
831
|
batchProcessEndAt = Date.now();
|
|
797
832
|
this.logInfo('processOrderSyncMessages-结束', {
|
|
@@ -800,13 +835,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
800
835
|
batchProcessDurationMs: batchProcessEndAt - batchProcessStartAt,
|
|
801
836
|
totalFromPubsubToProcessedMs: batchProcessEndAt - earliestReceivedAt
|
|
802
837
|
});
|
|
803
|
-
|
|
838
|
+
_context9.next = 52;
|
|
804
839
|
return this.core.effects.emit(OrderHooks.onOrdersSyncCompleted, null);
|
|
805
840
|
case 52:
|
|
806
841
|
case "end":
|
|
807
|
-
return
|
|
842
|
+
return _context9.stop();
|
|
808
843
|
}
|
|
809
|
-
},
|
|
844
|
+
}, _callee9, this, [[10, 27, 30, 33]]);
|
|
810
845
|
}));
|
|
811
846
|
function processOrderSyncMessages() {
|
|
812
847
|
return _processOrderSyncMessages.apply(this, arguments);
|
|
@@ -820,29 +855,29 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
820
855
|
}, {
|
|
821
856
|
key: "fetchOrdersByHttp",
|
|
822
857
|
value: (function () {
|
|
823
|
-
var _fetchOrdersByHttp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
858
|
+
var _fetchOrdersByHttp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(ids) {
|
|
824
859
|
var _orderList, orderList;
|
|
825
|
-
return _regeneratorRuntime().wrap(function
|
|
826
|
-
while (1) switch (
|
|
860
|
+
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
861
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
827
862
|
case 0:
|
|
828
863
|
if (!(!this.orderDataSource || ids.length === 0)) {
|
|
829
|
-
|
|
864
|
+
_context10.next = 2;
|
|
830
865
|
break;
|
|
831
866
|
}
|
|
832
|
-
return
|
|
867
|
+
return _context10.abrupt("return", []);
|
|
833
868
|
case 2:
|
|
834
|
-
|
|
869
|
+
_context10.prev = 2;
|
|
835
870
|
if (!(typeof this.orderDataSource.fetchOrdersByIds === 'function')) {
|
|
836
|
-
|
|
871
|
+
_context10.next = 8;
|
|
837
872
|
break;
|
|
838
873
|
}
|
|
839
|
-
|
|
874
|
+
_context10.next = 6;
|
|
840
875
|
return this.orderDataSource.fetchOrdersByIds(ids);
|
|
841
876
|
case 6:
|
|
842
|
-
_orderList =
|
|
843
|
-
return
|
|
877
|
+
_orderList = _context10.sent;
|
|
878
|
+
return _context10.abrupt("return", _orderList || []);
|
|
844
879
|
case 8:
|
|
845
|
-
|
|
880
|
+
_context10.next = 10;
|
|
846
881
|
return this.orderDataSource.run({
|
|
847
882
|
http: {
|
|
848
883
|
query: {
|
|
@@ -851,19 +886,19 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
851
886
|
}
|
|
852
887
|
});
|
|
853
888
|
case 10:
|
|
854
|
-
orderList =
|
|
855
|
-
return
|
|
889
|
+
orderList = _context10.sent;
|
|
890
|
+
return _context10.abrupt("return", orderList || []);
|
|
856
891
|
case 14:
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
return
|
|
892
|
+
_context10.prev = 14;
|
|
893
|
+
_context10.t0 = _context10["catch"](2);
|
|
894
|
+
return _context10.abrupt("return", []);
|
|
860
895
|
case 17:
|
|
861
896
|
case "end":
|
|
862
|
-
return
|
|
897
|
+
return _context10.stop();
|
|
863
898
|
}
|
|
864
|
-
},
|
|
899
|
+
}, _callee10, this, [[2, 14]]);
|
|
865
900
|
}));
|
|
866
|
-
function fetchOrdersByHttp(
|
|
901
|
+
function fetchOrdersByHttp(_x5) {
|
|
867
902
|
return _fetchOrdersByHttp.apply(this, arguments);
|
|
868
903
|
}
|
|
869
904
|
return fetchOrdersByHttp;
|
|
@@ -875,11 +910,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
875
910
|
}, {
|
|
876
911
|
key: "mergeOrdersToStore",
|
|
877
912
|
value: (function () {
|
|
878
|
-
var _mergeOrdersToStore = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
913
|
+
var _mergeOrdersToStore = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(freshOrders) {
|
|
879
914
|
var _this8 = this;
|
|
880
915
|
var freshMap, _iterator4, _step4, order, id, uniqueFreshCount, updatedList, _iterator5, _step5, _order;
|
|
881
|
-
return _regeneratorRuntime().wrap(function
|
|
882
|
-
while (1) switch (
|
|
916
|
+
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
917
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
883
918
|
case 0:
|
|
884
919
|
this.logInfo('mergeOrdersToStore-开始', {
|
|
885
920
|
freshOrderCount: freshOrders.length,
|
|
@@ -887,36 +922,36 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
887
922
|
});
|
|
888
923
|
freshMap = new Map();
|
|
889
924
|
_iterator4 = _createForOfIteratorHelper(freshOrders);
|
|
890
|
-
|
|
925
|
+
_context11.prev = 3;
|
|
891
926
|
_iterator4.s();
|
|
892
927
|
case 5:
|
|
893
928
|
if ((_step4 = _iterator4.n()).done) {
|
|
894
|
-
|
|
929
|
+
_context11.next = 13;
|
|
895
930
|
break;
|
|
896
931
|
}
|
|
897
932
|
order = _step4.value;
|
|
898
933
|
id = order === null || order === void 0 ? void 0 : order.order_id;
|
|
899
934
|
if (!(id === undefined || id === null)) {
|
|
900
|
-
|
|
935
|
+
_context11.next = 10;
|
|
901
936
|
break;
|
|
902
937
|
}
|
|
903
|
-
return
|
|
938
|
+
return _context11.abrupt("continue", 11);
|
|
904
939
|
case 10:
|
|
905
940
|
freshMap.set(this.getIdKey(id), order);
|
|
906
941
|
case 11:
|
|
907
|
-
|
|
942
|
+
_context11.next = 5;
|
|
908
943
|
break;
|
|
909
944
|
case 13:
|
|
910
|
-
|
|
945
|
+
_context11.next = 18;
|
|
911
946
|
break;
|
|
912
947
|
case 15:
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
_iterator4.e(
|
|
948
|
+
_context11.prev = 15;
|
|
949
|
+
_context11.t0 = _context11["catch"](3);
|
|
950
|
+
_iterator4.e(_context11.t0);
|
|
916
951
|
case 18:
|
|
917
|
-
|
|
952
|
+
_context11.prev = 18;
|
|
918
953
|
_iterator4.f();
|
|
919
|
-
return
|
|
954
|
+
return _context11.finish(18);
|
|
920
955
|
case 21:
|
|
921
956
|
uniqueFreshCount = freshMap.size;
|
|
922
957
|
updatedList = this.store.list.map(function (order) {
|
|
@@ -941,7 +976,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
941
976
|
}
|
|
942
977
|
this.store.list = updatedList;
|
|
943
978
|
this.syncOrdersMap();
|
|
944
|
-
|
|
979
|
+
_context11.next = 29;
|
|
945
980
|
return this.saveOrdersToSQLite(this.store.list);
|
|
946
981
|
case 29:
|
|
947
982
|
this.logInfo('mergeOrdersToStore-结束', {
|
|
@@ -951,11 +986,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
951
986
|
this.core.effects.emit(OrderHooks.onOrdersChanged, this.store.list);
|
|
952
987
|
case 31:
|
|
953
988
|
case "end":
|
|
954
|
-
return
|
|
989
|
+
return _context11.stop();
|
|
955
990
|
}
|
|
956
|
-
},
|
|
991
|
+
}, _callee11, this, [[3, 15, 18, 21]]);
|
|
957
992
|
}));
|
|
958
|
-
function mergeOrdersToStore(
|
|
993
|
+
function mergeOrdersToStore(_x6) {
|
|
959
994
|
return _mergeOrdersToStore.apply(this, arguments);
|
|
960
995
|
}
|
|
961
996
|
return mergeOrdersToStore;
|
|
@@ -1092,32 +1127,32 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1092
1127
|
}, {
|
|
1093
1128
|
key: "loadOrdersFromSQLite",
|
|
1094
1129
|
value: function () {
|
|
1095
|
-
var _loadOrdersFromSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
1130
|
+
var _loadOrdersFromSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {
|
|
1096
1131
|
var orders;
|
|
1097
|
-
return _regeneratorRuntime().wrap(function
|
|
1098
|
-
while (1) switch (
|
|
1132
|
+
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
1133
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
1099
1134
|
case 0:
|
|
1100
1135
|
if (this.dbManager) {
|
|
1101
|
-
|
|
1136
|
+
_context12.next = 2;
|
|
1102
1137
|
break;
|
|
1103
1138
|
}
|
|
1104
|
-
return
|
|
1139
|
+
return _context12.abrupt("return", []);
|
|
1105
1140
|
case 2:
|
|
1106
|
-
|
|
1107
|
-
|
|
1141
|
+
_context12.prev = 2;
|
|
1142
|
+
_context12.next = 5;
|
|
1108
1143
|
return this.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
1109
1144
|
case 5:
|
|
1110
|
-
orders =
|
|
1111
|
-
return
|
|
1145
|
+
orders = _context12.sent;
|
|
1146
|
+
return _context12.abrupt("return", orders || []);
|
|
1112
1147
|
case 9:
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
return
|
|
1148
|
+
_context12.prev = 9;
|
|
1149
|
+
_context12.t0 = _context12["catch"](2);
|
|
1150
|
+
return _context12.abrupt("return", []);
|
|
1116
1151
|
case 12:
|
|
1117
1152
|
case "end":
|
|
1118
|
-
return
|
|
1153
|
+
return _context12.stop();
|
|
1119
1154
|
}
|
|
1120
|
-
},
|
|
1155
|
+
}, _callee12, this, [[2, 9]]);
|
|
1121
1156
|
}));
|
|
1122
1157
|
function loadOrdersFromSQLite() {
|
|
1123
1158
|
return _loadOrdersFromSQLite.apply(this, arguments);
|
|
@@ -1127,55 +1162,55 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1127
1162
|
}, {
|
|
1128
1163
|
key: "saveOrdersToSQLite",
|
|
1129
1164
|
value: function () {
|
|
1130
|
-
var _saveOrdersToSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
1131
|
-
return _regeneratorRuntime().wrap(function
|
|
1132
|
-
while (1) switch (
|
|
1165
|
+
var _saveOrdersToSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(orderList) {
|
|
1166
|
+
return _regeneratorRuntime().wrap(function _callee13$(_context13) {
|
|
1167
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
1133
1168
|
case 0:
|
|
1134
1169
|
if (this.dbManager) {
|
|
1135
|
-
|
|
1170
|
+
_context13.next = 2;
|
|
1136
1171
|
break;
|
|
1137
1172
|
}
|
|
1138
|
-
return
|
|
1173
|
+
return _context13.abrupt("return");
|
|
1139
1174
|
case 2:
|
|
1140
|
-
|
|
1175
|
+
_context13.prev = 2;
|
|
1141
1176
|
this.logInfo('saveOrdersToSQLite-开始', {
|
|
1142
1177
|
count: orderList.length
|
|
1143
1178
|
});
|
|
1144
|
-
|
|
1179
|
+
_context13.next = 6;
|
|
1145
1180
|
return this.dbManager.clear(INDEXDB_STORE_NAME);
|
|
1146
1181
|
case 6:
|
|
1147
1182
|
this.logInfo('saveOrdersToSQLite-clear完成', {
|
|
1148
1183
|
count: orderList.length
|
|
1149
1184
|
});
|
|
1150
1185
|
if (!(orderList.length === 0)) {
|
|
1151
|
-
|
|
1186
|
+
_context13.next = 9;
|
|
1152
1187
|
break;
|
|
1153
1188
|
}
|
|
1154
|
-
return
|
|
1189
|
+
return _context13.abrupt("return");
|
|
1155
1190
|
case 9:
|
|
1156
|
-
|
|
1191
|
+
_context13.next = 11;
|
|
1157
1192
|
return this.dbManager.bulkAdd(INDEXDB_STORE_NAME, orderList);
|
|
1158
1193
|
case 11:
|
|
1159
1194
|
this.logInfo('saveOrdersToSQLite-bulkAdd完成', {
|
|
1160
1195
|
count: orderList.length
|
|
1161
1196
|
});
|
|
1162
|
-
|
|
1197
|
+
_context13.next = 17;
|
|
1163
1198
|
break;
|
|
1164
1199
|
case 14:
|
|
1165
|
-
|
|
1166
|
-
|
|
1200
|
+
_context13.prev = 14;
|
|
1201
|
+
_context13.t0 = _context13["catch"](2);
|
|
1167
1202
|
// SQLite 异常,避免影响主流程
|
|
1168
1203
|
this.logError('保存订单到 SQLite 失败', {
|
|
1169
|
-
error:
|
|
1204
|
+
error: _context13.t0 instanceof Error ? _context13.t0.message : String(_context13.t0),
|
|
1170
1205
|
orderList: orderList.length
|
|
1171
1206
|
});
|
|
1172
1207
|
case 17:
|
|
1173
1208
|
case "end":
|
|
1174
|
-
return
|
|
1209
|
+
return _context13.stop();
|
|
1175
1210
|
}
|
|
1176
|
-
},
|
|
1211
|
+
}, _callee13, this, [[2, 14]]);
|
|
1177
1212
|
}));
|
|
1178
|
-
function saveOrdersToSQLite(
|
|
1213
|
+
function saveOrdersToSQLite(_x7) {
|
|
1179
1214
|
return _saveOrdersToSQLite.apply(this, arguments);
|
|
1180
1215
|
}
|
|
1181
1216
|
return saveOrdersToSQLite;
|
|
@@ -1183,27 +1218,27 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1183
1218
|
}, {
|
|
1184
1219
|
key: "clear",
|
|
1185
1220
|
value: function () {
|
|
1186
|
-
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
1187
|
-
return _regeneratorRuntime().wrap(function
|
|
1188
|
-
while (1) switch (
|
|
1221
|
+
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
|
|
1222
|
+
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
1223
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
1189
1224
|
case 0:
|
|
1190
1225
|
this.store.list = [];
|
|
1191
1226
|
this.store.map = new Map();
|
|
1192
1227
|
this.resourceIdIndex.clear();
|
|
1193
1228
|
if (!this.dbManager) {
|
|
1194
|
-
|
|
1229
|
+
_context14.next = 6;
|
|
1195
1230
|
break;
|
|
1196
1231
|
}
|
|
1197
|
-
|
|
1232
|
+
_context14.next = 6;
|
|
1198
1233
|
return this.dbManager.clear(INDEXDB_STORE_NAME);
|
|
1199
1234
|
case 6:
|
|
1200
1235
|
this.setStorageItem(ORDER_LAST_FULL_FETCH_AT_STORAGE_KEY, '');
|
|
1201
1236
|
this.core.effects.emit(OrderHooks.onOrdersChanged, this.store.list);
|
|
1202
1237
|
case 8:
|
|
1203
1238
|
case "end":
|
|
1204
|
-
return
|
|
1239
|
+
return _context14.stop();
|
|
1205
1240
|
}
|
|
1206
|
-
},
|
|
1241
|
+
}, _callee14, this);
|
|
1207
1242
|
}));
|
|
1208
1243
|
function clear() {
|
|
1209
1244
|
return _clear.apply(this, arguments);
|
|
@@ -136,7 +136,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
136
136
|
* 获取当前的客户搜索条件
|
|
137
137
|
* @returns 当前搜索条件
|
|
138
138
|
*/
|
|
139
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
139
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
|
|
140
140
|
/**
|
|
141
141
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
142
142
|
* @returns 客户状态
|
|
@@ -267,7 +267,10 @@ export var SalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
267
267
|
if (slotCount <= 0) return [];
|
|
268
268
|
var diff = new Int32Array(slotCount + 1);
|
|
269
269
|
for (var i = 0; i < bookingList.length; i++) {
|
|
270
|
+
var _ref2, _booking$appointment_;
|
|
270
271
|
var booking = bookingList[i];
|
|
272
|
+
var appointmentStatus = String((_ref2 = (_booking$appointment_ = booking.appointment_status) !== null && _booking$appointment_ !== void 0 ? _booking$appointment_ : booking.status) !== null && _ref2 !== void 0 ? _ref2 : '');
|
|
273
|
+
if (appointmentStatus === 'new' || appointmentStatus === 'rejected' || appointmentStatus === 'cancelled') continue;
|
|
271
274
|
var bookingStartAt = this.toBookingDateTime(booking.start_date, booking.start_time);
|
|
272
275
|
var bookingEndAt = this.toBookingDateTime(booking.end_date, booking.end_time);
|
|
273
276
|
if (!bookingStartAt.isValid() || !bookingEndAt.isValid()) continue;
|
|
@@ -336,8 +339,8 @@ export var SalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
336
339
|
}, {
|
|
337
340
|
key: "getResourceId",
|
|
338
341
|
value: function getResourceId(resource) {
|
|
339
|
-
var
|
|
340
|
-
return (
|
|
342
|
+
var _ref3, _resource$id;
|
|
343
|
+
return (_ref3 = (_resource$id = resource.id) !== null && _resource$id !== void 0 ? _resource$id : resource.form_record_id) !== null && _ref3 !== void 0 ? _ref3 : '';
|
|
341
344
|
}
|
|
342
345
|
|
|
343
346
|
/**
|
|
@@ -454,8 +457,8 @@ export var SalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
454
457
|
}, {
|
|
455
458
|
key: "normalizeMatchedBooking",
|
|
456
459
|
value: function normalizeMatchedBooking(current, deviceCurrent, booking) {
|
|
457
|
-
var
|
|
458
|
-
var appointmentStatus = String((
|
|
460
|
+
var _ref4, _booking$appointment_2;
|
|
461
|
+
var appointmentStatus = String((_ref4 = (_booking$appointment_2 = booking.appointment_status) !== null && _booking$appointment_2 !== void 0 ? _booking$appointment_2 : booking.status) !== null && _ref4 !== void 0 ? _ref4 : '');
|
|
459
462
|
if (appointmentStatus === 'rejected' || appointmentStatus === 'cancelled') return null;
|
|
460
463
|
var startAt = this.toBookingDateTime(booking.start_date, booking.start_time);
|
|
461
464
|
var endAt = this.toBookingDateTime(booking.end_date, booking.end_time);
|
package/lib/core/index.js
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/model/strategy/adapter/promotion/index.ts
|
|
30
|
+
var promotion_exports = {};
|
|
31
|
+
__export(promotion_exports, {
|
|
32
|
+
BUY_X_GET_Y_FREE_STRATEGY: () => import_examples.BUY_X_GET_Y_FREE_STRATEGY,
|
|
33
|
+
PromotionAdapter: () => import_adapter.PromotionAdapter,
|
|
34
|
+
PromotionEvaluator: () => import_evaluator.PromotionEvaluator,
|
|
35
|
+
X_ITEMS_FOR_Y_PRICE_STRATEGY: () => import_examples.X_ITEMS_FOR_Y_PRICE_STRATEGY,
|
|
36
|
+
default: () => import_adapter2.default
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(promotion_exports);
|
|
39
|
+
var import_evaluator = require("./evaluator");
|
|
40
|
+
var import_adapter = require("./adapter");
|
|
41
|
+
var import_adapter2 = __toESM(require("./adapter"));
|
|
42
|
+
var import_examples = require("./examples");
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
BUY_X_GET_Y_FREE_STRATEGY,
|
|
46
|
+
PromotionAdapter,
|
|
47
|
+
PromotionEvaluator,
|
|
48
|
+
X_ITEMS_FOR_Y_PRICE_STRATEGY
|
|
49
|
+
});
|
|
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
|
|
|
49
49
|
getCategories(): ProductCategory[];
|
|
50
50
|
setOtherParams(key: string, value: any): void;
|
|
51
51
|
getOtherParams(): any;
|
|
52
|
-
getProductType(): "
|
|
52
|
+
getProductType(): "duration" | "session" | "normal";
|
|
53
53
|
}
|
package/lib/server/index.d.ts
CHANGED
|
@@ -255,9 +255,9 @@ declare class Server {
|
|
|
255
255
|
*/
|
|
256
256
|
private handleResourceList;
|
|
257
257
|
/**
|
|
258
|
-
*
|
|
258
|
+
* 代理刷新 / 合并单个订单到本地:
|
|
259
259
|
* - 入参:order_id(data 或 url query)
|
|
260
|
-
* -
|
|
260
|
+
* - 流程:调后端 /order/sales/{id}?with[]=... → 若本地已有则覆盖;若无则 merge 写入 → 落 SQLite → emit onOrdersChanged
|
|
261
261
|
* - 监听级联:onOrdersChanged 触发订单/预约/bookingRemoteCache 三路订阅者推送
|
|
262
262
|
*/
|
|
263
263
|
private handleUpdateLocalOrder;
|
package/lib/server/index.js
CHANGED
|
@@ -314,9 +314,9 @@ var Server = class {
|
|
|
314
314
|
};
|
|
315
315
|
};
|
|
316
316
|
/**
|
|
317
|
-
*
|
|
317
|
+
* 代理刷新 / 合并单个订单到本地:
|
|
318
318
|
* - 入参:order_id(data 或 url query)
|
|
319
|
-
* -
|
|
319
|
+
* - 流程:调后端 /order/sales/{id}?with[]=... → 若本地已有则覆盖;若无则 merge 写入 → 落 SQLite → emit onOrdersChanged
|
|
320
320
|
* - 监听级联:onOrdersChanged 触发订单/预约/bookingRemoteCache 三路订阅者推送
|
|
321
321
|
*/
|
|
322
322
|
this.handleUpdateLocalOrder = async ({ url, data }) => {
|
|
@@ -332,15 +332,6 @@ var Server = class {
|
|
|
332
332
|
this.logError("handleUpdateLocalOrder: Order 模块未注册");
|
|
333
333
|
return { code: 500, status: false, message: "Order 模块未注册", data: null };
|
|
334
334
|
}
|
|
335
|
-
if (!this.order.getOrderByOrderId(orderId)) {
|
|
336
|
-
this.logInfo("handleUpdateLocalOrder: 本地不存在该订单,忽略", { orderId });
|
|
337
|
-
return {
|
|
338
|
-
code: 200,
|
|
339
|
-
status: true,
|
|
340
|
-
message: "本地无此订单,已忽略",
|
|
341
|
-
data: { overwritten: false }
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
335
|
if (!((_a = this.app) == null ? void 0 : _a.request)) {
|
|
345
336
|
this.logError("handleUpdateLocalOrder: app.request 不可用");
|
|
346
337
|
return { code: 500, status: false, message: "app.request 不可用", data: null };
|
|
@@ -365,18 +356,29 @@ var Server = class {
|
|
|
365
356
|
data: null
|
|
366
357
|
};
|
|
367
358
|
}
|
|
368
|
-
const
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
359
|
+
const exists = !!this.order.getOrderByOrderId(orderId);
|
|
360
|
+
if (exists) {
|
|
361
|
+
const { overwritten } = await this.order.overwriteExistingOrder(
|
|
362
|
+
fresh
|
|
363
|
+
);
|
|
364
|
+
this.logInfo("handleUpdateLocalOrder: 覆盖完成", {
|
|
365
|
+
orderId,
|
|
366
|
+
overwritten
|
|
367
|
+
});
|
|
368
|
+
return {
|
|
369
|
+
code: 200,
|
|
370
|
+
status: true,
|
|
371
|
+
message: "",
|
|
372
|
+
data: { overwritten, inserted: false, order_id: orderId }
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
await this.order.upsertOrdersFromRemote([fresh]);
|
|
376
|
+
this.logInfo("handleUpdateLocalOrder: 本地合并新订单完成", { orderId });
|
|
375
377
|
return {
|
|
376
378
|
code: 200,
|
|
377
379
|
status: true,
|
|
378
380
|
message: "",
|
|
379
|
-
data: { overwritten, order_id: orderId }
|
|
381
|
+
data: { overwritten: false, inserted: true, order_id: orderId }
|
|
380
382
|
};
|
|
381
383
|
} catch (error) {
|
|
382
384
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -47,6 +47,11 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
47
47
|
overwriteExistingOrder(fresh: OrderData): Promise<{
|
|
48
48
|
overwritten: boolean;
|
|
49
49
|
}>;
|
|
50
|
+
/**
|
|
51
|
+
* 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
|
|
52
|
+
* 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
|
|
53
|
+
*/
|
|
54
|
+
upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
|
|
50
55
|
/**
|
|
51
56
|
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
52
57
|
*/
|
|
@@ -252,6 +252,18 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
252
252
|
await this.core.effects.emit(import_types.OrderHooks.onOrdersChanged, this.store.list);
|
|
253
253
|
return { overwritten: true };
|
|
254
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
|
|
257
|
+
* 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
|
|
258
|
+
*/
|
|
259
|
+
async upsertOrdersFromRemote(freshOrders) {
|
|
260
|
+
if (!(freshOrders == null ? void 0 : freshOrders.length)) {
|
|
261
|
+
this.logInfo("upsertOrdersFromRemote-订单列表为空", {});
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
this.logInfo("upsertOrdersFromRemote-开始", { count: freshOrders.length });
|
|
265
|
+
await this.mergeOrdersToStore(freshOrders);
|
|
266
|
+
}
|
|
255
267
|
/**
|
|
256
268
|
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
257
269
|
*/
|
|
@@ -136,7 +136,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
|
|
|
136
136
|
* 获取当前的客户搜索条件
|
|
137
137
|
* @returns 当前搜索条件
|
|
138
138
|
*/
|
|
139
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
139
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
|
|
140
140
|
/**
|
|
141
141
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
142
142
|
* @returns 客户状态
|
|
@@ -166,6 +166,9 @@ var SalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
166
166
|
const diff = new Int32Array(slotCount + 1);
|
|
167
167
|
for (let i = 0; i < bookingList.length; i++) {
|
|
168
168
|
const booking = bookingList[i];
|
|
169
|
+
const appointmentStatus = String(booking.appointment_status ?? booking.status ?? "");
|
|
170
|
+
if (appointmentStatus === "new" || appointmentStatus === "rejected" || appointmentStatus === "cancelled")
|
|
171
|
+
continue;
|
|
169
172
|
const bookingStartAt = this.toBookingDateTime(booking.start_date, booking.start_time);
|
|
170
173
|
const bookingEndAt = this.toBookingDateTime(booking.end_date, booking.end_time);
|
|
171
174
|
if (!bookingStartAt.isValid() || !bookingEndAt.isValid())
|