diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java
index b02c45ce0..f2da9a194 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java
@@ -32,7 +32,7 @@ public class MemberAdapayRecord {
private String paymentId;
/**
- * 汇付支付单号
+ * 汇付支付单号(支付宝/微信 订单号)
*/
private String paymentOrderNo;
@@ -51,6 +51,11 @@ public class MemberAdapayRecord {
*/
private BigDecimal spendAmt;
+ /**
+ * 冻结金额
+ */
+ private BigDecimal freezeAmt;
+
/**
* 剩余金额
*/
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
index af57d1aaa..1c29f6dc3 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
@@ -760,15 +760,20 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
未使用延时分账的一级运营商
*/
- OrderSettleResult orderSettleResult = null;
if (StringUtils.equals(delayMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
- // 延迟商家订单处理逻辑
- orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
- } else {
- // 不延迟商家订单处理逻辑 不使用延时分账的汇付商户,钱已经到基本账户中了,只需要退款就可以
- orderSettleResult = notDelayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
+ // 记账 冻结金额
+
}
+ OrderSettleResult orderSettleResult = null;
+ // if (StringUtils.equals(delayMode, Constants.ADAPAY_PAY_MODE_DELAY)) {
+ // // 延迟商家订单处理逻辑
+ // orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
+ // } else {
+ // // 不延迟商家订单处理逻辑 不使用延时分账的汇付商户,钱已经到基本账户中了,只需要退款就可以
+ // orderSettleResult = notDelayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId);
+ // }
+
// 退款逻辑/需要退款的情况
BigDecimal residue = orderBasicInfo.getRefundAmount();
if (residue.compareTo(BigDecimal.ZERO) > 0) {
@@ -787,6 +792,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* 不延迟商家订单处理逻辑
* 例如:希晓
* 相当于已经分账完成了
+ *
* @param orderBasicInfo 订单信息
* @param adapayMemberAccount 汇付用户信息
* @param wechatAppId 小程序appId
@@ -797,6 +803,26 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return null;
}
+ /**
+ * 冻结订单金额
+ * 记一笔账,还没有到分账时间,把订单消费金额在支付单里冻结,退款的时候不能动这些钱
+ */
+ private void freezeAmount(OrderBasicInfo orderBasicInfo) {
+ String orderCode = orderBasicInfo.getOrderCode();
+ // 查询这笔订单的支付id/查询该笔订单的支付交易回调
+ AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode);
+
+ }
+
+ private AdapayCallbackRecord selectAdapayCallbackRecord(String orderCode) {
+ AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
+ if (adapayCallbackRecord == null) {
+ logger.error("根据订单号:{}, 未查询到汇付支付回调信息", orderCode);
+ throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
+ }
+ return adapayCallbackRecord;
+ }
+
/**
* 延迟商家订单处理逻辑
* 例如:举视以及下面的二级运营商
@@ -1328,11 +1354,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
public OrderSettleResult doPaymentConfirmWithDelay(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) {
String orderCode = orderBasicInfo.getOrderCode();
// 查询该笔订单的支付交易回调
- AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
- if (adapayCallbackRecord == null) {
- logger.error("根据订单号:{}, 未查询到汇付支付回调信息", orderCode);
- throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
- }
+ AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode);
// 支付id
String paymentId = adapayCallbackRecord.getPaymentId();
@@ -2857,10 +2879,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
BigDecimal refundAmount = orderBasicInfo.getRefundAmount();
// 查到原汇付支付id
- AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
- if (adapayCallbackRecord == null) {
- throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
- }
+ AdapayCallbackRecord adapayCallbackRecord = selectAdapayCallbackRecord(orderCode);
// 获取appId
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId());
diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml
index 0a6b444a9..b279eeb81 100644
--- a/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml
+++ b/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml
@@ -12,6 +12,7 @@
+
@@ -22,7 +23,8 @@
id, member_id, scenario_type, payment_id, payment_order_no, pay_amt, refund_amt,
- spend_amt, balance_amt, create_by, create_time, update_by, update_time, del_flag
+ spend_amt, freeze_amt, balance_amt, create_by, create_time, update_by, update_time,
+ del_flag
\ No newline at end of file