From 010cffee9c31e5a4f599879218fae58783383e26 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Fri, 19 Jan 2024 09:40:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E8=B6=85=E6=97=B6=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E8=AE=A2=E5=8D=95=E9=80=80=E6=AC=BE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OrderBasicInfoServiceImpl.java | 67 ++++++++++++------- 1 file changed, 42 insertions(+), 25 deletions(-) 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 14bace52f..0fbb531a8 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 @@ -6,7 +6,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.huifu.adapay.core.exception.BaseAdaPayException; -import com.jsowell.adapay.common.AdaPayment; import com.jsowell.adapay.dto.QueryConfirmReverseDTO; import com.jsowell.adapay.dto.QueryPaymentConfirmDTO; import com.jsowell.adapay.operation.PaymentReverseOperation; @@ -2070,38 +2069,56 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ private void checkUnpaidOrder(OrderBasicInfo orderBasicInfo) { String orderCode = orderBasicInfo.getOrderCode(); - List adaPayments = null; String memberId = orderBasicInfo.getMemberId(); String merchantId = orderBasicInfo.getMerchantId(); String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(merchantId); String delayMode = pileMerchantInfoService.getDelayModeByWechatAppId(wechatAppId); - try { - adaPayments = adapayService.queryPaymentByOrderNo(orderCode, wechatAppId); - } catch (BaseAdaPayException e) { - throw new RuntimeException(e); - } + // List adaPayments = null; + // try { + // adaPayments = adapayService.queryPaymentByOrderNo(orderCode, wechatAppId); + // } catch (BaseAdaPayException e) { + // throw new RuntimeException(e); + // } - if (CollectionUtils.isEmpty(adaPayments)) { - return; + // if (CollectionUtils.isEmpty(adaPayments)) { + // return; + // } + + // 如果超时关闭的订单,存在支付信息,都退款处理 + List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); + logger.info("校验未支付订单orderCode:{}, 支付信息:{}", orderCode, JSON.toJSONString(orderPayRecordList)); + for (OrderPayRecord orderPayRecord : orderPayRecordList) { + List paymentInfos = orderPayRecordService.parseDeductionRecord(orderPayRecord.getDeductionRecord()); + for (PaymentInfo paymentInfo : paymentInfos) { + String paymentId = paymentInfo.getPaymentId(); + BigDecimal payAmt = new BigDecimal(paymentInfo.getAmount()); + if (MerchantDelayModeEnum.DELAY.getMode().equals(delayMode)) { + // 延时分账商户,创建交易撤销请求 + adapayService.createPaymentReverseRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + } else { + // 实时分账商户,创建交易退款请求 + adapayService.createRefundRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + } + } } // 退款 - for (AdaPayment adaPayment : adaPayments) { - String status = adaPayment.getStatus(); - if (!AdapayStatusEnum.SUCCEEDED.getValue().equals(status)) { - // 不是交易完成状态,就跳过 - continue; - } - String paymentId = adaPayment.getId(); - BigDecimal payAmt = new BigDecimal(adaPayment.getPay_amt()); - if (MerchantDelayModeEnum.DELAY.getMode().equals(delayMode)) { - // 延时分账商户,创建交易撤销请求 - adapayService.createPaymentReverseRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); - } else { - // 实时分账商户,创建交易退款请求 - adapayService.createRefundRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); - } - } + // for (AdaPayment adaPayment : adaPayments) { + // String status = adaPayment.getStatus(); + // if (!AdapayStatusEnum.SUCCEEDED.getValue().equals(status)) { + // // 不是交易完成状态,就跳过 + // continue; + // } + // String paymentId = adaPayment.getId(); + // BigDecimal payAmt = new BigDecimal(adaPayment.getPay_amt()); + // if (MerchantDelayModeEnum.DELAY.getMode().equals(delayMode)) { + // // 延时分账商户,创建交易撤销请求 + // adapayService.createPaymentReverseRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + // } else { + // // 实时分账商户,创建交易退款请求 + // adapayService.createRefundRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + // } + // } } /** From e557a029d54e8387cefeaf34ae8d04c06f18fd8a Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Fri, 19 Jan 2024 09:56:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E8=B6=85=E6=97=B6=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E8=AE=A2=E5=8D=95=E9=80=80=E6=AC=BE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OrderBasicInfoServiceImpl.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) 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 0fbb531a8..c7b4ca341 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 @@ -2084,20 +2084,27 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // return; // } + BigDecimal orderAmount = orderBasicInfo.getOrderAmount() == null ? BigDecimal.ZERO : orderBasicInfo.getOrderAmount(); + if (orderAmount.compareTo(BigDecimal.ZERO) > 0) { + return; + } + // 如果超时关闭的订单,存在支付信息,都退款处理 List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); logger.info("校验未支付订单orderCode:{}, 支付信息:{}", orderCode, JSON.toJSONString(orderPayRecordList)); - for (OrderPayRecord orderPayRecord : orderPayRecordList) { - List paymentInfos = orderPayRecordService.parseDeductionRecord(orderPayRecord.getDeductionRecord()); - for (PaymentInfo paymentInfo : paymentInfos) { - String paymentId = paymentInfo.getPaymentId(); - BigDecimal payAmt = new BigDecimal(paymentInfo.getAmount()); - if (MerchantDelayModeEnum.DELAY.getMode().equals(delayMode)) { - // 延时分账商户,创建交易撤销请求 - adapayService.createPaymentReverseRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); - } else { - // 实时分账商户,创建交易退款请求 - adapayService.createRefundRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + if (CollectionUtils.isNotEmpty(orderPayRecordList)) { + for (OrderPayRecord orderPayRecord : orderPayRecordList) { + List paymentInfos = orderPayRecordService.parseDeductionRecord(orderPayRecord.getDeductionRecord()); + for (PaymentInfo paymentInfo : paymentInfos) { + String paymentId = paymentInfo.getPaymentId(); + BigDecimal payAmt = new BigDecimal(paymentInfo.getAmount()); + if (MerchantDelayModeEnum.DELAY.getMode().equals(delayMode)) { + // 延时分账商户,创建交易撤销请求 + adapayService.createPaymentReverseRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + } else { + // 实时分账商户,创建交易退款请求 + adapayService.createRefundRequest(paymentId, payAmt, wechatAppId, memberId, ScenarioEnum.ORDER.getValue(), orderCode); + } } } }