@pisell/pisellos 2.2.204 → 2.2.205
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/promotion/index.js +0 -9
- package/dist/modules/Order/index.js +9 -3
- package/dist/modules/Payment/index.d.ts +0 -13
- package/dist/modules/Payment/index.js +449 -833
- package/dist/plugins/request.d.ts +1 -0
- package/dist/server/index.d.ts +6 -0
- package/dist/server/index.js +730 -619
- package/dist/server/modules/index.d.ts +2 -0
- package/dist/server/modules/index.js +2 -0
- package/dist/server/modules/payment/index.d.ts +28 -0
- package/dist/server/modules/payment/index.js +305 -0
- package/dist/server/modules/payment/types.d.ts +9 -0
- package/dist/server/modules/payment/types.js +1 -0
- package/dist/solution/BaseSales/index.d.ts +6 -1
- package/dist/solution/BaseSales/index.js +67 -18
- package/dist/solution/BookingTicket/index.js +1 -1
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +51 -52
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/modules/Order/index.js +5 -1
- package/lib/modules/Payment/index.d.ts +0 -13
- package/lib/modules/Payment/index.js +6 -149
- package/lib/plugins/request.d.ts +1 -0
- package/lib/server/index.d.ts +6 -0
- package/lib/server/index.js +46 -0
- package/lib/server/modules/index.d.ts +2 -0
- package/lib/server/modules/index.js +3 -0
- package/lib/server/modules/payment/index.d.ts +28 -0
- package/lib/server/modules/payment/index.js +192 -0
- package/lib/server/modules/payment/types.d.ts +9 -0
- package/lib/server/modules/payment/types.js +17 -0
- package/lib/solution/BaseSales/index.d.ts +6 -1
- package/lib/solution/BaseSales/index.js +51 -5
- package/lib/solution/BookingTicket/index.js +1 -1
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +1 -2
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +17 -3
- package/package.json +1 -1
|
@@ -16,6 +16,8 @@ export type { ScheduleState, ScheduleItem } from './schedule/types';
|
|
|
16
16
|
export { OrderModule } from './order';
|
|
17
17
|
export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, OrderFilterRejectDetail, OrderFilterRejectedEntry, BookingFilterResult, OrderModulePagedResult, } from './order/types';
|
|
18
18
|
export { OrderHooks } from './order/types';
|
|
19
|
+
export { PaymentServerModule } from './payment';
|
|
20
|
+
export type { PaymentMethod, PaymentMethodsChangedEventData, PaymentServerState } from './payment/types';
|
|
19
21
|
export { FloorPlanModule } from './floor-plan';
|
|
20
22
|
export type { FloorPlanItem, FloorPlanState, FloorPlanSyncMessage } from './floor-plan/types';
|
|
21
23
|
export { FloorPlanHooks } from './floor-plan/types';
|
|
@@ -21,6 +21,8 @@ export { ScheduleModuleEx } from "./schedule";
|
|
|
21
21
|
export { OrderModule } from "./order";
|
|
22
22
|
export { OrderHooks } from "./order/types";
|
|
23
23
|
|
|
24
|
+
// Payment 模块
|
|
25
|
+
export { PaymentServerModule } from "./payment";
|
|
24
26
|
// 平面图(floor-plan)
|
|
25
27
|
export { FloorPlanModule } from "./floor-plan";
|
|
26
28
|
export { FloorPlanHooks } from "./floor-plan/types";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Module, ModuleOptions, PisellCore } from '../../../types';
|
|
2
|
+
import { BaseModule } from '../../../modules/BaseModule';
|
|
3
|
+
import type { PaymentMethod } from './types';
|
|
4
|
+
export declare class PaymentServerModule extends BaseModule implements Module {
|
|
5
|
+
protected defaultName: string;
|
|
6
|
+
protected defaultVersion: string;
|
|
7
|
+
private request;
|
|
8
|
+
private app;
|
|
9
|
+
private logger;
|
|
10
|
+
private store;
|
|
11
|
+
private payMethodMemoryCache;
|
|
12
|
+
private payMethodListInFlight;
|
|
13
|
+
constructor(name?: string, version?: string);
|
|
14
|
+
initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
|
|
15
|
+
getPayMethodListAsync(options?: {
|
|
16
|
+
shouldFilter?: boolean;
|
|
17
|
+
}): Promise<PaymentMethod[]>;
|
|
18
|
+
clearPayMethodCache(): void;
|
|
19
|
+
private loadPayMethodListAsync;
|
|
20
|
+
private fetchRemotePayMethods;
|
|
21
|
+
private shouldFilterPayMethods;
|
|
22
|
+
private resolvePayMethods;
|
|
23
|
+
private filterPayMethods;
|
|
24
|
+
private setPayMethodCache;
|
|
25
|
+
private logInfo;
|
|
26
|
+
private logWarning;
|
|
27
|
+
private logError;
|
|
28
|
+
}
|
|
@@ -0,0 +1,305 @@
|
|
|
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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
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; }
|
|
5
|
+
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); } }
|
|
6
|
+
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); }); }; }
|
|
7
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
9
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
10
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
11
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
12
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
13
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
14
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
15
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
16
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
17
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
import { BaseModule } from "../../../modules/BaseModule";
|
|
21
|
+
var WALLET_PASS_CODE = 'WALLET_PASS';
|
|
22
|
+
var WALLET_DEPENDENT_CODES = new Set(['PRODUCTVOUCHER', 'GIFTCARD', 'POINTCARD']);
|
|
23
|
+
var PAYMENT_METHODS_LOADED_EVENT = 'payment:onPaymentMethodsLoaded';
|
|
24
|
+
export var PaymentServerModule = /*#__PURE__*/function (_BaseModule) {
|
|
25
|
+
_inherits(PaymentServerModule, _BaseModule);
|
|
26
|
+
var _super = _createSuper(PaymentServerModule);
|
|
27
|
+
function PaymentServerModule(name, version) {
|
|
28
|
+
var _this;
|
|
29
|
+
_classCallCheck(this, PaymentServerModule);
|
|
30
|
+
_this = _super.call(this, name || 'payment', version);
|
|
31
|
+
_defineProperty(_assertThisInitialized(_this), "defaultName", 'payment');
|
|
32
|
+
_defineProperty(_assertThisInitialized(_this), "defaultVersion", '1.0.0');
|
|
33
|
+
_defineProperty(_assertThisInitialized(_this), "request", void 0);
|
|
34
|
+
_defineProperty(_assertThisInitialized(_this), "app", void 0);
|
|
35
|
+
_defineProperty(_assertThisInitialized(_this), "logger", void 0);
|
|
36
|
+
_defineProperty(_assertThisInitialized(_this), "store", void 0);
|
|
37
|
+
_defineProperty(_assertThisInitialized(_this), "payMethodMemoryCache", null);
|
|
38
|
+
_defineProperty(_assertThisInitialized(_this), "payMethodListInFlight", null);
|
|
39
|
+
return _this;
|
|
40
|
+
}
|
|
41
|
+
_createClass(PaymentServerModule, [{
|
|
42
|
+
key: "initialize",
|
|
43
|
+
value: function () {
|
|
44
|
+
var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(core, options) {
|
|
45
|
+
var _this$app, _this$app2, _this$app3;
|
|
46
|
+
var appPlugin;
|
|
47
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
48
|
+
while (1) switch (_context.prev = _context.next) {
|
|
49
|
+
case 0:
|
|
50
|
+
this.core = core;
|
|
51
|
+
this.store = options === null || options === void 0 ? void 0 : options.store;
|
|
52
|
+
if (!this.store) this.store = {
|
|
53
|
+
payMethods: []
|
|
54
|
+
};
|
|
55
|
+
if (!Array.isArray(this.store.payMethods)) this.store.payMethods = [];
|
|
56
|
+
this.request = core.getPlugin('request');
|
|
57
|
+
appPlugin = core.getPlugin('app');
|
|
58
|
+
this.app = appPlugin === null || appPlugin === void 0 ? void 0 : appPlugin.getApp();
|
|
59
|
+
this.logger = (_this$app = this.app) === null || _this$app === void 0 ? void 0 : _this$app.logger;
|
|
60
|
+
if (!(!this.request && !((_this$app2 = this.app) !== null && _this$app2 !== void 0 && _this$app2.request))) {
|
|
61
|
+
_context.next = 10;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
throw new Error('PaymentServerModule 需要 request 插件或 app.request 支持');
|
|
65
|
+
case 10:
|
|
66
|
+
this.logInfo('PaymentServerModule initialized successfully', {
|
|
67
|
+
hasAppRequest: !!((_this$app3 = this.app) !== null && _this$app3 !== void 0 && _this$app3.request)
|
|
68
|
+
});
|
|
69
|
+
case 11:
|
|
70
|
+
case "end":
|
|
71
|
+
return _context.stop();
|
|
72
|
+
}
|
|
73
|
+
}, _callee, this);
|
|
74
|
+
}));
|
|
75
|
+
function initialize(_x, _x2) {
|
|
76
|
+
return _initialize.apply(this, arguments);
|
|
77
|
+
}
|
|
78
|
+
return initialize;
|
|
79
|
+
}() // getRoutes(): RouteDefinition[] {
|
|
80
|
+
// return [
|
|
81
|
+
// {
|
|
82
|
+
// method: 'get',
|
|
83
|
+
// path: '/pay/custom-payment/all',
|
|
84
|
+
// handler: async ({ data, config }) => {
|
|
85
|
+
// const payMethods = await this.getPayMethodListAsync({
|
|
86
|
+
// shouldFilter: this.shouldFilterPayMethods(data, config),
|
|
87
|
+
// });
|
|
88
|
+
// return {
|
|
89
|
+
// code: 200,
|
|
90
|
+
// status: true,
|
|
91
|
+
// data: payMethods,
|
|
92
|
+
// };
|
|
93
|
+
// },
|
|
94
|
+
// },
|
|
95
|
+
// ];
|
|
96
|
+
// }
|
|
97
|
+
}, {
|
|
98
|
+
key: "getPayMethodListAsync",
|
|
99
|
+
value: function () {
|
|
100
|
+
var _getPayMethodListAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
101
|
+
var _this$payMethodMemory,
|
|
102
|
+
_this2 = this;
|
|
103
|
+
var options,
|
|
104
|
+
_payMethods,
|
|
105
|
+
payMethods,
|
|
106
|
+
_args2 = arguments;
|
|
107
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
108
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
109
|
+
case 0:
|
|
110
|
+
options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
|
|
111
|
+
this.logInfo('Starting getPayMethodListAsync');
|
|
112
|
+
if (!((_this$payMethodMemory = this.payMethodMemoryCache) !== null && _this$payMethodMemory !== void 0 && _this$payMethodMemory.length)) {
|
|
113
|
+
_context2.next = 4;
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
return _context2.abrupt("return", this.resolvePayMethods(this.payMethodMemoryCache, options));
|
|
117
|
+
case 4:
|
|
118
|
+
if (!this.payMethodListInFlight) {
|
|
119
|
+
_context2.next = 9;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
_context2.next = 7;
|
|
123
|
+
return this.payMethodListInFlight;
|
|
124
|
+
case 7:
|
|
125
|
+
_payMethods = _context2.sent;
|
|
126
|
+
return _context2.abrupt("return", this.resolvePayMethods(_payMethods, options));
|
|
127
|
+
case 9:
|
|
128
|
+
this.payMethodListInFlight = this.loadPayMethodListAsync().finally(function () {
|
|
129
|
+
_this2.payMethodListInFlight = null;
|
|
130
|
+
});
|
|
131
|
+
_context2.next = 12;
|
|
132
|
+
return this.payMethodListInFlight;
|
|
133
|
+
case 12:
|
|
134
|
+
payMethods = _context2.sent;
|
|
135
|
+
return _context2.abrupt("return", this.resolvePayMethods(payMethods, options));
|
|
136
|
+
case 14:
|
|
137
|
+
case "end":
|
|
138
|
+
return _context2.stop();
|
|
139
|
+
}
|
|
140
|
+
}, _callee2, this);
|
|
141
|
+
}));
|
|
142
|
+
function getPayMethodListAsync() {
|
|
143
|
+
return _getPayMethodListAsync.apply(this, arguments);
|
|
144
|
+
}
|
|
145
|
+
return getPayMethodListAsync;
|
|
146
|
+
}()
|
|
147
|
+
}, {
|
|
148
|
+
key: "clearPayMethodCache",
|
|
149
|
+
value: function clearPayMethodCache() {
|
|
150
|
+
this.payMethodMemoryCache = null;
|
|
151
|
+
this.store.payMethods = [];
|
|
152
|
+
}
|
|
153
|
+
}, {
|
|
154
|
+
key: "loadPayMethodListAsync",
|
|
155
|
+
value: function () {
|
|
156
|
+
var _loadPayMethodListAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
157
|
+
var payMethods;
|
|
158
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
159
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
160
|
+
case 0:
|
|
161
|
+
_context3.prev = 0;
|
|
162
|
+
_context3.next = 3;
|
|
163
|
+
return this.fetchRemotePayMethods();
|
|
164
|
+
case 3:
|
|
165
|
+
payMethods = _context3.sent;
|
|
166
|
+
this.setPayMethodCache(payMethods);
|
|
167
|
+
_context3.next = 7;
|
|
168
|
+
return this.core.effects.emit(PAYMENT_METHODS_LOADED_EVENT, payMethods);
|
|
169
|
+
case 7:
|
|
170
|
+
this.logInfo('getPayMethodListAsync completed successfully', {
|
|
171
|
+
payMethods: payMethods
|
|
172
|
+
});
|
|
173
|
+
return _context3.abrupt("return", payMethods);
|
|
174
|
+
case 11:
|
|
175
|
+
_context3.prev = 11;
|
|
176
|
+
_context3.t0 = _context3["catch"](0);
|
|
177
|
+
console.error('[PaymentServerModule] 获取支付方式列表失败', _context3.t0);
|
|
178
|
+
this.logError('getPayMethodListAsync failed', _context3.t0);
|
|
179
|
+
return _context3.abrupt("return", []);
|
|
180
|
+
case 16:
|
|
181
|
+
case "end":
|
|
182
|
+
return _context3.stop();
|
|
183
|
+
}
|
|
184
|
+
}, _callee3, this, [[0, 11]]);
|
|
185
|
+
}));
|
|
186
|
+
function loadPayMethodListAsync() {
|
|
187
|
+
return _loadPayMethodListAsync.apply(this, arguments);
|
|
188
|
+
}
|
|
189
|
+
return loadPayMethodListAsync;
|
|
190
|
+
}()
|
|
191
|
+
}, {
|
|
192
|
+
key: "fetchRemotePayMethods",
|
|
193
|
+
value: function () {
|
|
194
|
+
var _fetchRemotePayMethods = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
195
|
+
var _this$app4;
|
|
196
|
+
var requester, response, payMethods;
|
|
197
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
198
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
199
|
+
case 0:
|
|
200
|
+
requester = ((_this$app4 = this.app) === null || _this$app4 === void 0 ? void 0 : _this$app4.request) || this.request;
|
|
201
|
+
_context4.next = 3;
|
|
202
|
+
return requester.get('/shop/pay/custom-payment/all', undefined);
|
|
203
|
+
case 3:
|
|
204
|
+
response = _context4.sent;
|
|
205
|
+
payMethods = (response === null || response === void 0 ? void 0 : response.data) || response || [];
|
|
206
|
+
return _context4.abrupt("return", Array.isArray(payMethods) ? payMethods : []);
|
|
207
|
+
case 6:
|
|
208
|
+
case "end":
|
|
209
|
+
return _context4.stop();
|
|
210
|
+
}
|
|
211
|
+
}, _callee4, this);
|
|
212
|
+
}));
|
|
213
|
+
function fetchRemotePayMethods() {
|
|
214
|
+
return _fetchRemotePayMethods.apply(this, arguments);
|
|
215
|
+
}
|
|
216
|
+
return fetchRemotePayMethods;
|
|
217
|
+
}()
|
|
218
|
+
}, {
|
|
219
|
+
key: "shouldFilterPayMethods",
|
|
220
|
+
value: function shouldFilterPayMethods(data, config) {
|
|
221
|
+
return (data === null || data === void 0 ? void 0 : data.filterPaymentMethods) === true || (config === null || config === void 0 ? void 0 : config.filterPaymentMethods) === true;
|
|
222
|
+
}
|
|
223
|
+
}, {
|
|
224
|
+
key: "resolvePayMethods",
|
|
225
|
+
value: function resolvePayMethods(payMethods, options) {
|
|
226
|
+
if (!options.shouldFilter) return payMethods;
|
|
227
|
+
return this.filterPayMethods(payMethods);
|
|
228
|
+
}
|
|
229
|
+
}, {
|
|
230
|
+
key: "filterPayMethods",
|
|
231
|
+
value: function filterPayMethods(payMethods) {
|
|
232
|
+
if (!Array.isArray(payMethods)) return [];
|
|
233
|
+
var availableMethods = payMethods.filter(function (method) {
|
|
234
|
+
return method.status === 1 && method.disable === 0;
|
|
235
|
+
});
|
|
236
|
+
var walletPassMethod = availableMethods.find(function (method) {
|
|
237
|
+
return method.code === WALLET_PASS_CODE;
|
|
238
|
+
});
|
|
239
|
+
if (!walletPassMethod) {
|
|
240
|
+
return availableMethods.filter(function (method) {
|
|
241
|
+
return !WALLET_DEPENDENT_CODES.has(method.code);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
availableMethods = availableMethods.map(function (method) {
|
|
245
|
+
if (!WALLET_DEPENDENT_CODES.has(method.code)) return method;
|
|
246
|
+
return _objectSpread(_objectSpread({}, method), {}, {
|
|
247
|
+
channel_application: walletPassMethod.channel_application
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
return availableMethods;
|
|
251
|
+
}
|
|
252
|
+
}, {
|
|
253
|
+
key: "setPayMethodCache",
|
|
254
|
+
value: function setPayMethodCache(payMethods) {
|
|
255
|
+
this.payMethodMemoryCache = payMethods;
|
|
256
|
+
this.store.payMethods = payMethods;
|
|
257
|
+
}
|
|
258
|
+
}, {
|
|
259
|
+
key: "logInfo",
|
|
260
|
+
value: function logInfo(title, metadata) {
|
|
261
|
+
try {
|
|
262
|
+
if (this.logger) {
|
|
263
|
+
this.logger.addLog({
|
|
264
|
+
type: 'info',
|
|
265
|
+
title: "[PaymentServerModule] ".concat(title),
|
|
266
|
+
metadata: metadata || {}
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
} catch (_unused) {
|
|
270
|
+
// 日志记录失败不影响主流程
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}, {
|
|
274
|
+
key: "logWarning",
|
|
275
|
+
value: function logWarning(title, metadata) {
|
|
276
|
+
try {
|
|
277
|
+
if (this.logger) {
|
|
278
|
+
this.logger.addLog({
|
|
279
|
+
type: 'warning',
|
|
280
|
+
title: "[PaymentServerModule] ".concat(title),
|
|
281
|
+
metadata: metadata || {}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
} catch (_unused2) {
|
|
285
|
+
// 日志记录失败不影响主流程
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}, {
|
|
289
|
+
key: "logError",
|
|
290
|
+
value: function logError(title, metadata) {
|
|
291
|
+
try {
|
|
292
|
+
if (this.logger) {
|
|
293
|
+
this.logger.addLog({
|
|
294
|
+
type: 'error',
|
|
295
|
+
title: "[PaymentServerModule] ".concat(title),
|
|
296
|
+
metadata: metadata || {}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
} catch (_unused3) {
|
|
300
|
+
// 日志记录失败不影响主流程
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}]);
|
|
304
|
+
return PaymentServerModule;
|
|
305
|
+
}(BaseModule);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PaymentMethod } from '../../../modules/Payment/types';
|
|
2
|
+
export interface PaymentServerState {
|
|
3
|
+
payMethods: PaymentMethod[];
|
|
4
|
+
}
|
|
5
|
+
export interface PaymentMethodsChangedEventData {
|
|
6
|
+
oldMethods: PaymentMethod[];
|
|
7
|
+
newMethods: PaymentMethod[];
|
|
8
|
+
}
|
|
9
|
+
export type { PaymentMethod };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -9,6 +9,7 @@ import { RequestPlugin, WindowPlugin } from '../../plugins';
|
|
|
9
9
|
export * from './types';
|
|
10
10
|
import { ProductList } from '../../modules/ProductList';
|
|
11
11
|
import { PaymentModule } from '../../modules/Payment';
|
|
12
|
+
import type { PaymentMethod } from '../../modules/Payment/types';
|
|
12
13
|
import type { SalesSummaryModule } from '../../modules/SalesSummary';
|
|
13
14
|
import type { ScheduleModule } from '../../modules/Schedule';
|
|
14
15
|
import { QuotationModule } from '../../modules/Quotation';
|
|
@@ -41,6 +42,7 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
41
42
|
protected currentSalesDetail: ISalesDetail | null;
|
|
42
43
|
protected discountConfigCacheKey: string | null;
|
|
43
44
|
protected hasManualDiscountSelection: boolean;
|
|
45
|
+
private paymentMethodsCache;
|
|
44
46
|
constructor(name?: string, version?: string);
|
|
45
47
|
/**
|
|
46
48
|
* 子类可覆盖此方法以追加/收敛要注册的子模块。
|
|
@@ -59,6 +61,7 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
59
61
|
* 记录错误日志
|
|
60
62
|
*/
|
|
61
63
|
private logError;
|
|
64
|
+
private hydrateOrderPaymentNames;
|
|
62
65
|
get payment(): PaymentModule | undefined;
|
|
63
66
|
private getCurrentOrderCustomerId;
|
|
64
67
|
private applyQuotationScheduleResolver;
|
|
@@ -212,7 +215,9 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
212
215
|
email: string;
|
|
213
216
|
};
|
|
214
217
|
/** 获取可用支付方式列表,供 PaymentModal 渲染支付选项。 */
|
|
215
|
-
getPaymentMethodsAsync(): Promise<
|
|
218
|
+
getPaymentMethodsAsync(): Promise<PaymentMethod[]>;
|
|
219
|
+
/** 同步读取初始化时缓存的支付方式列表。 */
|
|
220
|
+
getPaymentMethods(): PaymentMethod[];
|
|
216
221
|
/** 轻量舍入能力,供现金支付 UI 计算 rounding_amount。 */
|
|
217
222
|
roundAmount(params: {
|
|
218
223
|
amount: string | number;
|
|
@@ -6,11 +6,11 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
|
6
6
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
7
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
8
|
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); }
|
|
9
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
9
|
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; }
|
|
12
10
|
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); } }
|
|
13
11
|
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); }); }; }
|
|
12
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
14
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
15
15
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
16
16
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
@@ -91,6 +91,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
91
91
|
_defineProperty(_assertThisInitialized(_this), "currentSalesDetail", null);
|
|
92
92
|
_defineProperty(_assertThisInitialized(_this), "discountConfigCacheKey", null);
|
|
93
93
|
_defineProperty(_assertThisInitialized(_this), "hasManualDiscountSelection", false);
|
|
94
|
+
_defineProperty(_assertThisInitialized(_this), "paymentMethodsCache", []);
|
|
94
95
|
return _this;
|
|
95
96
|
}
|
|
96
97
|
|
|
@@ -151,6 +152,35 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
151
152
|
});
|
|
152
153
|
}
|
|
153
154
|
}
|
|
155
|
+
}, {
|
|
156
|
+
key: "hydrateOrderPaymentNames",
|
|
157
|
+
value: function hydrateOrderPaymentNames(payments) {
|
|
158
|
+
if (!payments.length) return [];
|
|
159
|
+
if (!this.paymentMethodsCache.length) {
|
|
160
|
+
return payments.map(function (payment) {
|
|
161
|
+
return _objectSpread({}, payment);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
var paymentMethodById = new Map();
|
|
165
|
+
var paymentMethodByCode = new Map();
|
|
166
|
+
this.paymentMethodsCache.forEach(function (method) {
|
|
167
|
+
if ((method === null || method === void 0 ? void 0 : method.id) !== undefined && (method === null || method === void 0 ? void 0 : method.id) !== null) {
|
|
168
|
+
paymentMethodById.set(String(method.id), method);
|
|
169
|
+
}
|
|
170
|
+
if (method !== null && method !== void 0 && method.code) {
|
|
171
|
+
paymentMethodByCode.set(String(method.code), method);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
return payments.map(function (payment) {
|
|
175
|
+
var nextPayment = _objectSpread({}, payment);
|
|
176
|
+
if (nextPayment.name) return nextPayment;
|
|
177
|
+
var paymentMethod = paymentMethodById.get(String(nextPayment.custom_payment_id)) || paymentMethodByCode.get(String(nextPayment.code));
|
|
178
|
+
if (!(paymentMethod !== null && paymentMethod !== void 0 && paymentMethod.name)) return nextPayment;
|
|
179
|
+
return _objectSpread(_objectSpread({}, nextPayment), {}, {
|
|
180
|
+
name: paymentMethod.name
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
}
|
|
154
184
|
}, {
|
|
155
185
|
key: "payment",
|
|
156
186
|
get: function get() {
|
|
@@ -566,8 +596,11 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
566
596
|
if (this.store.order && typeof ((_this$otherParams5 = this.otherParams) === null || _this$otherParams5 === void 0 ? void 0 : _this$otherParams5.enableTempOrderPersist) === 'boolean') {
|
|
567
597
|
this.store.order.setEnableTempOrderPersist(this.otherParams.enableTempOrderPersist);
|
|
568
598
|
}
|
|
599
|
+
_context3.next = 21;
|
|
600
|
+
return this.getPaymentMethodsAsync();
|
|
601
|
+
case 21:
|
|
569
602
|
this.core.effects.emit("".concat(this.name, ":onInited"), {});
|
|
570
|
-
case
|
|
603
|
+
case 22:
|
|
571
604
|
case "end":
|
|
572
605
|
return _context3.stop();
|
|
573
606
|
}
|
|
@@ -1944,7 +1977,8 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1944
1977
|
key: "getOrderPayments",
|
|
1945
1978
|
value: function getOrderPayments() {
|
|
1946
1979
|
if (!this.store.order) return [];
|
|
1947
|
-
|
|
1980
|
+
var payments = this.store.order.getOrderPayments();
|
|
1981
|
+
return this.hydrateOrderPaymentNames(payments);
|
|
1948
1982
|
}
|
|
1949
1983
|
|
|
1950
1984
|
/** 覆盖当前订单支付项,内部由 OrderModule 清洗为 Sales 协议字段。 */
|
|
@@ -2182,32 +2216,47 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2182
2216
|
key: "getPaymentMethodsAsync",
|
|
2183
2217
|
value: (function () {
|
|
2184
2218
|
var _getPaymentMethodsAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee21() {
|
|
2185
|
-
var response;
|
|
2219
|
+
var response, paymentMethods;
|
|
2186
2220
|
return _regeneratorRuntime().wrap(function _callee21$(_context21) {
|
|
2187
2221
|
while (1) switch (_context21.prev = _context21.next) {
|
|
2188
2222
|
case 0:
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
case 4:
|
|
2223
|
+
_context21.prev = 0;
|
|
2224
|
+
_context21.next = 3;
|
|
2225
|
+
return this.request.get('/pay/custom-payment/all', {
|
|
2226
|
+
filterPaymentMethods: true
|
|
2227
|
+
}, {
|
|
2228
|
+
osServer: true
|
|
2229
|
+
});
|
|
2230
|
+
case 3:
|
|
2198
2231
|
response = _context21.sent;
|
|
2199
|
-
|
|
2200
|
-
|
|
2232
|
+
paymentMethods = (response === null || response === void 0 ? void 0 : response.data) || [];
|
|
2233
|
+
this.paymentMethodsCache = Array.isArray(paymentMethods) ? _toConsumableArray(paymentMethods) : [];
|
|
2234
|
+
return _context21.abrupt("return", this.getPaymentMethods());
|
|
2235
|
+
case 9:
|
|
2236
|
+
_context21.prev = 9;
|
|
2237
|
+
_context21.t0 = _context21["catch"](0);
|
|
2238
|
+
this.logWarning('getPaymentMethodsAsync: 获取支付方式列表失败,使用缓存列表', {
|
|
2239
|
+
error: _context21.t0 instanceof Error ? _context21.t0.message : String(_context21.t0)
|
|
2240
|
+
});
|
|
2241
|
+
return _context21.abrupt("return", this.getPaymentMethods());
|
|
2242
|
+
case 13:
|
|
2201
2243
|
case "end":
|
|
2202
2244
|
return _context21.stop();
|
|
2203
2245
|
}
|
|
2204
|
-
}, _callee21, this);
|
|
2246
|
+
}, _callee21, this, [[0, 9]]);
|
|
2205
2247
|
}));
|
|
2206
2248
|
function getPaymentMethodsAsync() {
|
|
2207
2249
|
return _getPaymentMethodsAsync.apply(this, arguments);
|
|
2208
2250
|
}
|
|
2209
2251
|
return getPaymentMethodsAsync;
|
|
2210
|
-
}() /**
|
|
2252
|
+
}() /** 同步读取初始化时缓存的支付方式列表。 */)
|
|
2253
|
+
}, {
|
|
2254
|
+
key: "getPaymentMethods",
|
|
2255
|
+
value: function getPaymentMethods() {
|
|
2256
|
+
return _toConsumableArray(this.paymentMethodsCache);
|
|
2257
|
+
}
|
|
2258
|
+
|
|
2259
|
+
/** 轻量舍入能力,供现金支付 UI 计算 rounding_amount。 */
|
|
2211
2260
|
}, {
|
|
2212
2261
|
key: "roundAmount",
|
|
2213
2262
|
value: function roundAmount(params) {
|
|
@@ -119,7 +119,7 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
119
119
|
while (1) switch (_context.prev = _context.next) {
|
|
120
120
|
case 0:
|
|
121
121
|
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
122
|
-
this.scan = new Scan(this,
|
|
122
|
+
this.scan = new Scan(this, "BOOKING_TICKET_SCAN:".concat(this.name));
|
|
123
123
|
_context.next = 4;
|
|
124
124
|
return _get(_getPrototypeOf(BookingTicketImpl.prototype), "initialize", this).call(this, core, options);
|
|
125
125
|
case 4:
|