@pisell/pisellos 2.3.29 → 2.3.30
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/model/strategy/adapter/index.d.ts +0 -4
- package/dist/model/strategy/adapter/index.js +1 -5
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/modules/Discount/index.d.ts +2 -5
- package/dist/modules/Discount/index.js +7 -30
- package/dist/modules/Discount/types.d.ts +0 -4
- package/dist/modules/Order/index.d.ts +28 -10
- package/dist/modules/Order/index.js +747 -498
- package/dist/modules/Order/payment-utils.d.ts +23 -0
- package/dist/modules/Order/payment-utils.js +203 -0
- package/dist/modules/Order/types.d.ts +33 -3
- package/dist/modules/Order/utils.js +4 -4
- package/dist/modules/Payment/index.d.ts +2 -0
- package/dist/modules/Payment/index.js +78 -49
- package/dist/modules/Payment/types.d.ts +26 -24
- package/dist/modules/Payment/types.js +2 -0
- package/dist/modules/Product/index.d.ts +1 -1
- package/dist/modules/Product/types.d.ts +0 -22
- package/dist/modules/ProductList/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +2 -4
- package/dist/modules/ProductList/types.d.ts +0 -2
- package/dist/server/index.d.ts +14 -50
- package/dist/server/index.js +1975 -1395
- package/dist/server/modules/order/index.d.ts +40 -3
- package/dist/server/modules/order/index.js +1200 -501
- package/dist/server/modules/order/types.d.ts +11 -3
- package/dist/server/modules/order/types.js +1 -1
- package/dist/server/modules/products/index.d.ts +7 -26
- package/dist/server/modules/products/index.js +76 -167
- package/dist/server/modules/products/types.d.ts +0 -14
- package/dist/solution/BaseSales/index.d.ts +33 -5
- package/dist/solution/BaseSales/index.js +622 -345
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +2 -1
- package/dist/solution/BookingTicket/types.d.ts +0 -2
- package/dist/solution/ShopDiscount/index.js +14 -15
- package/dist/utils/payment-number.d.ts +9 -0
- package/dist/utils/payment-number.js +69 -0
- package/lib/model/strategy/adapter/index.d.ts +0 -4
- package/lib/model/strategy/adapter/index.js +2 -13
- package/lib/modules/Discount/index.d.ts +2 -5
- package/lib/modules/Discount/index.js +3 -23
- package/lib/modules/Discount/types.d.ts +0 -4
- package/lib/modules/Order/index.d.ts +28 -10
- package/lib/modules/Order/index.js +181 -73
- package/lib/modules/Order/payment-utils.d.ts +23 -0
- package/lib/modules/Order/payment-utils.js +193 -0
- package/lib/modules/Order/types.d.ts +33 -3
- package/lib/modules/Order/utils.js +2 -3
- package/lib/modules/Payment/index.d.ts +2 -0
- package/lib/modules/Payment/index.js +33 -12
- package/lib/modules/Payment/types.d.ts +26 -24
- package/lib/modules/Product/index.d.ts +1 -1
- package/lib/modules/Product/types.d.ts +0 -22
- package/lib/modules/ProductList/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +2 -4
- package/lib/modules/ProductList/types.d.ts +0 -2
- package/lib/server/index.d.ts +14 -50
- package/lib/server/index.js +633 -214
- package/lib/server/modules/order/index.d.ts +40 -3
- package/lib/server/modules/order/index.js +434 -31
- package/lib/server/modules/order/types.d.ts +11 -3
- package/lib/server/modules/products/index.d.ts +7 -26
- package/lib/server/modules/products/index.js +35 -114
- package/lib/server/modules/products/types.d.ts +0 -14
- package/lib/solution/BaseSales/index.d.ts +33 -5
- package/lib/solution/BaseSales/index.js +170 -19
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +2 -1
- package/lib/solution/BookingTicket/types.d.ts +0 -2
- package/lib/solution/ShopDiscount/index.js +1 -2
- package/lib/utils/payment-number.d.ts +9 -0
- package/lib/utils/payment-number.js +64 -0
- package/package.json +1 -1
- package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
- package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
- package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
- package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
- package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
- package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
- package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
- package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
- package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
- package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
- package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
- package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
- package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
- package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
- package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
- package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
- package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
- package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
- package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
|
@@ -82,8 +82,13 @@ export interface ISalesBooking {
|
|
|
82
82
|
metadata?: Record<string, any> | null;
|
|
83
83
|
[key: string]: any;
|
|
84
84
|
}
|
|
85
|
+
export interface ISalesPaymentMetadata extends Record<string, any> {
|
|
86
|
+
/** 刷卡机设备快照;OS 不解析内部字段 */
|
|
87
|
+
card_reader_snapshot?: Record<string, unknown>;
|
|
88
|
+
}
|
|
85
89
|
export interface ISalesPayment {
|
|
86
90
|
order_payment_id?: number | null;
|
|
91
|
+
payment_number?: string;
|
|
87
92
|
custom_payment_id?: number;
|
|
88
93
|
code?: string;
|
|
89
94
|
name?: string;
|
|
@@ -95,7 +100,7 @@ export interface ISalesPayment {
|
|
|
95
100
|
status?: string;
|
|
96
101
|
payment_time?: string | null;
|
|
97
102
|
service_charge?: Record<string, any> | null;
|
|
98
|
-
metadata?:
|
|
103
|
+
metadata?: ISalesPaymentMetadata | null;
|
|
99
104
|
[key: string]: any;
|
|
100
105
|
}
|
|
101
106
|
export interface ISalesSurcharge {
|
|
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
311
311
|
date: string;
|
|
312
312
|
status: string;
|
|
313
313
|
week: string;
|
|
314
|
-
weekNum: 0 |
|
|
314
|
+
weekNum: 0 | 2 | 1 | 6 | 4 | 3 | 5;
|
|
315
315
|
}[]>;
|
|
316
316
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
317
317
|
private getScheduleDataByIds;
|
|
@@ -322,7 +322,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
|
|
|
322
322
|
* 获取当前的客户搜索条件
|
|
323
323
|
* @returns 当前搜索条件
|
|
324
324
|
*/
|
|
325
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
325
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
|
|
326
326
|
/**
|
|
327
327
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
328
328
|
* @returns 客户状态
|
|
@@ -1993,7 +1993,8 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
1993
1993
|
}, {
|
|
1994
1994
|
key: "getBookingConfig",
|
|
1995
1995
|
value: function getBookingConfig() {
|
|
1996
|
-
|
|
1996
|
+
var _this$store$bookingCo;
|
|
1997
|
+
return (_this$store$bookingCo = this.store.bookingContext) === null || _this$store$bookingCo === void 0 ? void 0 : _this$store$bookingCo.getBookingConfig();
|
|
1997
1998
|
}
|
|
1998
1999
|
|
|
1999
2000
|
/** 写入资源全集(来源:`/form/schedule`),同步派生 resourcesOriginMap。 */
|
|
@@ -756,7 +756,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
756
756
|
key: "loadPrepareConfig",
|
|
757
757
|
value: function () {
|
|
758
758
|
var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(params) {
|
|
759
|
-
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$discount8, _this$store$productLi2, orderId, customerId,
|
|
759
|
+
var _this$getCustomer2, _this$store$discount7, _this$getDiscountList, _this$store$discount8, _this$store$productLi2, orderId, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, _result3;
|
|
760
760
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
761
761
|
while (1) switch (_context9.prev = _context9.next) {
|
|
762
762
|
case 0:
|
|
@@ -777,8 +777,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
777
777
|
order_id: orderId
|
|
778
778
|
} : {}));
|
|
779
779
|
case 5:
|
|
780
|
-
|
|
781
|
-
goodPassList = (prepareConfigResult === null || prepareConfigResult === void 0 ? void 0 : prepareConfigResult.discountList) || [];
|
|
780
|
+
goodPassList = _context9.sent;
|
|
782
781
|
scanDiscount = (_this$getDiscountList = this.getDiscountList()) === null || _this$getDiscountList === void 0 ? void 0 : _this$getDiscountList.filter(function (item) {
|
|
783
782
|
return item.isScan;
|
|
784
783
|
}); // goodPassList 里可能有 scanDiscount 重合的部分,goodPassList 需要剔除
|
|
@@ -790,35 +789,35 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
790
789
|
});
|
|
791
790
|
newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || [])); // 存储原始优惠券列表
|
|
792
791
|
this.store.originalDiscountList = newDiscountList;
|
|
793
|
-
_context9.next =
|
|
792
|
+
_context9.next = 13;
|
|
794
793
|
return (_this$store$discount8 = this.store.discount) === null || _this$store$discount8 === void 0 ? void 0 : _this$store$discount8.setOriginalDiscountList(newDiscountList);
|
|
795
|
-
case
|
|
794
|
+
case 13:
|
|
796
795
|
// 根据当前预约时间过滤优惠券列表
|
|
797
796
|
filteredDiscountList = this.filterDiscountListByBookingTime(newDiscountList, this.store.currentBookingTime);
|
|
798
797
|
this.store.filteredDiscountList = filteredDiscountList;
|
|
799
798
|
this.setDiscountList(filteredDiscountList || []);
|
|
800
799
|
if (!((_this$store$productLi2 = this.store.productList) !== null && _this$store$productLi2 !== void 0 && _this$store$productLi2.length)) {
|
|
801
|
-
_context9.next =
|
|
800
|
+
_context9.next = 20;
|
|
802
801
|
break;
|
|
803
802
|
}
|
|
804
803
|
_result3 = this.calcDiscount(this.store.productList);
|
|
805
|
-
_context9.next =
|
|
804
|
+
_context9.next = 20;
|
|
806
805
|
return this.core.effects.emit("".concat(this.name, ":onLoadPrepareCalcResult"), _result3);
|
|
807
|
-
case
|
|
808
|
-
_context9.next =
|
|
806
|
+
case 20:
|
|
807
|
+
_context9.next = 22;
|
|
809
808
|
return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), filteredDiscountList);
|
|
810
|
-
case
|
|
811
|
-
_context9.next =
|
|
809
|
+
case 22:
|
|
810
|
+
_context9.next = 27;
|
|
812
811
|
break;
|
|
813
|
-
case
|
|
814
|
-
_context9.prev =
|
|
812
|
+
case 24:
|
|
813
|
+
_context9.prev = 24;
|
|
815
814
|
_context9.t0 = _context9["catch"](0);
|
|
816
815
|
console.error('[ShopDiscount] 加载准备配置出错:', _context9.t0);
|
|
817
|
-
case
|
|
816
|
+
case 27:
|
|
818
817
|
case "end":
|
|
819
818
|
return _context9.stop();
|
|
820
819
|
}
|
|
821
|
-
}, _callee9, this, [[0,
|
|
820
|
+
}, _callee9, this, [[0, 24]]);
|
|
822
821
|
}));
|
|
823
822
|
function loadPrepareConfig(_x9) {
|
|
824
823
|
return _loadPrepareConfig.apply(this, arguments);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type PaymentNumberAppDataGetter = (key: string) => unknown;
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the synchronous fallback without caching runtime device data.
|
|
4
|
+
*/
|
|
5
|
+
export declare function resolvePaymentNumberDevicePrefixFromDeviceId(getAppData: PaymentNumberAppDataGetter): string;
|
|
6
|
+
/**
|
|
7
|
+
* Resolve the latest device segment when a new payment number is generated.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolvePaymentNumberDevicePrefix(getAppData: PaymentNumberAppDataGetter): Promise<string>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
|
+
function normalizeNonEmptyString(value) {
|
|
6
|
+
if (value === undefined || value === null) return null;
|
|
7
|
+
if (typeof value !== 'string' && typeof value !== 'number') return null;
|
|
8
|
+
if (typeof value === 'number' && !Number.isFinite(value)) return null;
|
|
9
|
+
var normalized = String(value).trim();
|
|
10
|
+
return normalized || null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Resolve the synchronous fallback without caching runtime device data.
|
|
15
|
+
*/
|
|
16
|
+
export function resolvePaymentNumberDevicePrefixFromDeviceId(getAppData) {
|
|
17
|
+
try {
|
|
18
|
+
var deviceId = normalizeNonEmptyString(getAppData('device_id'));
|
|
19
|
+
if (deviceId && deviceId !== '0') return deviceId.slice(-2);
|
|
20
|
+
} catch (_unused) {
|
|
21
|
+
// The stable LOCAL prefix is the final fallback.
|
|
22
|
+
}
|
|
23
|
+
return 'LOCAL';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the latest device segment when a new payment number is generated.
|
|
28
|
+
*/
|
|
29
|
+
export function resolvePaymentNumberDevicePrefix(_x) {
|
|
30
|
+
return _resolvePaymentNumberDevicePrefix.apply(this, arguments);
|
|
31
|
+
}
|
|
32
|
+
function _resolvePaymentNumberDevicePrefix() {
|
|
33
|
+
_resolvePaymentNumberDevicePrefix = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(getAppData) {
|
|
34
|
+
var getAsyncIotDeviceInfo, info, shortNumber;
|
|
35
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
36
|
+
while (1) switch (_context.prev = _context.next) {
|
|
37
|
+
case 0:
|
|
38
|
+
_context.prev = 0;
|
|
39
|
+
getAsyncIotDeviceInfo = getAppData('async_iot_device_info');
|
|
40
|
+
if (!(typeof getAsyncIotDeviceInfo === 'function')) {
|
|
41
|
+
_context.next = 9;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
_context.next = 5;
|
|
45
|
+
return getAsyncIotDeviceInfo();
|
|
46
|
+
case 5:
|
|
47
|
+
info = _context.sent;
|
|
48
|
+
shortNumber = normalizeNonEmptyString(info === null || info === void 0 ? void 0 : info.short_number);
|
|
49
|
+
if (!(shortNumber && shortNumber !== '0')) {
|
|
50
|
+
_context.next = 9;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
return _context.abrupt("return", shortNumber);
|
|
54
|
+
case 9:
|
|
55
|
+
_context.next = 13;
|
|
56
|
+
break;
|
|
57
|
+
case 11:
|
|
58
|
+
_context.prev = 11;
|
|
59
|
+
_context.t0 = _context["catch"](0);
|
|
60
|
+
case 13:
|
|
61
|
+
return _context.abrupt("return", resolvePaymentNumberDevicePrefixFromDeviceId(getAppData));
|
|
62
|
+
case 14:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context.stop();
|
|
65
|
+
}
|
|
66
|
+
}, _callee, null, [[0, 11]]);
|
|
67
|
+
}));
|
|
68
|
+
return _resolvePaymentNumberDevicePrefix.apply(this, arguments);
|
|
69
|
+
}
|
|
@@ -5,7 +5,3 @@ export { PromotionEvaluator } from './promotion/evaluator';
|
|
|
5
5
|
export { PromotionAdapter } from './promotion/adapter';
|
|
6
6
|
export { ItemRuleEvaluator } from './itemRule/evaluator';
|
|
7
7
|
export { ItemRuleAdapter } from './itemRule/adapter';
|
|
8
|
-
export { DataVariantEvaluator } from './dataVariant/evaluator';
|
|
9
|
-
export { DataVariantAdapter } from './dataVariant/adapter';
|
|
10
|
-
export { runDataVariantDemo } from './dataVariant/examples';
|
|
11
|
-
export * from './dataVariant/type';
|
|
@@ -30,15 +30,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/model/strategy/adapter/index.ts
|
|
31
31
|
var adapter_exports = {};
|
|
32
32
|
__export(adapter_exports, {
|
|
33
|
-
DataVariantAdapter: () => import_adapter3.DataVariantAdapter,
|
|
34
|
-
DataVariantEvaluator: () => import_evaluator4.DataVariantEvaluator,
|
|
35
33
|
ItemRuleAdapter: () => import_adapter2.ItemRuleAdapter,
|
|
36
34
|
ItemRuleEvaluator: () => import_evaluator3.ItemRuleEvaluator,
|
|
37
35
|
PromotionAdapter: () => import_adapter.PromotionAdapter,
|
|
38
36
|
PromotionEvaluator: () => import_evaluator2.PromotionEvaluator,
|
|
39
37
|
WalletPassAdapter: () => import_walletPass.default,
|
|
40
|
-
WalletPassEvaluator: () => import_evaluator.WalletPassEvaluator
|
|
41
|
-
runDataVariantDemo: () => import_examples.runDataVariantDemo
|
|
38
|
+
WalletPassEvaluator: () => import_evaluator.WalletPassEvaluator
|
|
42
39
|
});
|
|
43
40
|
module.exports = __toCommonJS(adapter_exports);
|
|
44
41
|
__reExport(adapter_exports, require("./type"), module.exports);
|
|
@@ -48,21 +45,13 @@ var import_evaluator2 = require("./promotion/evaluator");
|
|
|
48
45
|
var import_adapter = require("./promotion/adapter");
|
|
49
46
|
var import_evaluator3 = require("./itemRule/evaluator");
|
|
50
47
|
var import_adapter2 = require("./itemRule/adapter");
|
|
51
|
-
var import_evaluator4 = require("./dataVariant/evaluator");
|
|
52
|
-
var import_adapter3 = require("./dataVariant/adapter");
|
|
53
|
-
var import_examples = require("./dataVariant/examples");
|
|
54
|
-
__reExport(adapter_exports, require("./dataVariant/type"), module.exports);
|
|
55
48
|
// Annotate the CommonJS export names for ESM import in node:
|
|
56
49
|
0 && (module.exports = {
|
|
57
|
-
DataVariantAdapter,
|
|
58
|
-
DataVariantEvaluator,
|
|
59
50
|
ItemRuleAdapter,
|
|
60
51
|
ItemRuleEvaluator,
|
|
61
52
|
PromotionAdapter,
|
|
62
53
|
PromotionEvaluator,
|
|
63
54
|
WalletPassAdapter,
|
|
64
55
|
WalletPassEvaluator,
|
|
65
|
-
|
|
66
|
-
...require("./type"),
|
|
67
|
-
...require("./dataVariant/type")
|
|
56
|
+
...require("./type")
|
|
68
57
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { Discount, DiscountModuleAPI, DiscountWithReason
|
|
3
|
+
import { Discount, DiscountModuleAPI, DiscountWithReason } from './types';
|
|
4
4
|
export declare class DiscountModule extends BaseModule implements Module, DiscountModuleAPI {
|
|
5
5
|
protected defaultName: string;
|
|
6
6
|
protected defaultVersion: string;
|
|
@@ -16,18 +16,15 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
|
|
|
16
16
|
getDiscountList(): Discount[];
|
|
17
17
|
setOriginalDiscountList(originalDiscountList: Discount[]): Promise<void>;
|
|
18
18
|
getOriginalDiscountList(): Discount[];
|
|
19
|
-
private normalizePositiveNumberIds;
|
|
20
19
|
loadPrepareConfig(params: {
|
|
21
20
|
action?: 'create' | 'edit';
|
|
22
21
|
with_good_pass: 0 | 1;
|
|
23
22
|
with_discount_card: 0 | 1;
|
|
24
23
|
customer_id: number;
|
|
25
24
|
with_wallet_pass_holder: 0 | 1;
|
|
26
|
-
with_available_wallet_flag?: 0 | 1;
|
|
27
|
-
with_available_wallet_pass_flag?: 0 | 1;
|
|
28
25
|
request_timezone: string;
|
|
29
26
|
order_id?: number | string;
|
|
30
|
-
}): Promise<
|
|
27
|
+
}): Promise<Discount[]>;
|
|
31
28
|
batchSearch(code: string, options?: {
|
|
32
29
|
customerId?: number;
|
|
33
30
|
orderId?: number;
|
|
@@ -91,43 +91,23 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
|
91
91
|
getOriginalDiscountList() {
|
|
92
92
|
return this.store.originalDiscountList || [];
|
|
93
93
|
}
|
|
94
|
-
normalizePositiveNumberIds(values) {
|
|
95
|
-
const ids = values.map((value) => Number(value)).filter((value) => Number.isFinite(value) && value > 0);
|
|
96
|
-
return Array.from(new Set(ids));
|
|
97
|
-
}
|
|
98
94
|
async loadPrepareConfig(params) {
|
|
99
|
-
var _a, _b
|
|
95
|
+
var _a, _b;
|
|
100
96
|
if (typeof params.order_id === "string" && params.order_id.startsWith("LOCAL_")) {
|
|
101
97
|
params.order_id = void 0;
|
|
102
98
|
}
|
|
103
99
|
const prepareConfig = await this.request.post(
|
|
104
100
|
`/order/prepare/config`,
|
|
105
|
-
|
|
106
|
-
...params,
|
|
107
|
-
with_available_wallet_flag: params.with_available_wallet_flag ?? 1,
|
|
108
|
-
with_available_wallet_pass_flag: params.with_available_wallet_pass_flag ?? 1
|
|
109
|
-
}
|
|
101
|
+
params
|
|
110
102
|
);
|
|
111
103
|
const rawDiscountList = [
|
|
112
104
|
...((_a = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _a.good_pass_list) || [],
|
|
113
105
|
...((_b = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _b.discount_card_list) || []
|
|
114
106
|
];
|
|
115
|
-
const availableWalletList = [
|
|
116
|
-
...((_c = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _c.avaiable_wallet_list) || [],
|
|
117
|
-
...((_d = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _d.available_wallet_list) || []
|
|
118
|
-
];
|
|
119
|
-
const availableWalletPassList = ((_e = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _e.available_wallet_pass_list) || [];
|
|
120
|
-
const availableWalletIds = this.normalizePositiveNumberIds([
|
|
121
|
-
...availableWalletList.map((item) => item == null ? void 0 : item.wallet_id),
|
|
122
|
-
...availableWalletPassList.map((item) => item == null ? void 0 : item.product_id)
|
|
123
|
-
]);
|
|
124
107
|
const goodPassList = this.filterEnabledDiscountList(
|
|
125
108
|
rawDiscountList
|
|
126
109
|
) || [];
|
|
127
|
-
return
|
|
128
|
-
discountList: goodPassList,
|
|
129
|
-
availableWalletIds
|
|
130
|
-
};
|
|
110
|
+
return goodPassList;
|
|
131
111
|
}
|
|
132
112
|
async batchSearch(code, options) {
|
|
133
113
|
const { customerId, orderId } = options || {};
|
|
@@ -68,10 +68,6 @@ export interface DiscountWithReason {
|
|
|
68
68
|
discountList: Discount[];
|
|
69
69
|
unavailableReasonKey: DiscountFilterRejectKey | null;
|
|
70
70
|
}
|
|
71
|
-
export interface DiscountPrepareConfigResult {
|
|
72
|
-
discountList: Discount[];
|
|
73
|
-
availableWalletIds: number[];
|
|
74
|
-
}
|
|
75
71
|
interface ExtensionData {
|
|
76
72
|
id: number;
|
|
77
73
|
shop_id: number;
|
|
@@ -3,7 +3,7 @@ import { BaseModule } from '../BaseModule';
|
|
|
3
3
|
import { OrderModuleAPI, CommitOrderParams, UpdateOrderBookingParams, UpdateOrderProductParams, UpdateOrderProductQuantityParams, CheckoutOrderParams, CancelOrderParams, ChangeBookingStatusParams } from './types';
|
|
4
4
|
import { CartItem } from '../Cart/types';
|
|
5
5
|
import { type SubmitPayloadEnhancer } from './utils';
|
|
6
|
-
import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView, ReplaceTempOrderOptions, OrderPromotionEvaluator, OrderGiftSelectResolver, OrderUnfulfilledPromotion, OrderLastGiftActions } from './types';
|
|
6
|
+
import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, OrderPaymentUpdateOptions, OrderPaymentUpdateResult, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView, ReplaceTempOrderOptions, OrderPromotionEvaluator, OrderGiftSelectResolver, OrderUnfulfilledPromotion, OrderLastGiftActions } from './types';
|
|
7
7
|
import type { ICustomer } from '../AccountList/types';
|
|
8
8
|
import type { Discount } from '../Discount/types';
|
|
9
9
|
import { UnavailableReason } from '../Rules/types';
|
|
@@ -14,6 +14,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
14
14
|
private request;
|
|
15
15
|
private logger;
|
|
16
16
|
private window;
|
|
17
|
+
private appPlugin;
|
|
17
18
|
private cacheId;
|
|
18
19
|
private salesSummaryModuleName;
|
|
19
20
|
private rulesHooksOverride?;
|
|
@@ -75,7 +76,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
75
76
|
apply?: boolean;
|
|
76
77
|
}): Promise<Discount[]>;
|
|
77
78
|
getDiscountList(): Discount[];
|
|
78
|
-
getAvailableWalletIds(): number[];
|
|
79
79
|
private syncScannedDiscountsToOriginalDiscountList;
|
|
80
80
|
private ensureEditDiscountConfigForProductChange;
|
|
81
81
|
scanCode(code: string, customerId?: number): Promise<{
|
|
@@ -176,6 +176,9 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
176
176
|
};
|
|
177
177
|
private calculateDepositPaidAmount;
|
|
178
178
|
private resolveNextOrderPaymentType;
|
|
179
|
+
private getPaymentNumberAppData;
|
|
180
|
+
private getPaymentNumberDevicePrefixSync;
|
|
181
|
+
private getPaymentNumberDevicePrefixAsync;
|
|
179
182
|
private normalizePaymentSource;
|
|
180
183
|
private updateTempOrderPaymentStatus;
|
|
181
184
|
private shouldKeepPaymentStatusAfterAmountRecalc;
|
|
@@ -307,19 +310,20 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
307
310
|
* 用一组支付来源覆盖当前订单支付项。
|
|
308
311
|
*
|
|
309
312
|
* 入参允许来自 PaymentModule 的 PaymentItem,内部统一映射为 Sales 协议:
|
|
310
|
-
* uuid
|
|
313
|
+
* 新支付来源的 uuid 会作为 payment_number 的唯一号段,id -> custom_payment_id,
|
|
311
314
|
* isSynced 等运行态字段不会进入 tempOrder.payments。
|
|
312
315
|
*/
|
|
313
316
|
setOrderPayments(payments: OrderPaymentSource[]): OrderPaymentData[];
|
|
314
|
-
/**
|
|
317
|
+
/** 同步兼容入口:按调用当下的 device_id 或 LOCAL 生成支付编号。 */
|
|
315
318
|
addOrderPayment(payment: OrderPaymentSource): OrderPaymentData[];
|
|
319
|
+
/** 异步入口:创建支付项时读取最新 IoT 设备短号。 */
|
|
320
|
+
addOrderPaymentAsync(payment: OrderPaymentSource): Promise<OrderPaymentData[]>;
|
|
321
|
+
private addOrderPaymentWithDevicePrefix;
|
|
316
322
|
/**
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
* 该方法服务 PaymentModal 的 void / 编辑场景;更新 metadata 时会做浅合并,
|
|
320
|
-
* 避免覆盖 unique_payment_number、现金实付/找零等已有元数据。
|
|
323
|
+
* 默认按支付唯一号精确更新;仅显式指定 legacy 时兼容历史支付标识。
|
|
324
|
+
* metadata 与 transactions 会分别合并,避免覆盖支付会话号和已有交易记录。
|
|
321
325
|
*/
|
|
322
|
-
updateOrderPayment(paymentIdentity: string | number, updates: Partial<OrderPaymentData> & Record<string, any
|
|
326
|
+
updateOrderPayment(paymentIdentity: string | number, updates: Partial<OrderPaymentData> & Record<string, any>, options?: OrderPaymentUpdateOptions): Promise<OrderPaymentUpdateResult>;
|
|
323
327
|
/** 从当前订单支付项中移除指定支付项。 */
|
|
324
328
|
deleteOrderPayment(paymentIdentity: string | number): OrderPaymentData[];
|
|
325
329
|
private confirmPendingVoucherPaymentsInList;
|
|
@@ -342,7 +346,11 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
342
346
|
*/
|
|
343
347
|
updateVoucherOrderPayments(payments: OrderPaymentSource[], options?: {
|
|
344
348
|
status?: 'paid' | 'payment_pending';
|
|
349
|
+
devicePrefix?: string;
|
|
345
350
|
}): OrderPaymentData[];
|
|
351
|
+
updateVoucherOrderPaymentsAsync(payments: OrderPaymentSource[], options?: {
|
|
352
|
+
status?: 'paid' | 'payment_pending';
|
|
353
|
+
}): Promise<OrderPaymentData[]>;
|
|
346
354
|
private shouldMergeProductToOrder;
|
|
347
355
|
private hasOrderProductLineNote;
|
|
348
356
|
/**
|
|
@@ -427,6 +435,14 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
427
435
|
type?: string;
|
|
428
436
|
}): import("./types").OrderSubmitPayload;
|
|
429
437
|
applyLocalPrintOrderNumbers(order?: Record<string, any> | null): Promise<OrderTempOrder>;
|
|
438
|
+
saveTempOrderAsDraft<T = any>(params?: {
|
|
439
|
+
cacheId?: string;
|
|
440
|
+
platform?: string;
|
|
441
|
+
businessCode?: string;
|
|
442
|
+
channel?: string;
|
|
443
|
+
type?: string;
|
|
444
|
+
enhancePayload?: SubmitPayloadEnhancer;
|
|
445
|
+
}): Promise<T>;
|
|
430
446
|
/**
|
|
431
447
|
* 提交当前 Sales tempOrder。
|
|
432
448
|
*
|
|
@@ -468,7 +484,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
468
484
|
generateIdempotencyToken(): string;
|
|
469
485
|
syncPaymentsToOrder<T = any>(params: SyncPaymentsToOrderParams): Promise<SyncPaymentsToOrderResult<T>>;
|
|
470
486
|
createOrder(params: CommitOrderParams['query']): {
|
|
471
|
-
type: "
|
|
487
|
+
type: "virtual" | "appointment_booking";
|
|
472
488
|
platform: string;
|
|
473
489
|
sales_channel: string;
|
|
474
490
|
order_sales_channel: string;
|
|
@@ -531,6 +547,8 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
531
547
|
*/
|
|
532
548
|
private seedAnonymousBookingUidsFromProducts;
|
|
533
549
|
private normalizeTempOrderForRuntime;
|
|
550
|
+
private isSyntheticDraftOrderIdForRuntime;
|
|
551
|
+
private withoutSyntheticDraftOrderIdForRuntime;
|
|
534
552
|
private hydrateLinkedBookingIdentity;
|
|
535
553
|
private pickHydratedDisplayText;
|
|
536
554
|
private formatHydratedNamePair;
|