@pisell/pisellos 2.2.264 → 2.2.265

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.
Files changed (152) hide show
  1. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +50 -0
  2. package/dist/model/strategy/adapter/dataVariant/adapter.js +167 -0
  3. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +89 -0
  4. package/dist/model/strategy/adapter/dataVariant/evaluator.js +780 -0
  5. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
  6. package/dist/model/strategy/adapter/dataVariant/examples.js +277 -0
  7. package/dist/model/strategy/adapter/dataVariant/index.d.ts +4 -0
  8. package/dist/model/strategy/adapter/dataVariant/index.js +4 -0
  9. package/dist/model/strategy/adapter/dataVariant/type.d.ts +148 -0
  10. package/dist/model/strategy/adapter/dataVariant/type.js +54 -0
  11. package/dist/model/strategy/adapter/index.d.ts +4 -0
  12. package/dist/model/strategy/adapter/index.js +5 -1
  13. package/dist/model/strategy/adapter/promotion/adapter.d.ts +0 -4
  14. package/dist/model/strategy/adapter/promotion/adapter.js +0 -23
  15. package/dist/model/strategy/adapter/promotion/evaluator.d.ts +0 -17
  16. package/dist/model/strategy/adapter/promotion/evaluator.js +6 -279
  17. package/dist/model/strategy/adapter/promotion/examples.d.ts +0 -86
  18. package/dist/model/strategy/adapter/promotion/examples.js +0 -99
  19. package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
  20. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  21. package/dist/model/strategy/adapter/promotion/type.d.ts +2 -90
  22. package/dist/model/strategy/adapter/promotion/type.js +0 -45
  23. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +16 -10
  24. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -1
  25. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
  26. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +32 -1
  27. package/dist/modules/Discount/index.d.ts +5 -2
  28. package/dist/modules/Discount/index.js +30 -7
  29. package/dist/modules/Discount/types.d.ts +4 -0
  30. package/dist/modules/Order/index.d.ts +41 -10
  31. package/dist/modules/Order/index.js +1370 -808
  32. package/dist/modules/Order/payment-utils.d.ts +26 -0
  33. package/dist/modules/Order/payment-utils.js +225 -0
  34. package/dist/modules/Order/types.d.ts +49 -1
  35. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  36. package/dist/modules/Order/utils/orderCollectionIdentity.js +410 -0
  37. package/dist/modules/Order/utils.d.ts +4 -3
  38. package/dist/modules/Order/utils.js +62 -66
  39. package/dist/modules/Payment/index.d.ts +2 -0
  40. package/dist/modules/Payment/index.js +78 -49
  41. package/dist/modules/Payment/types.d.ts +26 -24
  42. package/dist/modules/Payment/types.js +2 -0
  43. package/dist/modules/Product/types.d.ts +22 -0
  44. package/dist/modules/ProductList/index.d.ts +1 -1
  45. package/dist/modules/ProductList/index.js +4 -2
  46. package/dist/modules/ProductList/types.d.ts +2 -0
  47. package/dist/modules/Rules/index.d.ts +2 -9
  48. package/dist/modules/Rules/index.js +69 -43
  49. package/dist/modules/Rules/types.d.ts +10 -1
  50. package/dist/server/index.d.ts +71 -0
  51. package/dist/server/index.js +2504 -1187
  52. package/dist/server/modules/order/index.d.ts +56 -5
  53. package/dist/server/modules/order/index.js +1718 -834
  54. package/dist/server/modules/order/types.d.ts +15 -3
  55. package/dist/server/modules/order/types.js +1 -1
  56. package/dist/server/modules/products/index.d.ts +31 -8
  57. package/dist/server/modules/products/index.js +549 -390
  58. package/dist/server/modules/products/types.d.ts +18 -0
  59. package/dist/solution/BaseSales/index.d.ts +54 -4
  60. package/dist/solution/BaseSales/index.js +1448 -788
  61. package/dist/solution/BaseSales/types.d.ts +6 -1
  62. package/dist/solution/BaseSales/types.js +1 -1
  63. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +1 -3
  64. package/dist/solution/BaseSales/utils/cartPromotion.js +50 -97
  65. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +9 -4
  66. package/dist/solution/BaseSales/utils/parseSalesResponse.js +6 -8
  67. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +14 -1
  68. package/dist/solution/BookingByStep/index.d.ts +1 -1
  69. package/dist/solution/BookingTicket/index.js +61 -26
  70. package/dist/solution/BookingTicket/types.d.ts +2 -0
  71. package/dist/solution/Sales/index.d.ts +1 -0
  72. package/dist/solution/Sales/index.js +10 -2
  73. package/dist/solution/ScanOrder/index.js +20 -31
  74. package/dist/solution/ShopDiscount/index.js +15 -14
  75. package/dist/solution/VenueBooking/index.js +19 -30
  76. package/dist/utils/payment-number.d.ts +9 -0
  77. package/dist/utils/payment-number.js +69 -0
  78. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +50 -0
  79. package/lib/model/strategy/adapter/dataVariant/adapter.js +149 -0
  80. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +89 -0
  81. package/lib/model/strategy/adapter/dataVariant/evaluator.js +583 -0
  82. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +39 -0
  83. package/lib/model/strategy/adapter/dataVariant/examples.js +293 -0
  84. package/lib/model/strategy/adapter/dataVariant/index.d.ts +4 -0
  85. package/lib/model/strategy/adapter/dataVariant/index.js +38 -0
  86. package/lib/model/strategy/adapter/dataVariant/type.d.ts +148 -0
  87. package/lib/model/strategy/adapter/dataVariant/type.js +31 -0
  88. package/lib/model/strategy/adapter/index.d.ts +4 -0
  89. package/lib/model/strategy/adapter/index.js +13 -2
  90. package/lib/model/strategy/adapter/promotion/adapter.d.ts +0 -4
  91. package/lib/model/strategy/adapter/promotion/adapter.js +0 -20
  92. package/lib/model/strategy/adapter/promotion/evaluator.d.ts +0 -17
  93. package/lib/model/strategy/adapter/promotion/evaluator.js +0 -235
  94. package/lib/model/strategy/adapter/promotion/examples.d.ts +0 -86
  95. package/lib/model/strategy/adapter/promotion/examples.js +0 -91
  96. package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
  97. package/lib/model/strategy/adapter/promotion/index.js +0 -2
  98. package/lib/model/strategy/adapter/promotion/type.d.ts +2 -90
  99. package/lib/model/strategy/adapter/promotion/type.js +0 -2
  100. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +5 -0
  101. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -0
  102. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
  103. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +23 -2
  104. package/lib/modules/Discount/index.d.ts +5 -2
  105. package/lib/modules/Discount/index.js +23 -3
  106. package/lib/modules/Discount/types.d.ts +4 -0
  107. package/lib/modules/Order/index.d.ts +41 -10
  108. package/lib/modules/Order/index.js +505 -119
  109. package/lib/modules/Order/payment-utils.d.ts +26 -0
  110. package/lib/modules/Order/payment-utils.js +224 -0
  111. package/lib/modules/Order/types.d.ts +49 -1
  112. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  113. package/lib/modules/Order/utils/orderCollectionIdentity.js +418 -0
  114. package/lib/modules/Order/utils.d.ts +4 -3
  115. package/lib/modules/Order/utils.js +27 -26
  116. package/lib/modules/Payment/index.d.ts +2 -0
  117. package/lib/modules/Payment/index.js +33 -12
  118. package/lib/modules/Payment/types.d.ts +26 -24
  119. package/lib/modules/Product/types.d.ts +22 -0
  120. package/lib/modules/ProductList/index.d.ts +1 -1
  121. package/lib/modules/ProductList/index.js +4 -2
  122. package/lib/modules/ProductList/types.d.ts +2 -0
  123. package/lib/modules/Rules/index.d.ts +2 -9
  124. package/lib/modules/Rules/index.js +61 -29
  125. package/lib/modules/Rules/types.d.ts +10 -1
  126. package/lib/server/index.d.ts +71 -0
  127. package/lib/server/index.js +1002 -52
  128. package/lib/server/modules/order/index.d.ts +56 -5
  129. package/lib/server/modules/order/index.js +798 -148
  130. package/lib/server/modules/order/types.d.ts +15 -3
  131. package/lib/server/modules/products/index.d.ts +31 -8
  132. package/lib/server/modules/products/index.js +134 -35
  133. package/lib/server/modules/products/types.d.ts +18 -0
  134. package/lib/solution/BaseSales/index.d.ts +54 -4
  135. package/lib/solution/BaseSales/index.js +475 -50
  136. package/lib/solution/BaseSales/types.d.ts +6 -1
  137. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +1 -3
  138. package/lib/solution/BaseSales/utils/cartPromotion.js +25 -64
  139. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +9 -4
  140. package/lib/solution/BaseSales/utils/parseSalesResponse.js +4 -5
  141. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +8 -0
  142. package/lib/solution/BookingByStep/index.d.ts +1 -1
  143. package/lib/solution/BookingTicket/index.js +35 -9
  144. package/lib/solution/BookingTicket/types.d.ts +2 -0
  145. package/lib/solution/Sales/index.d.ts +1 -0
  146. package/lib/solution/Sales/index.js +5 -3
  147. package/lib/solution/ScanOrder/index.js +0 -8
  148. package/lib/solution/ShopDiscount/index.js +2 -1
  149. package/lib/solution/VenueBooking/index.js +0 -8
  150. package/lib/utils/payment-number.d.ts +9 -0
  151. package/lib/utils/payment-number.js +64 -0
  152. package/package.json +1 -1
@@ -21,6 +21,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
21
21
  import dayjs from "dayjs";
22
22
  import Decimal from 'decimal.js';
23
23
  import { buildProductLineFingerprint, createEmptySummary } from "../../solution/ScanOrder/utils";
24
+ import { createUuidV4 } from "./utils/orderCollectionIdentity";
24
25
  /**
25
26
  * 把"含 option 的主商品单价"与 bundle 合成"单行 composite 单价"。
26
27
  *
@@ -252,8 +253,8 @@ function getOrderProductDeposit(product, runtimeOrigin) {
252
253
  /**
253
254
  * 仅基于 tempOrder.products 重算整单定金。
254
255
  *
255
- * 对齐 Checkout relation_products 分支:商品定金先按商品规则计算,
256
- * 再扣减商品券/折扣卡抵扣金额;tempOrder.bookings 不参与这里的计算。
256
+ * 商品折扣在进入定金计算前已体现在商品行价格字段中,
257
+ * 因此这里只按商品定金规则汇总,不再扣减 discount_list;tempOrder.bookings 不参与这里的计算。
257
258
  */
258
259
  export function calculateOrderProductsDeposit() {
259
260
  var products = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -273,30 +274,18 @@ export function calculateOrderProductsDeposit() {
273
274
  product.deposit = deposit;
274
275
  if (!(deposit !== null && deposit !== void 0 && deposit.total) || Number(deposit.total) <= 0) continue;
275
276
  total = total.plus(deposit.total);
276
- var _iterator4 = _createForOfIteratorHelper(product.discount_list || []),
277
+ var _iterator4 = _createForOfIteratorHelper(deposit.protocols || []),
277
278
  _step4;
278
279
  try {
279
280
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
280
- var discount = _step4.value;
281
- total = total.minus((discount === null || discount === void 0 ? void 0 : discount.amount) || 0);
281
+ var protocol = _step4.value;
282
+ if (!protocolMap.has(protocol.id)) protocolMap.set(protocol.id, protocol);
282
283
  }
283
284
  } catch (err) {
284
285
  _iterator4.e(err);
285
286
  } finally {
286
287
  _iterator4.f();
287
288
  }
288
- var _iterator5 = _createForOfIteratorHelper(deposit.protocols || []),
289
- _step5;
290
- try {
291
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
292
- var protocol = _step5.value;
293
- if (!protocolMap.has(protocol.id)) protocolMap.set(protocol.id, protocol);
294
- }
295
- } catch (err) {
296
- _iterator5.e(err);
297
- } finally {
298
- _iterator5.f();
299
- }
300
289
  hasDeposit = true;
301
290
  }
302
291
  } catch (err) {
@@ -460,19 +449,19 @@ function resolveSubmitBundleMapId(bundle) {
460
449
  }
461
450
  function collectSubmitProductDiscountList(product) {
462
451
  var submitDiscountList = Array.isArray(product === null || product === void 0 ? void 0 : product.discount_list) ? _toConsumableArray(product.discount_list) : [];
463
- var _iterator6 = _createForOfIteratorHelper((product === null || product === void 0 ? void 0 : product.product_bundle) || []),
464
- _step6;
452
+ var _iterator5 = _createForOfIteratorHelper((product === null || product === void 0 ? void 0 : product.product_bundle) || []),
453
+ _step5;
465
454
  try {
466
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
467
- var bundle = _step6.value;
455
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
456
+ var bundle = _step5.value;
468
457
  if (!bundle || _typeof(bundle) !== 'object') continue;
469
458
  var bundleMapId = resolveSubmitBundleMapId(bundle);
470
459
  var bundleDiscountList = Array.isArray(bundle.discount_list) ? bundle.discount_list : [];
471
- var _iterator7 = _createForOfIteratorHelper(bundleDiscountList),
472
- _step7;
460
+ var _iterator6 = _createForOfIteratorHelper(bundleDiscountList),
461
+ _step6;
473
462
  try {
474
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
475
- var discount = _step7.value;
463
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
464
+ var discount = _step6.value;
476
465
  if (!discount || _typeof(discount) !== 'object') continue;
477
466
  var discountMetadata = discount.metadata && _typeof(discount.metadata) === 'object' ? discount.metadata : {};
478
467
  var discountMapId = discountMetadata.custom_product_bundle_map_id !== undefined && discountMetadata.custom_product_bundle_map_id !== null && discountMetadata.custom_product_bundle_map_id !== '' ? discountMetadata.custom_product_bundle_map_id : bundleMapId;
@@ -483,15 +472,15 @@ function collectSubmitProductDiscountList(product) {
483
472
  } : {}));
484
473
  }
485
474
  } catch (err) {
486
- _iterator7.e(err);
475
+ _iterator6.e(err);
487
476
  } finally {
488
- _iterator7.f();
477
+ _iterator6.f();
489
478
  }
490
479
  }
491
480
  } catch (err) {
492
- _iterator6.e(err);
481
+ _iterator5.e(err);
493
482
  } finally {
494
- _iterator6.f();
483
+ _iterator5.f();
495
484
  }
496
485
  return normalizeOrderProductDiscountList(submitDiscountList);
497
486
  }
@@ -544,8 +533,7 @@ export function resolveEffectivePerUnitDiscount(product) {
544
533
  return sum + Number((discount === null || discount === void 0 ? void 0 : discount.amount) || 0);
545
534
  }, 0);
546
535
  var hasPromoDiscountItem = discountList.some(function (item) {
547
- var _item$metadata, _item$metadata2;
548
- return (item === null || item === void 0 ? void 0 : item.type) === 'promotion' || (item === null || item === void 0 ? void 0 : item.type) === 'product' && (item === null || item === void 0 || (_item$metadata = item.metadata) === null || _item$metadata === void 0 ? void 0 : _item$metadata.source) === 'promotion' && (item === null || item === void 0 || (_item$metadata2 = item.metadata) === null || _item$metadata2 === void 0 ? void 0 : _item$metadata2.actionType) === 'ITEM_REWARD';
536
+ return (item === null || item === void 0 ? void 0 : item.type) === 'promotion';
549
537
  });
550
538
  if (hasPromoDiscountItem) return fromList;
551
539
  var metadata = (product === null || product === void 0 ? void 0 : product.metadata) || {};
@@ -587,11 +575,14 @@ export function createDefaultOrderRulesHooks() {
587
575
  if (!bundle || _typeof(bundle) !== 'object') return bundle;
588
576
  var current = currentByIdentity.get(getBundleIdentity(bundle));
589
577
  if (!current) return bundle;
578
+ var bundleWithDisplayFields = _objectSpread(_objectSpread({}, bundle), isEmptyOrderProductDisplayValue(bundle.cover) && !isEmptyOrderProductDisplayValue(current.cover) ? {
579
+ cover: current.cover
580
+ } : {});
590
581
  var isProductPriceBundle = ((_bundle$price_type_ex2 = bundle.price_type_ext) !== null && _bundle$price_type_ex2 !== void 0 ? _bundle$price_type_ex2 : current.price_type_ext) === 'product_price';
591
- if (!isProductPriceBundle) return bundle;
582
+ if (!isProductPriceBundle) return bundleWithDisplayFields;
592
583
  var sourcePrice = (_ref18 = (_ref19 = (_current$price = current.price) !== null && _current$price !== void 0 ? _current$price : current.custom_price) !== null && _ref19 !== void 0 ? _ref19 : current.original_price) !== null && _ref18 !== void 0 ? _ref18 : current.bundle_selling_price;
593
584
  var originalPrice = (_ref20 = (_ref21 = (_ref22 = (_current$original_pri = current.original_price) !== null && _current$original_pri !== void 0 ? _current$original_pri : current.product_price) !== null && _ref22 !== void 0 ? _ref22 : current.price) !== null && _ref21 !== void 0 ? _ref21 : current.custom_price) !== null && _ref20 !== void 0 ? _ref20 : sourcePrice;
594
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bundle), sourcePrice !== undefined ? {
585
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bundleWithDisplayFields), sourcePrice !== undefined ? {
595
586
  price: sourcePrice
596
587
  } : {}), originalPrice !== undefined ? {
597
588
  original_price: originalPrice
@@ -764,14 +755,7 @@ export var getAllDiscountList = function getAllDiscountList(cartItem) {
764
755
 
765
756
  // ─── 以下为从 ScanOrder/utils.ts 迁入的 Order 专属工具函数 ───
766
757
 
767
- export function createUuidV4() {
768
- var template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
769
- return template.replace(/[xy]/g, function (char) {
770
- var randomValue = Math.floor(Math.random() * 16);
771
- var value = char === 'x' ? randomValue : randomValue & 0x3 | 0x8;
772
- return value.toString(16);
773
- });
774
- }
758
+ export { createUuidV4 };
775
759
  export function isTempOrder(data) {
776
760
  if (!data || _typeof(data) !== 'object') return false;
777
761
  if (!Array.isArray(data.products)) return false;
@@ -864,6 +848,7 @@ function formatSubmitBundleItems(bundle) {
864
848
  bundle_group_id: (_rawBundle$bundle_gro = rawBundle === null || rawBundle === void 0 ? void 0 : rawBundle.bundle_group_id) !== null && _rawBundle$bundle_gro !== void 0 ? _rawBundle$bundle_gro : rawBundle === null || rawBundle === void 0 ? void 0 : rawBundle.group_id,
865
849
  bundle_id: (_rawBundle$bundle_id = rawBundle === null || rawBundle === void 0 ? void 0 : rawBundle.bundle_id) !== null && _rawBundle$bundle_id !== void 0 ? _rawBundle$bundle_id : rawBundle === null || rawBundle === void 0 ? void 0 : rawBundle.id,
866
850
  bundle_product_id: (_rawBundle$bundle_pro = rawBundle === null || rawBundle === void 0 ? void 0 : rawBundle.bundle_product_id) !== null && _rawBundle$bundle_pro !== void 0 ? _rawBundle$bundle_pro : rawBundle === null || rawBundle === void 0 ? void 0 : rawBundle._bundle_product_id,
851
+ cover: rawBundle.cover,
867
852
  metadata: _objectSpread(_objectSpread(_objectSpread({}, submitMetadata), hasSubmitBundleDiscounts && bundleMapId !== undefined ? {
868
853
  custom_product_bundle_map_id: bundleMapId
869
854
  } : {}), {}, {
@@ -925,6 +910,9 @@ function normalizeSubmitProduct(product) {
925
910
  if (rawMetadata.is_rule !== undefined) {
926
911
  cleanMetadata.is_rule = rawMetadata.is_rule;
927
912
  }
913
+ if (rawMetadata.holder_config !== undefined) {
914
+ cleanMetadata.holder_config = rawMetadata.holder_config;
915
+ }
928
916
  var productSku = _objectSpread(_objectSpread({}, submitProduct.product_sku && _typeof(submitProduct.product_sku) === 'object' ? submitProduct.product_sku : {}), {}, {
929
917
  option: formatSubmitOptionItems((_submitProduct$produc = submitProduct.product_sku) === null || _submitProduct$produc === void 0 ? void 0 : _submitProduct$produc.option)
930
918
  });
@@ -955,19 +943,19 @@ export function normalizeBookingSubType(booking) {
955
943
  export function normalizeSubmitBooking(booking) {
956
944
  var rawMetadata = booking.metadata || {};
957
945
  var cleanMetadata = {};
958
- var _iterator8 = _createForOfIteratorHelper(SUBMIT_BOOKING_METADATA_WHITELIST),
959
- _step8;
946
+ var _iterator7 = _createForOfIteratorHelper(SUBMIT_BOOKING_METADATA_WHITELIST),
947
+ _step7;
960
948
  try {
961
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
962
- var key = _step8.value;
949
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
950
+ var key = _step7.value;
963
951
  if (rawMetadata[key] !== undefined) {
964
952
  cleanMetadata[key] = rawMetadata[key];
965
953
  }
966
954
  }
967
955
  } catch (err) {
968
- _iterator8.e(err);
956
+ _iterator7.e(err);
969
957
  } finally {
970
- _iterator8.f();
958
+ _iterator7.f();
971
959
  }
972
960
  if (cleanMetadata.holder_id === undefined) cleanMetadata.holder_id = null;
973
961
  var bookingRecord = booking;
@@ -1059,7 +1047,7 @@ export function createDefaultTempOrder(params) {
1059
1047
  };
1060
1048
  }
1061
1049
  export function buildSubmitPayload(params) {
1062
- var _tempOrder$customer_i, _tempOrder$order_numb, _tempOrder$shop_order, _tempOrder$shop_full_, _ref30, _tempOrder$is_price_i, _tempOrder$is_deposit, _enhancedPayload$summ;
1050
+ var _tempOrder$customer_i, _tempOrder$country_ca, _tempOrder$phone, _tempOrder$email, _tempOrder$order_numb, _tempOrder$shop_order, _tempOrder$shop_full_, _ref30, _tempOrder$is_price_i, _tempOrder$is_deposit, _enhancedPayload$summ;
1063
1051
  var tempOrder = params.tempOrder,
1064
1052
  cacheId = params.cacheId,
1065
1053
  _params$now = params.now,
@@ -1105,6 +1093,9 @@ export function buildSubmitPayload(params) {
1105
1093
  var payload = _objectSpread(_objectSpread({}, tempOrderRest), {}, {
1106
1094
  customer_id: (_tempOrder$customer_i = tempOrder.customer_id) !== null && _tempOrder$customer_i !== void 0 ? _tempOrder$customer_i : 1,
1107
1095
  customer_name: tempOrder.customer_name || 'Walk-In',
1096
+ country_calling_code: String((_tempOrder$country_ca = tempOrder.country_calling_code) !== null && _tempOrder$country_ca !== void 0 ? _tempOrder$country_ca : ''),
1097
+ phone: String((_tempOrder$phone = tempOrder.phone) !== null && _tempOrder$phone !== void 0 ? _tempOrder$phone : ''),
1098
+ email: String((_tempOrder$email = tempOrder.email) !== null && _tempOrder$email !== void 0 ? _tempOrder$email : ''),
1108
1099
  order_number: (_tempOrder$order_numb = tempOrder.order_number) !== null && _tempOrder$order_numb !== void 0 ? _tempOrder$order_numb : null,
1109
1100
  shop_order_number: (_tempOrder$shop_order = tempOrder.shop_order_number) !== null && _tempOrder$shop_order !== void 0 ? _tempOrder$shop_order : null,
1110
1101
  shop_full_order_number: (_tempOrder$shop_full_ = tempOrder.shop_full_order_number) !== null && _tempOrder$shop_full_ !== void 0 ? _tempOrder$shop_full_ : null,
@@ -1164,9 +1155,7 @@ export function mapPaymentItemToOrderPayment(paymentItem) {
1164
1155
  var item = paymentItem;
1165
1156
  var customPaymentId = (_item$custom_payment_ = item.custom_payment_id) !== null && _item$custom_payment_ !== void 0 ? _item$custom_payment_ : item.id;
1166
1157
  var metadata = item.metadata && _typeof(item.metadata) === 'object' ? _objectSpread({}, item.metadata) : {};
1167
- if (item.uuid && !metadata.unique_payment_number) {
1168
- metadata.unique_payment_number = String(item.uuid);
1169
- }
1158
+ var paymentNumber = item.payment_number;
1170
1159
  var paymentMetadataKeys = ['rounding_rule', 'shop_wallet_pass_id', 'actual_paid_amount', 'change_given_amount'];
1171
1160
  for (var _i3 = 0, _paymentMetadataKeys = paymentMetadataKeys; _i3 < _paymentMetadataKeys.length; _i3++) {
1172
1161
  var key = _paymentMetadataKeys[_i3];
@@ -1177,8 +1166,10 @@ export function mapPaymentItemToOrderPayment(paymentItem) {
1177
1166
  var timestamp = dayjs().format('YYYY-MM-DD HH:mm:ss');
1178
1167
  var paymentTime = (_item$payment_time = item.payment_time) !== null && _item$payment_time !== void 0 ? _item$payment_time : timestamp;
1179
1168
  var createdAt = (_item$created_at = item.created_at) !== null && _item$created_at !== void 0 ? _item$created_at : timestamp;
1180
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, item.order_payment_id !== undefined ? {
1169
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, item.order_payment_id !== undefined ? {
1181
1170
  order_payment_id: item.order_payment_id
1171
+ } : {}), paymentNumber !== undefined && paymentNumber !== null && paymentNumber !== '' ? {
1172
+ payment_number: String(paymentNumber)
1182
1173
  } : {}), {}, {
1183
1174
  amount: String((_item$amount = item.amount) !== null && _item$amount !== void 0 ? _item$amount : '0.00'),
1184
1175
  code: String(item.code || ''),
@@ -1280,25 +1271,25 @@ export function clearTempOrderHolderAssignments(tempOrder) {
1280
1271
  target[key] = null;
1281
1272
  changed = true;
1282
1273
  };
1283
- var _iterator9 = _createForOfIteratorHelper(tempOrder.products || []),
1284
- _step9;
1274
+ var _iterator8 = _createForOfIteratorHelper(tempOrder.products || []),
1275
+ _step8;
1285
1276
  try {
1286
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
1287
- var product = _step9.value;
1277
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
1278
+ var product = _step8.value;
1288
1279
  if (product.metadata && _typeof(product.metadata) === 'object') {
1289
1280
  resetHolderField(product.metadata);
1290
1281
  }
1291
1282
  }
1292
1283
  } catch (err) {
1293
- _iterator9.e(err);
1284
+ _iterator8.e(err);
1294
1285
  } finally {
1295
- _iterator9.f();
1286
+ _iterator8.f();
1296
1287
  }
1297
- var _iterator10 = _createForOfIteratorHelper(tempOrder.bookings || []),
1298
- _step10;
1288
+ var _iterator9 = _createForOfIteratorHelper(tempOrder.bookings || []),
1289
+ _step9;
1299
1290
  try {
1300
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
1301
- var booking = _step10.value;
1291
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
1292
+ var booking = _step9.value;
1302
1293
  var bookingRecord = booking;
1303
1294
  if (booking.metadata && _typeof(booking.metadata) === 'object') {
1304
1295
  resetHolderField(booking.metadata);
@@ -1309,9 +1300,9 @@ export function clearTempOrderHolderAssignments(tempOrder) {
1309
1300
  }
1310
1301
  }
1311
1302
  } catch (err) {
1312
- _iterator10.e(err);
1303
+ _iterator9.e(err);
1313
1304
  } finally {
1314
- _iterator10.f();
1305
+ _iterator9.f();
1315
1306
  }
1316
1307
  var productsByUid = (_tempOrder$_extend = tempOrder._extend) === null || _tempOrder$_extend === void 0 ? void 0 : _tempOrder$_extend.productsByUid;
1317
1308
  if (productsByUid && _typeof(productsByUid) === 'object') {
@@ -1362,11 +1353,16 @@ export function isHolderConfigRequired(holderConfig) {
1362
1353
  return Number(holderConfig.required) === 1;
1363
1354
  }
1364
1355
  export function productRequiresFormSubject(tempOrder, product) {
1356
+ var _tempOrder$products, _orderProduct$metadat;
1357
+ var _orderProduct = tempOrder === null || tempOrder === void 0 || (_tempOrder$products = tempOrder.products) === null || _tempOrder$products === void 0 ? void 0 : _tempOrder$products.find(function (item) {
1358
+ return item.metadata.unique_identification_number === product._id || item.product_id === product.id;
1359
+ });
1365
1360
  var runtimeOrigin = getRuntimeProductOrigin(tempOrder, product);
1366
- return isHolderConfigRequired(product === null || product === void 0 ? void 0 : product.holder_config) || isHolderConfigRequired(runtimeOrigin === null || runtimeOrigin === void 0 ? void 0 : runtimeOrigin.holder_config);
1361
+ return isHolderConfigRequired(_orderProduct === null || _orderProduct === void 0 || (_orderProduct$metadat = _orderProduct.metadata) === null || _orderProduct$metadat === void 0 ? void 0 : _orderProduct$metadat.holder_config) || isHolderConfigRequired(runtimeOrigin === null || runtimeOrigin === void 0 ? void 0 : runtimeOrigin.holder_config) || isHolderConfigRequired(product === null || product === void 0 ? void 0 : product.holder_config);
1367
1362
  }
1368
1363
  export function resolveIsFormSubject(tempOrder, product) {
1369
1364
  var _tempOrder$holder;
1365
+ debugger;
1370
1366
  // 旧版预约维度的 holder 类型仍然生效;新版则从当前商品 holder_config 判断。
1371
1367
  if ((tempOrder === null || tempOrder === void 0 || (_tempOrder$holder = tempOrder.holder) === null || _tempOrder$holder === void 0 ? void 0 : _tempOrder$holder.type) === 'form') return true;
1372
1368
  if (product) return productRequiresFormSubject(tempOrder, product);
@@ -1406,7 +1402,7 @@ export function isEmptyOrderProductDisplayValue(value) {
1406
1402
  */
1407
1403
  export function mergeOrderProductDisplayFields(previous, next) {
1408
1404
  var merged = _objectSpread({}, next);
1409
- var displayFields = ['product_title', 'product_name', 'product_cover', 'cover', 'variant_title', 'product_sku', 'payment_price'];
1405
+ var displayFields = ['product_title', 'product_name', 'product_cover', 'cover', 'product_cover', 'variant_title', 'product_sku', 'payment_price'];
1410
1406
  displayFields.forEach(function (field) {
1411
1407
  if (isEmptyOrderProductDisplayValue(merged[field]) && !isEmptyOrderProductDisplayValue(previous[field])) {
1412
1408
  merged[field] = previous[field];
@@ -20,6 +20,7 @@ export declare class PaymentModule extends BaseModule implements Module, Payment
20
20
  protected defaultVersion: string;
21
21
  request: RequestPlugin;
22
22
  private app;
23
+ private appPlugin;
23
24
  private store;
24
25
  window: WindowPlugin;
25
26
  private dbManager;
@@ -40,6 +41,7 @@ export declare class PaymentModule extends BaseModule implements Module, Payment
40
41
  * paymentModule.updateOtherParams({ fatherModule: 'bookingTicket' });
41
42
  */
42
43
  updateOtherParams(params: Record<string, any>): void;
44
+ private getPaymentNumberAppData;
43
45
  /**
44
46
  * 记录信息日志
45
47
  */
@@ -27,6 +27,9 @@ import { CashPaymentImpl } from "./cash";
27
27
  import { EftposPaymentImpl } from "./eftpos";
28
28
  import { WalletPassPaymentImpl } from "./walletpass";
29
29
  import { Decimal } from 'decimal.js';
30
+ import { ensureOrderPaymentNumber } from "../Order/payment-utils";
31
+ import { createUuidV4 } from "../Order/utils";
32
+ import { resolvePaymentNumberDevicePrefix } from "../../utils/payment-number";
30
33
  export * from "./types";
31
34
  export { generateRequestUniqueId };
32
35
 
@@ -102,6 +105,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
102
105
  _defineProperty(_assertThisInitialized(_this), "request", void 0);
103
106
  _defineProperty(_assertThisInitialized(_this), "app", void 0);
104
107
  // App instance
108
+ _defineProperty(_assertThisInitialized(_this), "appPlugin", void 0);
105
109
  _defineProperty(_assertThisInitialized(_this), "store", void 0);
106
110
  _defineProperty(_assertThisInitialized(_this), "window", void 0);
107
111
  // WindowPlugin 实例
@@ -168,7 +172,6 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
168
172
  key: "initialize",
169
173
  value: function () {
170
174
  var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(core, options) {
171
- var appPlugin;
172
175
  return _regeneratorRuntime().wrap(function _callee$(_context) {
173
176
  while (1) switch (_context.prev = _context.next) {
174
177
  case 0:
@@ -178,7 +181,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
178
181
 
179
182
  // 获取依赖的插件
180
183
  this.request = core.getPlugin('request');
181
- appPlugin = core.getPlugin('app');
184
+ this.appPlugin = core.getPlugin('app');
182
185
  this.window = core.getPlugin('window');
183
186
  if (this.request) {
184
187
  _context.next = 8;
@@ -186,13 +189,13 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
186
189
  }
187
190
  throw new Error('支付模块需要 request 插件支持');
188
191
  case 8:
189
- if (appPlugin) {
192
+ if (this.appPlugin) {
190
193
  _context.next = 10;
191
194
  break;
192
195
  }
193
196
  throw new Error('支付模块需要 app 插件支持');
194
197
  case 10:
195
- this.app = appPlugin.getApp();
198
+ this.app = this.appPlugin.getApp();
196
199
  this.dbManager = this.app.dbManager;
197
200
  this.logger = this.app.logger;
198
201
 
@@ -228,6 +231,15 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
228
231
  value: function updateOtherParams(params) {
229
232
  this.otherParams = params || {};
230
233
  }
234
+ }, {
235
+ key: "getPaymentNumberAppData",
236
+ value: function getPaymentNumberAppData(key) {
237
+ var _this$appPlugin, _this$appPlugin$getDa, _this$app, _this$app$getStore, _this$app$getStore$ca, _this$app$getStore$ca2;
238
+ var getData = (_this$appPlugin = this.appPlugin) === null || _this$appPlugin === void 0 || (_this$appPlugin$getDa = _this$appPlugin.getData) === null || _this$appPlugin$getDa === void 0 ? void 0 : _this$appPlugin$getDa.call(_this$appPlugin);
239
+ if (typeof getData === 'function') return getData(key);
240
+ var coreData = (_this$app = this.app) === null || _this$app === void 0 || (_this$app = _this$app.models) === null || _this$app === void 0 || (_this$app$getStore = _this$app.getStore) === null || _this$app$getStore === void 0 || (_this$app$getStore$ca = (_this$app$getStore$ca2 = _this$app$getStore.call(_this$app)).getDataByModel) === null || _this$app$getStore$ca === void 0 ? void 0 : _this$app$getStore$ca.call(_this$app$getStore$ca2, 'core', 'core');
241
+ return coreData === null || coreData === void 0 ? void 0 : coreData[key];
242
+ }
231
243
 
232
244
  /**
233
245
  * 记录信息日志
@@ -884,7 +896,8 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
884
896
  key: "addPaymentItemAsync",
885
897
  value: (function () {
886
898
  var _addPaymentItemAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(orderUuid, paymentItem) {
887
- var _paymentItem$metadata, _newPaymentItem$metad, _newPaymentItem$metad2, _newPaymentItem$metad3, order, expectAmount, paidDepositAmount, expectedDepositAmount, warningMessage, paymentUuid, currentTime, newPaymentItem;
899
+ var _this5 = this;
900
+ var _paymentItem$metadata, _newPaymentItem$metad, _newPaymentItem$metad2, _newPaymentItem$metad3, order, expectAmount, paidDepositAmount, expectedDepositAmount, warningMessage, paymentUuid, currentTime, hasPaymentNumber, paymentNumberDevicePrefix, paymentNumber, newPaymentItem;
888
901
  return _regeneratorRuntime().wrap(function _callee12$(_context12) {
889
902
  while (1) switch (_context12.prev = _context12.next) {
890
903
  case 0:
@@ -940,14 +953,29 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
940
953
  });
941
954
  throw new Error(warningMessage);
942
955
  case 17:
943
- if ((_paymentItem$metadata = paymentItem.metadata) !== null && _paymentItem$metadata !== void 0 && _paymentItem$metadata.unique_payment_number) {
944
- paymentUuid = paymentItem.metadata.unique_payment_number;
945
- } else {
946
- paymentUuid = getUniqueId('payment_');
947
- }
956
+ paymentUuid = paymentItem.uuid || ((_paymentItem$metadata = paymentItem.metadata) === null || _paymentItem$metadata === void 0 ? void 0 : _paymentItem$metadata.unique_payment_number) || getUniqueId('payment_');
948
957
  currentTime = formatDateTime(new Date());
958
+ hasPaymentNumber = String(paymentItem.payment_number || '').trim() !== '';
959
+ if (!hasPaymentNumber) {
960
+ _context12.next = 24;
961
+ break;
962
+ }
963
+ _context12.t0 = 'LOCAL';
964
+ _context12.next = 27;
965
+ break;
966
+ case 24:
967
+ _context12.next = 26;
968
+ return resolvePaymentNumberDevicePrefix(function (key) {
969
+ return _this5.getPaymentNumberAppData(key);
970
+ });
971
+ case 26:
972
+ _context12.t0 = _context12.sent;
973
+ case 27:
974
+ paymentNumberDevicePrefix = _context12.t0;
975
+ paymentNumber = ensureOrderPaymentNumber(paymentItem, paymentNumberDevicePrefix, createUuidV4).payment_number;
949
976
  newPaymentItem = {
950
977
  uuid: paymentUuid,
978
+ payment_number: paymentNumber,
951
979
  custom_payment_id: normalizeCustomPaymentId(paymentItem),
952
980
  name: paymentItem.name,
953
981
  code: paymentItem.code,
@@ -966,10 +994,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
966
994
  // 创建时间
967
995
  updated_at: currentTime,
968
996
  // 更新时间
969
- metadata: _objectSpread(_objectSpread({}, paymentItem.metadata), {}, {
970
- // 保留传入的所有 metadata 字段
971
- unique_payment_number: paymentUuid // 设置唯一支付号为支付项的 uuid
972
- })
997
+ metadata: _objectSpread({}, paymentItem.metadata)
973
998
  };
974
999
  order.payment.push(newPaymentItem);
975
1000
  this.recalculateOrderAmount(order);
@@ -977,9 +1002,9 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
977
1002
  orderUuid: orderUuid,
978
1003
  order: order
979
1004
  });
980
- _context12.next = 25;
1005
+ _context12.next = 35;
981
1006
  return this.dbManager.update('order', order, true);
982
- case 25:
1007
+ case 35:
983
1008
  this.logInfo('更新订单支付项完成', {
984
1009
  orderUuid: orderUuid
985
1010
  });
@@ -1000,22 +1025,22 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1000
1025
  actualPaidAmount: (_newPaymentItem$metad2 = newPaymentItem.metadata) === null || _newPaymentItem$metad2 === void 0 ? void 0 : _newPaymentItem$metad2.actual_paid_amount,
1001
1026
  changeGivenAmount: (_newPaymentItem$metad3 = newPaymentItem.metadata) === null || _newPaymentItem$metad3 === void 0 ? void 0 : _newPaymentItem$metad3.change_given_amount
1002
1027
  });
1003
- _context12.next = 35;
1028
+ _context12.next = 45;
1004
1029
  break;
1005
- case 30:
1006
- _context12.prev = 30;
1007
- _context12.t0 = _context12["catch"](1);
1008
- console.error('[PaymentModule] 添加支付项失败', _context12.t0);
1009
- this.logError('addPaymentItemAsync failed', _context12.t0, {
1030
+ case 40:
1031
+ _context12.prev = 40;
1032
+ _context12.t1 = _context12["catch"](1);
1033
+ console.error('[PaymentModule] 添加支付项失败', _context12.t1);
1034
+ this.logError('addPaymentItemAsync failed', _context12.t1, {
1010
1035
  orderUuid: orderUuid,
1011
1036
  paymentItem: paymentItem
1012
1037
  });
1013
- throw _context12.t0;
1014
- case 35:
1038
+ throw _context12.t1;
1039
+ case 45:
1015
1040
  case "end":
1016
1041
  return _context12.stop();
1017
1042
  }
1018
- }, _callee12, this, [[1, 30]]);
1043
+ }, _callee12, this, [[1, 40]]);
1019
1044
  }));
1020
1045
  function addPaymentItemAsync(_x13, _x14) {
1021
1046
  return _addPaymentItemAsync.apply(this, arguments);
@@ -1135,17 +1160,17 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1135
1160
  key: "updateVoucherPaymentItemsAsync",
1136
1161
  value: (function () {
1137
1162
  var _updateVoucherPaymentItemsAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15(orderUuid, voucherPaymentItems) {
1138
- var _this5 = this;
1163
+ var _this6 = this;
1139
1164
  return _regeneratorRuntime().wrap(function _callee15$(_context15) {
1140
1165
  while (1) switch (_context15.prev = _context15.next) {
1141
1166
  case 0:
1142
1167
  return _context15.abrupt("return", this.runVoucherUpdateLocked(orderUuid, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
1143
- var _this5$normalizeVouch, normalizedVoucherItems, originalCount, normalizedCount, order, existingVoucherItems, _iterator2, _step2, voucherItem, orderAfterDelete, existingActiveVoucherKeys, _iterator3, _step3, _voucherItem, orderPaymentType, key, updatedOrder;
1168
+ var _this6$normalizeVouch, normalizedVoucherItems, originalCount, normalizedCount, order, existingVoucherItems, _iterator2, _step2, voucherItem, orderAfterDelete, existingActiveVoucherKeys, _iterator3, _step3, _voucherItem, orderPaymentType, key, updatedOrder;
1144
1169
  return _regeneratorRuntime().wrap(function _callee14$(_context14) {
1145
1170
  while (1) switch (_context14.prev = _context14.next) {
1146
1171
  case 0:
1147
- _this5$normalizeVouch = _this5.normalizeVoucherPaymentItems(voucherPaymentItems), normalizedVoucherItems = _this5$normalizeVouch.items, originalCount = _this5$normalizeVouch.originalCount, normalizedCount = _this5$normalizeVouch.normalizedCount;
1148
- _this5.logInfo('Starting updateVoucherPaymentItemsAsync', {
1172
+ _this6$normalizeVouch = _this6.normalizeVoucherPaymentItems(voucherPaymentItems), normalizedVoucherItems = _this6$normalizeVouch.items, originalCount = _this6$normalizeVouch.originalCount, normalizedCount = _this6$normalizeVouch.normalizedCount;
1173
+ _this6.logInfo('Starting updateVoucherPaymentItemsAsync', {
1149
1174
  orderUuid: orderUuid,
1150
1175
  originalVoucherCount: originalCount,
1151
1176
  normalizedVoucherCount: normalizedCount,
@@ -1167,7 +1192,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1167
1192
  }
1168
1193
  _context14.prev = 3;
1169
1194
  _context14.next = 6;
1170
- return _this5.getPaymentOrderByUuidAsync(orderUuid);
1195
+ return _this6.getPaymentOrderByUuidAsync(orderUuid);
1171
1196
  case 6:
1172
1197
  order = _context14.sent;
1173
1198
  if (order) {
@@ -1207,7 +1232,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1207
1232
  voucherItem = _step2.value;
1208
1233
  console.log("[PaymentModule] \u5220\u9664\u73B0\u6709\u4EE3\u91D1\u5238\u652F\u4ED8\u9879: ".concat(voucherItem.uuid));
1209
1234
  _context14.next = 19;
1210
- return _this5.deletePaymentAsync(orderUuid, voucherItem.uuid);
1235
+ return _this6.deletePaymentAsync(orderUuid, voucherItem.uuid);
1211
1236
  case 19:
1212
1237
  _context14.next = 14;
1213
1238
  break;
@@ -1224,7 +1249,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1224
1249
  return _context14.finish(26);
1225
1250
  case 29:
1226
1251
  _context14.next = 31;
1227
- return _this5.getPaymentOrderByUuidAsync(orderUuid);
1252
+ return _this6.getPaymentOrderByUuidAsync(orderUuid);
1228
1253
  case 31:
1229
1254
  orderAfterDelete = _context14.sent;
1230
1255
  if (orderAfterDelete) {
@@ -1271,7 +1296,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1271
1296
  order_payment_type: orderPaymentType
1272
1297
  }));
1273
1298
  _context14.next = 49;
1274
- return _this5.addPaymentItemAsync(orderUuid, _voucherItem);
1299
+ return _this6.addPaymentItemAsync(orderUuid, _voucherItem);
1275
1300
  case 49:
1276
1301
  existingActiveVoucherKeys.add(key);
1277
1302
  case 50:
@@ -1290,17 +1315,17 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1290
1315
  return _context14.finish(57);
1291
1316
  case 60:
1292
1317
  _context14.next = 62;
1293
- return _this5.getPaymentOrderByUuidAsync(orderUuid);
1318
+ return _this6.getPaymentOrderByUuidAsync(orderUuid);
1294
1319
  case 62:
1295
1320
  updatedOrder = _context14.sent;
1296
1321
  _context14.next = 65;
1297
- return _this5.core.effects.emit("".concat(_this5.name, ":onPaymentAdded"), {
1322
+ return _this6.core.effects.emit("".concat(_this6.name, ":onPaymentAdded"), {
1298
1323
  orderUuid: orderUuid,
1299
1324
  order: updatedOrder,
1300
1325
  payment: null // 批量操作不提供单个支付项
1301
1326
  });
1302
1327
  case 65:
1303
- _this5.logInfo('updateVoucherPaymentItemsAsync completed successfully', {
1328
+ _this6.logInfo('updateVoucherPaymentItemsAsync completed successfully', {
1304
1329
  orderUuid: orderUuid,
1305
1330
  removedVoucherCount: existingVoucherItems.length,
1306
1331
  addedVoucherCount: normalizedVoucherItems.length,
@@ -1312,7 +1337,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1312
1337
  _context14.prev = 68;
1313
1338
  _context14.t2 = _context14["catch"](3);
1314
1339
  console.error('[PaymentModule] 批量更新代金券支付项失败:', _context14.t2);
1315
- _this5.logError('updateVoucherPaymentItemsAsync failed', _context14.t2, {
1340
+ _this6.logError('updateVoucherPaymentItemsAsync failed', _context14.t2, {
1316
1341
  orderUuid: orderUuid,
1317
1342
  voucherPaymentItems: voucherPaymentItems
1318
1343
  });
@@ -1361,7 +1386,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1361
1386
  return payment.uuid === paymentUuid;
1362
1387
  });
1363
1388
  if (!paymentItem) {
1364
- _context16.next = 18;
1389
+ _context16.next = 19;
1365
1390
  break;
1366
1391
  }
1367
1392
  // 如果更新参数中包含 amount,先格式化
@@ -1369,40 +1394,43 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1369
1394
  if ('amount' in formattedParams && formattedParams.amount !== undefined) {
1370
1395
  formattedParams.amount = formatAmount(formattedParams.amount);
1371
1396
  }
1397
+ if (formattedParams.metadata && _typeof(formattedParams.metadata) === 'object') {
1398
+ formattedParams.metadata = _objectSpread(_objectSpread({}, paymentItem.metadata || {}), formattedParams.metadata);
1399
+ }
1372
1400
  Object.assign(paymentItem, formattedParams);
1373
1401
 
1374
1402
  // 重新计算待付金额
1375
1403
  this.recalculateOrderAmount(order);
1376
1404
 
1377
1405
  // 更新到 IndexDB
1378
- _context16.next = 14;
1406
+ _context16.next = 15;
1379
1407
  return this.dbManager.update('order', order);
1380
- case 14:
1381
- _context16.next = 16;
1408
+ case 15:
1409
+ _context16.next = 17;
1382
1410
  return this.core.effects.emit("".concat(this.name, ":onPaymentUpdated"), {
1383
1411
  order: order,
1384
1412
  paymentItem: paymentItem
1385
1413
  });
1386
- case 16:
1387
- _context16.next = 18;
1414
+ case 17:
1415
+ _context16.next = 19;
1388
1416
  return this.core.effects.emit("".concat(this.name, ":onOrderChanged"), {
1389
1417
  action: 'payment_update',
1390
1418
  order: order,
1391
1419
  paymentItem: paymentItem
1392
1420
  });
1393
- case 18:
1394
- _context16.next = 24;
1421
+ case 19:
1422
+ _context16.next = 25;
1395
1423
  break;
1396
- case 20:
1397
- _context16.prev = 20;
1424
+ case 21:
1425
+ _context16.prev = 21;
1398
1426
  _context16.t0 = _context16["catch"](0);
1399
1427
  console.error('[PaymentModule] 更新支付项失败', _context16.t0);
1400
1428
  throw _context16.t0;
1401
- case 24:
1429
+ case 25:
1402
1430
  case "end":
1403
1431
  return _context16.stop();
1404
1432
  }
1405
- }, _callee16, this, [[0, 20]]);
1433
+ }, _callee16, this, [[0, 21]]);
1406
1434
  }));
1407
1435
  function updatePaymentAsync(_x19, _x20, _x21) {
1408
1436
  return _updatePaymentAsync.apply(this, arguments);
@@ -1518,6 +1546,7 @@ export var PaymentModule = /*#__PURE__*/function (_BaseModule) {
1518
1546
  payments: order.payment.map(function (payment) {
1519
1547
  return {
1520
1548
  uuid: payment.uuid,
1549
+ payment_number: payment.payment_number,
1521
1550
  amount: payment.amount,
1522
1551
  code: payment.code,
1523
1552
  custom_payment_id: payment.custom_payment_id,