@pisell/pisellos 2.2.248 → 2.2.249
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/server/index.d.ts +4 -0
- package/dist/server/index.js +370 -263
- package/dist/server/modules/order/index.d.ts +2 -0
- package/dist/server/modules/order/index.js +131 -71
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +5 -0
- package/dist/solution/BookingTicket/index.d.ts +1 -13
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.js +67 -4
- package/lib/server/modules/order/index.d.ts +2 -0
- package/lib/server/modules/order/index.js +60 -1
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +5 -0
- package/lib/solution/BookingTicket/index.d.ts +1 -13
- package/package.json +1 -1
|
@@ -195,6 +195,8 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
195
195
|
private pickPreferredOrder;
|
|
196
196
|
private getProductMergeKey;
|
|
197
197
|
private mergeOrderProductLists;
|
|
198
|
+
private getPaymentMergeKey;
|
|
199
|
+
private mergeOrderPaymentLists;
|
|
198
200
|
private mergeOrderRecords;
|
|
199
201
|
private summarizeDuplicateOrders;
|
|
200
202
|
private logDuplicateOrders;
|
|
@@ -1953,6 +1953,58 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1953
1953
|
}
|
|
1954
1954
|
return result;
|
|
1955
1955
|
}
|
|
1956
|
+
}, {
|
|
1957
|
+
key: "getPaymentMergeKey",
|
|
1958
|
+
value: function getPaymentMergeKey(payment) {
|
|
1959
|
+
var _record$metadata2;
|
|
1960
|
+
var record = payment;
|
|
1961
|
+
if (!record) return '';
|
|
1962
|
+
var uniquePaymentNumber = (_record$metadata2 = record.metadata) === null || _record$metadata2 === void 0 ? void 0 : _record$metadata2.unique_payment_number;
|
|
1963
|
+
if (!this.isBlankIdentityValue(uniquePaymentNumber)) {
|
|
1964
|
+
return "unique:".concat(String(uniquePaymentNumber));
|
|
1965
|
+
}
|
|
1966
|
+
var orderPaymentId = record.order_payment_id;
|
|
1967
|
+
if (!this.isBlankIdentityValue(orderPaymentId)) return "order_payment:".concat(String(orderPaymentId));
|
|
1968
|
+
var code = record.code;
|
|
1969
|
+
var customPaymentId = record.custom_payment_id;
|
|
1970
|
+
if (!this.isBlankIdentityValue(code) && !this.isBlankIdentityValue(customPaymentId)) {
|
|
1971
|
+
return "custom:".concat(String(code), "#").concat(String(customPaymentId));
|
|
1972
|
+
}
|
|
1973
|
+
return '';
|
|
1974
|
+
}
|
|
1975
|
+
}, {
|
|
1976
|
+
key: "mergeOrderPaymentLists",
|
|
1977
|
+
value: function mergeOrderPaymentLists(existing, incoming) {
|
|
1978
|
+
var _this18 = this;
|
|
1979
|
+
var existingList = Array.isArray(existing) ? existing : [];
|
|
1980
|
+
var incomingList = Array.isArray(incoming) ? incoming : [];
|
|
1981
|
+
if (incomingList.length === 0) return cloneDeep(existingList);
|
|
1982
|
+
if (existingList.length === 0) return cloneDeep(incomingList);
|
|
1983
|
+
var existingByKey = new Map();
|
|
1984
|
+
var _iterator15 = _createForOfIteratorHelper(existingList),
|
|
1985
|
+
_step15;
|
|
1986
|
+
try {
|
|
1987
|
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
|
1988
|
+
var payment = _step15.value;
|
|
1989
|
+
var key = this.getPaymentMergeKey(payment);
|
|
1990
|
+
if (!key) continue;
|
|
1991
|
+
existingByKey.set(key, payment);
|
|
1992
|
+
}
|
|
1993
|
+
} catch (err) {
|
|
1994
|
+
_iterator15.e(err);
|
|
1995
|
+
} finally {
|
|
1996
|
+
_iterator15.f();
|
|
1997
|
+
}
|
|
1998
|
+
return incomingList.map(function (payment) {
|
|
1999
|
+
var incomingPayment = payment;
|
|
2000
|
+
var key = _this18.getPaymentMergeKey(incomingPayment);
|
|
2001
|
+
var existingPayment = key ? existingByKey.get(key) : undefined;
|
|
2002
|
+
if (!existingPayment) return cloneDeep(incomingPayment);
|
|
2003
|
+
return _objectSpread(_objectSpread(_objectSpread({}, cloneDeep(existingPayment)), cloneDeep(incomingPayment)), {}, {
|
|
2004
|
+
metadata: _objectSpread(_objectSpread({}, cloneDeep(existingPayment.metadata || {})), cloneDeep(incomingPayment.metadata || {}))
|
|
2005
|
+
});
|
|
2006
|
+
});
|
|
2007
|
+
}
|
|
1956
2008
|
}, {
|
|
1957
2009
|
key: "mergeOrderRecords",
|
|
1958
2010
|
value: function mergeOrderRecords(existing, incoming, options) {
|
|
@@ -1960,11 +2012,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1960
2012
|
var secondary = preferred === existing ? incoming : existing;
|
|
1961
2013
|
var merged = _objectSpread(_objectSpread({}, secondary), preferred);
|
|
1962
2014
|
var fieldsToPreserve = ['order_id', 'external_sale_number', 'order_number', 'shop_order_number', 'shop_full_order_number'];
|
|
1963
|
-
var incomingPatchFields = ['payment_status', 'status', 'shipping_status', 'updated_at', 'shop_discount', 'summary', '
|
|
2015
|
+
var incomingPatchFields = ['payment_status', 'status', 'shipping_status', 'updated_at', 'shop_discount', 'summary', 'products', 'bookings'];
|
|
1964
2016
|
var mergedRecord = merged;
|
|
1965
2017
|
var preferredRecord = preferred;
|
|
1966
2018
|
var secondaryRecord = secondary;
|
|
1967
2019
|
var incomingRecord = incoming;
|
|
2020
|
+
var previousRecord = preferred === incoming ? secondaryRecord : preferredRecord;
|
|
1968
2021
|
for (var _i3 = 0, _fieldsToPreserve = fieldsToPreserve; _i3 < _fieldsToPreserve.length; _i3++) {
|
|
1969
2022
|
var field = _fieldsToPreserve[_i3];
|
|
1970
2023
|
if (!this.isBlankIdentityValue(preferredRecord[field])) {
|
|
@@ -1985,6 +2038,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1985
2038
|
mergedRecord[_field] = cloneDeep(incomingRecord[_field]);
|
|
1986
2039
|
}
|
|
1987
2040
|
mergedRecord.products = shouldUseIncomingProductsSnapshot ? cloneDeep(incomingRecord.products) : this.mergeOrderProductLists(preferredRecord.products, secondaryRecord.products);
|
|
2041
|
+
if (Object.prototype.hasOwnProperty.call(incomingRecord, 'payments')) {
|
|
2042
|
+
if (Array.isArray(incomingRecord.payments)) {
|
|
2043
|
+
mergedRecord.payments = this.mergeOrderPaymentLists(previousRecord.payments, incomingRecord.payments);
|
|
2044
|
+
} else if (incomingRecord.payments !== undefined && incomingRecord.payments !== null) {
|
|
2045
|
+
mergedRecord.payments = cloneDeep(incomingRecord.payments);
|
|
2046
|
+
}
|
|
2047
|
+
}
|
|
1988
2048
|
if (!this.isPendingSyncOrder(preferred) || !this.isPendingSyncOrder(secondary)) {
|
|
1989
2049
|
merged.need_sync = 0;
|
|
1990
2050
|
}
|
|
@@ -1994,30 +2054,30 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1994
2054
|
key: "summarizeDuplicateOrders",
|
|
1995
2055
|
value: function summarizeDuplicateOrders(orders) {
|
|
1996
2056
|
var groups = new Map();
|
|
1997
|
-
var
|
|
1998
|
-
|
|
2057
|
+
var _iterator16 = _createForOfIteratorHelper(orders),
|
|
2058
|
+
_step16;
|
|
1999
2059
|
try {
|
|
2000
|
-
for (
|
|
2001
|
-
var order =
|
|
2002
|
-
var
|
|
2003
|
-
|
|
2060
|
+
for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
|
|
2061
|
+
var order = _step16.value;
|
|
2062
|
+
var _iterator17 = _createForOfIteratorHelper(this.getOrderIdentityMatchKeys(order)),
|
|
2063
|
+
_step17;
|
|
2004
2064
|
try {
|
|
2005
|
-
for (
|
|
2006
|
-
var key =
|
|
2065
|
+
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
|
|
2066
|
+
var key = _step17.value;
|
|
2007
2067
|
var group = groups.get(key) || [];
|
|
2008
2068
|
group.push(order);
|
|
2009
2069
|
groups.set(key, group);
|
|
2010
2070
|
}
|
|
2011
2071
|
} catch (err) {
|
|
2012
|
-
|
|
2072
|
+
_iterator17.e(err);
|
|
2013
2073
|
} finally {
|
|
2014
|
-
|
|
2074
|
+
_iterator17.f();
|
|
2015
2075
|
}
|
|
2016
2076
|
}
|
|
2017
2077
|
} catch (err) {
|
|
2018
|
-
|
|
2078
|
+
_iterator16.e(err);
|
|
2019
2079
|
} finally {
|
|
2020
|
-
|
|
2080
|
+
_iterator16.f();
|
|
2021
2081
|
}
|
|
2022
2082
|
return _toConsumableArray(groups.entries()).filter(function (_ref2) {
|
|
2023
2083
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
@@ -2059,11 +2119,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2059
2119
|
value: function compactOrderListByIdentity(orders, source) {
|
|
2060
2120
|
var list = [];
|
|
2061
2121
|
var removedCount = 0;
|
|
2062
|
-
var
|
|
2063
|
-
|
|
2122
|
+
var _iterator18 = _createForOfIteratorHelper(orders),
|
|
2123
|
+
_step18;
|
|
2064
2124
|
try {
|
|
2065
|
-
for (
|
|
2066
|
-
var order =
|
|
2125
|
+
for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
|
|
2126
|
+
var order = _step18.value;
|
|
2067
2127
|
var matchIndex = this.findOrderIndexByIdentity(list, order);
|
|
2068
2128
|
if (matchIndex < 0) {
|
|
2069
2129
|
list.push(order);
|
|
@@ -2073,9 +2133,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2073
2133
|
removedCount += 1;
|
|
2074
2134
|
}
|
|
2075
2135
|
} catch (err) {
|
|
2076
|
-
|
|
2136
|
+
_iterator18.e(err);
|
|
2077
2137
|
} finally {
|
|
2078
|
-
|
|
2138
|
+
_iterator18.f();
|
|
2079
2139
|
}
|
|
2080
2140
|
if (removedCount > 0) {
|
|
2081
2141
|
this.logWarning('订单列表重复项已压缩', {
|
|
@@ -2221,15 +2281,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2221
2281
|
}, {
|
|
2222
2282
|
key: "mergeRemoteSnapshotWithPendingOrders",
|
|
2223
2283
|
value: function mergeRemoteSnapshotWithPendingOrders(remoteOrders, existingOrders) {
|
|
2224
|
-
var
|
|
2284
|
+
var _this19 = this;
|
|
2225
2285
|
var merged = remoteOrders.map(function (order) {
|
|
2226
|
-
return
|
|
2286
|
+
return _this19.normalizeRemoteSyncedOrder(order);
|
|
2227
2287
|
});
|
|
2228
|
-
var
|
|
2229
|
-
|
|
2288
|
+
var _iterator19 = _createForOfIteratorHelper(existingOrders),
|
|
2289
|
+
_step19;
|
|
2230
2290
|
try {
|
|
2231
|
-
for (
|
|
2232
|
-
var order =
|
|
2291
|
+
for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
|
|
2292
|
+
var order = _step19.value;
|
|
2233
2293
|
if (!this.isPendingSyncOrder(order)) continue;
|
|
2234
2294
|
var matchIndex = this.findOrderIndexByIdentity(merged, order);
|
|
2235
2295
|
if (matchIndex >= 0) {
|
|
@@ -2240,9 +2300,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2240
2300
|
merged.push(order);
|
|
2241
2301
|
}
|
|
2242
2302
|
} catch (err) {
|
|
2243
|
-
|
|
2303
|
+
_iterator19.e(err);
|
|
2244
2304
|
} finally {
|
|
2245
|
-
|
|
2305
|
+
_iterator19.f();
|
|
2246
2306
|
}
|
|
2247
2307
|
return this.compactOrderListByIdentity(merged, 'mergeRemoteSnapshotWithPendingOrders').list;
|
|
2248
2308
|
}
|
|
@@ -2292,7 +2352,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2292
2352
|
key: "patchOrdersInSQLite",
|
|
2293
2353
|
value: (function () {
|
|
2294
2354
|
var _patchOrdersInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20(orders, source) {
|
|
2295
|
-
var
|
|
2355
|
+
var _this20 = this;
|
|
2296
2356
|
var mergeActions,
|
|
2297
2357
|
ordersSnapshot,
|
|
2298
2358
|
_this$filterRedundant2,
|
|
@@ -2311,7 +2371,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2311
2371
|
return _context20.abrupt("return");
|
|
2312
2372
|
case 3:
|
|
2313
2373
|
ordersSnapshot = cloneDeep(orders).filter(function (order) {
|
|
2314
|
-
return
|
|
2374
|
+
return _this20.getOrderStorageKey(order);
|
|
2315
2375
|
});
|
|
2316
2376
|
if (!(ordersSnapshot.length === 0)) {
|
|
2317
2377
|
_context20.next = 6;
|
|
@@ -2336,54 +2396,54 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2336
2396
|
_context20.prev = 12;
|
|
2337
2397
|
_context20.next = 15;
|
|
2338
2398
|
return this.runInOrderSQLiteSaveQueue( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {
|
|
2339
|
-
var writeMethod,
|
|
2399
|
+
var writeMethod, _iterator20, _step20, order;
|
|
2340
2400
|
return _regeneratorRuntime().wrap(function _callee19$(_context19) {
|
|
2341
2401
|
while (1) switch (_context19.prev = _context19.next) {
|
|
2342
2402
|
case 0:
|
|
2343
2403
|
writeMethod = 'none';
|
|
2344
|
-
|
|
2404
|
+
_this20.logInfo('patchOrdersInSQLite-开始', {
|
|
2345
2405
|
source: source,
|
|
2346
2406
|
count: compactedToWrite.length,
|
|
2347
2407
|
dedupedCount: skipped.length
|
|
2348
2408
|
});
|
|
2349
|
-
if (!(typeof
|
|
2409
|
+
if (!(typeof _this20.dbManager.bulkUpdate === 'function')) {
|
|
2350
2410
|
_context19.next = 8;
|
|
2351
2411
|
break;
|
|
2352
2412
|
}
|
|
2353
2413
|
writeMethod = 'bulkUpdate';
|
|
2354
2414
|
_context19.next = 6;
|
|
2355
|
-
return
|
|
2415
|
+
return _this20.dbManager.bulkUpdate(INDEXDB_STORE_NAME, compactedToWrite);
|
|
2356
2416
|
case 6:
|
|
2357
2417
|
_context19.next = 33;
|
|
2358
2418
|
break;
|
|
2359
2419
|
case 8:
|
|
2360
|
-
if (!(typeof
|
|
2420
|
+
if (!(typeof _this20.dbManager.bulkAdd === 'function')) {
|
|
2361
2421
|
_context19.next = 14;
|
|
2362
2422
|
break;
|
|
2363
2423
|
}
|
|
2364
2424
|
writeMethod = 'bulkAdd';
|
|
2365
2425
|
_context19.next = 12;
|
|
2366
|
-
return
|
|
2426
|
+
return _this20.dbManager.bulkAdd(INDEXDB_STORE_NAME, compactedToWrite);
|
|
2367
2427
|
case 12:
|
|
2368
2428
|
_context19.next = 33;
|
|
2369
2429
|
break;
|
|
2370
2430
|
case 14:
|
|
2371
|
-
if (!(typeof
|
|
2431
|
+
if (!(typeof _this20.dbManager.update === 'function')) {
|
|
2372
2432
|
_context19.next = 33;
|
|
2373
2433
|
break;
|
|
2374
2434
|
}
|
|
2375
2435
|
writeMethod = 'update';
|
|
2376
|
-
|
|
2436
|
+
_iterator20 = _createForOfIteratorHelper(compactedToWrite);
|
|
2377
2437
|
_context19.prev = 17;
|
|
2378
|
-
|
|
2438
|
+
_iterator20.s();
|
|
2379
2439
|
case 19:
|
|
2380
|
-
if ((
|
|
2440
|
+
if ((_step20 = _iterator20.n()).done) {
|
|
2381
2441
|
_context19.next = 25;
|
|
2382
2442
|
break;
|
|
2383
2443
|
}
|
|
2384
|
-
order =
|
|
2444
|
+
order = _step20.value;
|
|
2385
2445
|
_context19.next = 23;
|
|
2386
|
-
return
|
|
2446
|
+
return _this20.dbManager.update(INDEXDB_STORE_NAME, order);
|
|
2387
2447
|
case 23:
|
|
2388
2448
|
_context19.next = 19;
|
|
2389
2449
|
break;
|
|
@@ -2393,14 +2453,14 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2393
2453
|
case 27:
|
|
2394
2454
|
_context19.prev = 27;
|
|
2395
2455
|
_context19.t0 = _context19["catch"](17);
|
|
2396
|
-
|
|
2456
|
+
_iterator20.e(_context19.t0);
|
|
2397
2457
|
case 30:
|
|
2398
2458
|
_context19.prev = 30;
|
|
2399
|
-
|
|
2459
|
+
_iterator20.f();
|
|
2400
2460
|
return _context19.finish(30);
|
|
2401
2461
|
case 33:
|
|
2402
|
-
|
|
2403
|
-
|
|
2462
|
+
_this20.recordRecentSqliteWrite(source, compactedToWrite);
|
|
2463
|
+
_this20.logInfo('patchOrdersInSQLite-完成', {
|
|
2404
2464
|
source: source,
|
|
2405
2465
|
count: compactedToWrite.length,
|
|
2406
2466
|
writeMethod: writeMethod,
|
|
@@ -2444,7 +2504,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2444
2504
|
key: "updateOrderInSQLite",
|
|
2445
2505
|
value: (function () {
|
|
2446
2506
|
var _updateOrderInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(order, source) {
|
|
2447
|
-
var
|
|
2507
|
+
var _this21 = this;
|
|
2448
2508
|
var orderSnapshot, _orderSnapshot$order_3;
|
|
2449
2509
|
return _regeneratorRuntime().wrap(function _callee22$(_context22) {
|
|
2450
2510
|
while (1) switch (_context22.prev = _context22.next) {
|
|
@@ -2465,43 +2525,43 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2465
2525
|
while (1) switch (_context21.prev = _context21.next) {
|
|
2466
2526
|
case 0:
|
|
2467
2527
|
writeMethod = 'none';
|
|
2468
|
-
|
|
2528
|
+
_this21.logInfo('updateOrderInSQLite-开始', {
|
|
2469
2529
|
source: source,
|
|
2470
2530
|
orderId: (_orderSnapshot$order_ = orderSnapshot.order_id) !== null && _orderSnapshot$order_ !== void 0 ? _orderSnapshot$order_ : null,
|
|
2471
|
-
storageKey:
|
|
2531
|
+
storageKey: _this21.getOrderStorageKey(orderSnapshot)
|
|
2472
2532
|
});
|
|
2473
|
-
if (!(typeof
|
|
2533
|
+
if (!(typeof _this21.dbManager.update === 'function')) {
|
|
2474
2534
|
_context21.next = 8;
|
|
2475
2535
|
break;
|
|
2476
2536
|
}
|
|
2477
2537
|
writeMethod = 'update';
|
|
2478
2538
|
_context21.next = 6;
|
|
2479
|
-
return
|
|
2539
|
+
return _this21.dbManager.update(INDEXDB_STORE_NAME, orderSnapshot);
|
|
2480
2540
|
case 6:
|
|
2481
2541
|
_context21.next = 18;
|
|
2482
2542
|
break;
|
|
2483
2543
|
case 8:
|
|
2484
|
-
if (!(typeof
|
|
2544
|
+
if (!(typeof _this21.dbManager.bulkUpdate === 'function')) {
|
|
2485
2545
|
_context21.next = 14;
|
|
2486
2546
|
break;
|
|
2487
2547
|
}
|
|
2488
2548
|
writeMethod = 'bulkUpdate';
|
|
2489
2549
|
_context21.next = 12;
|
|
2490
|
-
return
|
|
2550
|
+
return _this21.dbManager.bulkUpdate(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
2491
2551
|
case 12:
|
|
2492
2552
|
_context21.next = 18;
|
|
2493
2553
|
break;
|
|
2494
2554
|
case 14:
|
|
2495
|
-
if (!(typeof
|
|
2555
|
+
if (!(typeof _this21.dbManager.bulkAdd === 'function')) {
|
|
2496
2556
|
_context21.next = 18;
|
|
2497
2557
|
break;
|
|
2498
2558
|
}
|
|
2499
2559
|
writeMethod = 'bulkAdd';
|
|
2500
2560
|
_context21.next = 18;
|
|
2501
|
-
return
|
|
2561
|
+
return _this21.dbManager.bulkAdd(INDEXDB_STORE_NAME, [orderSnapshot]);
|
|
2502
2562
|
case 18:
|
|
2503
|
-
|
|
2504
|
-
|
|
2563
|
+
_this21.recordRecentSqliteWrite(source, [orderSnapshot]);
|
|
2564
|
+
_this21.logInfo('updateOrderInSQLite-完成', {
|
|
2505
2565
|
source: source,
|
|
2506
2566
|
orderId: (_orderSnapshot$order_2 = orderSnapshot.order_id) !== null && _orderSnapshot$order_2 !== void 0 ? _orderSnapshot$order_2 : null,
|
|
2507
2567
|
writeMethod: writeMethod
|
|
@@ -2544,7 +2604,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2544
2604
|
key: "replaceOrdersSnapshotInSQLite",
|
|
2545
2605
|
value: (function () {
|
|
2546
2606
|
var _replaceOrdersSnapshotInSQLite = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24(orderList, source) {
|
|
2547
|
-
var
|
|
2607
|
+
var _this22 = this;
|
|
2548
2608
|
var remoteSnapshot, mergedSnapshot;
|
|
2549
2609
|
return _regeneratorRuntime().wrap(function _callee24$(_context24) {
|
|
2550
2610
|
while (1) switch (_context24.prev = _context24.next) {
|
|
@@ -2554,12 +2614,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2554
2614
|
break;
|
|
2555
2615
|
}
|
|
2556
2616
|
return _context24.abrupt("return", this.compactOrderListByIdentity(orderList.map(function (order) {
|
|
2557
|
-
return
|
|
2617
|
+
return _this22.normalizeRemoteSyncedOrder(order);
|
|
2558
2618
|
}), "".concat(source, ".snapshotNoDb")).list);
|
|
2559
2619
|
case 2:
|
|
2560
2620
|
remoteSnapshot = cloneDeep(orderList);
|
|
2561
2621
|
mergedSnapshot = this.compactOrderListByIdentity(remoteSnapshot.map(function (order) {
|
|
2562
|
-
return
|
|
2622
|
+
return _this22.normalizeRemoteSyncedOrder(order);
|
|
2563
2623
|
}), "".concat(source, ".remoteSnapshot")).list;
|
|
2564
2624
|
_context24.prev = 4;
|
|
2565
2625
|
_context24.next = 7;
|
|
@@ -2568,12 +2628,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2568
2628
|
return _regeneratorRuntime().wrap(function _callee23$(_context23) {
|
|
2569
2629
|
while (1) switch (_context23.prev = _context23.next) {
|
|
2570
2630
|
case 0:
|
|
2571
|
-
if (!(typeof
|
|
2631
|
+
if (!(typeof _this22.dbManager.getAll === 'function')) {
|
|
2572
2632
|
_context23.next = 6;
|
|
2573
2633
|
break;
|
|
2574
2634
|
}
|
|
2575
2635
|
_context23.next = 3;
|
|
2576
|
-
return
|
|
2636
|
+
return _this22.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
2577
2637
|
case 3:
|
|
2578
2638
|
_context23.t0 = _context23.sent;
|
|
2579
2639
|
_context23.next = 7;
|
|
@@ -2582,18 +2642,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2582
2642
|
_context23.t0 = [];
|
|
2583
2643
|
case 7:
|
|
2584
2644
|
existingOrders = _context23.t0;
|
|
2585
|
-
orderListSnapshot =
|
|
2586
|
-
mergedSnapshot =
|
|
2587
|
-
|
|
2645
|
+
orderListSnapshot = _this22.mergeRemoteSnapshotWithPendingOrders(remoteSnapshot, existingOrders || []);
|
|
2646
|
+
mergedSnapshot = _this22.compactOrderListByIdentity(orderListSnapshot, "".concat(source, ".sqliteSnapshot")).list;
|
|
2647
|
+
_this22.logInfo('replaceOrdersSnapshotInSQLite-开始', {
|
|
2588
2648
|
source: source,
|
|
2589
2649
|
count: mergedSnapshot.length,
|
|
2590
2650
|
remoteCount: remoteSnapshot.length,
|
|
2591
2651
|
preservedPendingCount: mergedSnapshot.length - remoteSnapshot.length
|
|
2592
2652
|
});
|
|
2593
2653
|
_context23.next = 13;
|
|
2594
|
-
return
|
|
2654
|
+
return _this22.dbManager.clear(INDEXDB_STORE_NAME);
|
|
2595
2655
|
case 13:
|
|
2596
|
-
|
|
2656
|
+
_this22.logInfo('replaceOrdersSnapshotInSQLite-clear完成', {
|
|
2597
2657
|
count: mergedSnapshot.length
|
|
2598
2658
|
});
|
|
2599
2659
|
if (!(mergedSnapshot.length === 0)) {
|
|
@@ -2603,10 +2663,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2603
2663
|
return _context23.abrupt("return");
|
|
2604
2664
|
case 16:
|
|
2605
2665
|
_context23.next = 18;
|
|
2606
|
-
return
|
|
2666
|
+
return _this22.dbManager.bulkAdd(INDEXDB_STORE_NAME, mergedSnapshot);
|
|
2607
2667
|
case 18:
|
|
2608
|
-
|
|
2609
|
-
|
|
2668
|
+
_this22.recordRecentSqliteWrite(source, mergedSnapshot);
|
|
2669
|
+
_this22.logInfo('replaceOrdersSnapshotInSQLite-bulkAdd完成', {
|
|
2610
2670
|
source: source,
|
|
2611
2671
|
count: mergedSnapshot.length
|
|
2612
2672
|
});
|
|
@@ -2650,7 +2710,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2650
2710
|
key: "clear",
|
|
2651
2711
|
value: (function () {
|
|
2652
2712
|
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26() {
|
|
2653
|
-
var
|
|
2713
|
+
var _this23 = this;
|
|
2654
2714
|
return _regeneratorRuntime().wrap(function _callee26$(_context26) {
|
|
2655
2715
|
while (1) switch (_context26.prev = _context26.next) {
|
|
2656
2716
|
case 0:
|
|
@@ -2667,7 +2727,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2667
2727
|
while (1) switch (_context25.prev = _context25.next) {
|
|
2668
2728
|
case 0:
|
|
2669
2729
|
_context25.next = 2;
|
|
2670
|
-
return
|
|
2730
|
+
return _this23.dbManager.clear(INDEXDB_STORE_NAME);
|
|
2671
2731
|
case 2:
|
|
2672
2732
|
case "end":
|
|
2673
2733
|
return _context25.stop();
|
|
@@ -173,6 +173,10 @@ export function transformBaseProductToOrderProduct(params) {
|
|
|
173
173
|
if (uniqueIdentificationNumber) {
|
|
174
174
|
metadata.unique_identification_number = String(uniqueIdentificationNumber);
|
|
175
175
|
}
|
|
176
|
+
// 从源头补充商品多语言标题
|
|
177
|
+
var productTitle = _objectSpread(_objectSpread({}, (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title_i18n) || {}), {}, {
|
|
178
|
+
original: (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) || ''
|
|
179
|
+
});
|
|
176
180
|
return {
|
|
177
181
|
product_id: productId,
|
|
178
182
|
product_variant_id: productVariantId,
|
|
@@ -190,6 +194,7 @@ export function transformBaseProductToOrderProduct(params) {
|
|
|
190
194
|
is_charge_tax: toNumber((_ref32 = (_ref33 = (_payload$is_charge_ta = payload.is_charge_tax) !== null && _payload$is_charge_ta !== void 0 ? _payload$is_charge_ta : matchedVariant === null || matchedVariant === void 0 ? void 0 : matchedVariant.is_charge_tax) !== null && _ref33 !== void 0 ? _ref33 : origin === null || origin === void 0 ? void 0 : origin.is_charge_tax) !== null && _ref32 !== void 0 ? _ref32 : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.is_charge_tax, 0),
|
|
191
195
|
metadata: metadata,
|
|
192
196
|
note: payload.note != null ? String(payload.note) : '',
|
|
197
|
+
product_title: productTitle,
|
|
193
198
|
_origin: _objectSpread(_objectSpread({}, sourceProduct || {}), {}, {
|
|
194
199
|
callbackData: payload
|
|
195
200
|
})
|
|
@@ -441,19 +441,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
|
|
|
441
441
|
* 加车两阶段主决策(规格弹窗 / 资源编辑 / 直接加车)。
|
|
442
442
|
* 与 ticketBooking `handleSelectProduct` + `handleBooking4Service` 等价。
|
|
443
443
|
*/
|
|
444
|
-
decideAddProduct(item: any, options?: Partial<AddProductDecideContext>):
|
|
445
|
-
action: "reloadCatalog";
|
|
446
|
-
} | {
|
|
447
|
-
action: "add";
|
|
448
|
-
cacheItem: any;
|
|
449
|
-
} | {
|
|
450
|
-
action: "requiresDetail";
|
|
451
|
-
payload: AddProductRequiresDetailPayload;
|
|
452
|
-
} | {
|
|
453
|
-
action: "requiresBookingEdit";
|
|
454
|
-
cacheItem: any;
|
|
455
|
-
payload: import("./utils/addProductDecision").AddProductRequiresBookingEditPayload;
|
|
456
|
-
};
|
|
444
|
+
decideAddProduct(item: any, options?: Partial<AddProductDecideContext>): import("./utils/addProductDecision").AddProductDecision;
|
|
457
445
|
/** 规格弹窗 callback 后的第二段决策。 */
|
|
458
446
|
decideAfterDetail(cacheItem: any, options?: Partial<AddProductDecideContext>): import("./utils/addProductDecision").AddProductDecision;
|
|
459
447
|
/**
|
package/lib/server/index.d.ts
CHANGED
|
@@ -422,6 +422,10 @@ declare class Server {
|
|
|
422
422
|
private canAssignStringProductTitleToLocale;
|
|
423
423
|
private hasCjkText;
|
|
424
424
|
private resolveFirstProductTitleValue;
|
|
425
|
+
private getPaymentCodeKey;
|
|
426
|
+
private isBlankPaymentName;
|
|
427
|
+
private shouldLookupPaymentMethodNameByCode;
|
|
428
|
+
private enrichPaymentNamesByCode;
|
|
425
429
|
private withLocalSmallTicketData;
|
|
426
430
|
private handleOrderSalesDetail;
|
|
427
431
|
/**
|
package/lib/server/index.js
CHANGED
|
@@ -3091,22 +3091,85 @@ var Server = class {
|
|
|
3091
3091
|
);
|
|
3092
3092
|
return firstValue === void 0 ? null : String(firstValue);
|
|
3093
3093
|
}
|
|
3094
|
+
getPaymentCodeKey(code) {
|
|
3095
|
+
if (code === void 0 || code === null)
|
|
3096
|
+
return "";
|
|
3097
|
+
return String(code).trim().toUpperCase();
|
|
3098
|
+
}
|
|
3099
|
+
isBlankPaymentName(name) {
|
|
3100
|
+
if (name === void 0 || name === null)
|
|
3101
|
+
return true;
|
|
3102
|
+
if (typeof name === "string")
|
|
3103
|
+
return name.trim() === "";
|
|
3104
|
+
return false;
|
|
3105
|
+
}
|
|
3106
|
+
shouldLookupPaymentMethodNameByCode(code) {
|
|
3107
|
+
const codeKey = this.getPaymentCodeKey(code);
|
|
3108
|
+
if (!codeKey)
|
|
3109
|
+
return false;
|
|
3110
|
+
const builtInNameTokens = ["CASH", "EFTPOS", "CARD", "WALLET", "GIFT"];
|
|
3111
|
+
return !builtInNameTokens.some((token) => codeKey.includes(token));
|
|
3112
|
+
}
|
|
3113
|
+
async enrichPaymentNamesByCode(order) {
|
|
3114
|
+
const payments = Array.isArray(order == null ? void 0 : order.payments) ? order.payments : [];
|
|
3115
|
+
const hasMissingName = payments.some((payment) => this.isBlankPaymentName(payment == null ? void 0 : payment.name) && this.shouldLookupPaymentMethodNameByCode(payment == null ? void 0 : payment.code));
|
|
3116
|
+
if (!hasMissingName)
|
|
3117
|
+
return order;
|
|
3118
|
+
try {
|
|
3119
|
+
const paymentModule = await this.getPaymentRouteModule();
|
|
3120
|
+
const payMethods = await paymentModule.getPayMethodListAsync();
|
|
3121
|
+
const nameByCode = /* @__PURE__ */ new Map();
|
|
3122
|
+
for (const method of payMethods || []) {
|
|
3123
|
+
const codeKey = this.getPaymentCodeKey(method == null ? void 0 : method.code);
|
|
3124
|
+
const name = this.resolveFirstProductTitleValue(method == null ? void 0 : method.name);
|
|
3125
|
+
if (codeKey && name)
|
|
3126
|
+
nameByCode.set(codeKey, name);
|
|
3127
|
+
}
|
|
3128
|
+
let hasResolvedName = false;
|
|
3129
|
+
const enrichedPayments = payments.map((payment) => {
|
|
3130
|
+
if (!this.isBlankPaymentName(payment == null ? void 0 : payment.name))
|
|
3131
|
+
return payment;
|
|
3132
|
+
if (!this.shouldLookupPaymentMethodNameByCode(payment == null ? void 0 : payment.code))
|
|
3133
|
+
return payment;
|
|
3134
|
+
const name = nameByCode.get(this.getPaymentCodeKey(payment == null ? void 0 : payment.code));
|
|
3135
|
+
if (!name)
|
|
3136
|
+
return payment;
|
|
3137
|
+
hasResolvedName = true;
|
|
3138
|
+
return {
|
|
3139
|
+
...payment,
|
|
3140
|
+
name
|
|
3141
|
+
};
|
|
3142
|
+
});
|
|
3143
|
+
if (!hasResolvedName)
|
|
3144
|
+
return order;
|
|
3145
|
+
return {
|
|
3146
|
+
...order,
|
|
3147
|
+
payments: enrichedPayments
|
|
3148
|
+
};
|
|
3149
|
+
} catch (error) {
|
|
3150
|
+
this.logWarning("enrichPaymentNamesByCode: 支付方式名称回填失败", {
|
|
3151
|
+
error: error instanceof Error ? error.message : String(error)
|
|
3152
|
+
});
|
|
3153
|
+
return order;
|
|
3154
|
+
}
|
|
3155
|
+
}
|
|
3094
3156
|
async withLocalSmallTicketData(order, options) {
|
|
3095
3157
|
if (!this.shouldBuildSmallTicketData(order))
|
|
3096
3158
|
return order;
|
|
3097
3159
|
if ((options == null ? void 0 : options.requireFullyPaid) && !this.isSalesOrderFullyPaid(order))
|
|
3098
3160
|
return order;
|
|
3099
3161
|
try {
|
|
3100
|
-
const
|
|
3162
|
+
const enrichedOrder = await this.enrichPaymentNamesByCode(order);
|
|
3163
|
+
const productMap = (options == null ? void 0 : options.productMap) ?? await this.buildSmallTicketProductMap(enrichedOrder);
|
|
3101
3164
|
const smallTicketData = (0, import_small_ticket.buildSmallTicketData)({
|
|
3102
|
-
order,
|
|
3165
|
+
order: enrichedOrder,
|
|
3103
3166
|
shopInfo: this.getSmallTicketShopInfo(),
|
|
3104
3167
|
productMap
|
|
3105
3168
|
});
|
|
3106
3169
|
return {
|
|
3107
|
-
...
|
|
3170
|
+
...enrichedOrder,
|
|
3108
3171
|
payment_info: {
|
|
3109
|
-
...
|
|
3172
|
+
...enrichedOrder.payment_info || {},
|
|
3110
3173
|
small_ticket_data: smallTicketData
|
|
3111
3174
|
}
|
|
3112
3175
|
};
|
|
@@ -195,6 +195,8 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
195
195
|
private pickPreferredOrder;
|
|
196
196
|
private getProductMergeKey;
|
|
197
197
|
private mergeOrderProductLists;
|
|
198
|
+
private getPaymentMergeKey;
|
|
199
|
+
private mergeOrderPaymentLists;
|
|
198
200
|
private mergeOrderRecords;
|
|
199
201
|
private summarizeDuplicateOrders;
|
|
200
202
|
private logDuplicateOrders;
|