From 6640c56dc6bedbdb7291ed265932b834230ccd5c Mon Sep 17 00:00:00 2001 From: clunt Date: Wed, 12 Oct 2022 14:40:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=AC=BE=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AfterServiceRecordServiceImpl.java | 32 +++++++++++-------- .../mapper/order/AfterServiceRecordMapper.xml | 5 ++- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java index 7ebafe88..e0147acf 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java @@ -7,6 +7,8 @@ import com.alibaba.fastjson.JSONObject; import com.ghy.common.adapay.model.AdapayStatusEnum; import com.ghy.common.adapay.model.PaymentDTO; import com.ghy.common.core.domain.AjaxResult; +import com.ghy.common.enums.PayStatus; +import com.ghy.common.enums.PayTypeEnum; import com.ghy.common.exception.base.BaseException; import com.ghy.common.utils.DateUtils; import com.ghy.common.utils.ObjectUtils; @@ -122,7 +124,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId()); Assert.notNull(afterServiceRecord, "售后记录不存在!"); // 实际同意,需要发起退款,减少原单分账金额-调用退款接口 - if(param.getCustomerFinalCheck() == 1){ + if(param.getCustomerFinalCheck() != null && param.getCustomerFinalCheck() == 1){ OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId()); Assert.notNull(orderDetail, "子单不存在!"); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(afterServiceRecord.getOrderDetailId()); @@ -144,23 +146,27 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService Assert.notNull(orderMaster, "找不到对应的订单"); FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId()); Assert.notNull(financialMaster, "找不到订单"); - Assert.isTrue(financialMaster.getPayStatus() == 1, "订单未支付"); - Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员"); - JSONObject response = null; - try { - response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), String.valueOf(refundMoney)); - if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { + if(PayTypeEnum.ALIPAY_QR.getCode().equals(orderMaster.getPayType()) && ! PayStatus.PAID.getCode().equals(financialMaster.getPayStatus())){ + financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney)); + financialMasterService.updateFinancialMaster(financialMaster); + financialDetailService.updateFinancialDetail(financialDetail); + }else { + Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员"); + JSONObject response = null; + try { + response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), String.valueOf(refundMoney)); if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { - afterServiceRecord.setCustomerFinalCheck(1L); - financialDetailService.updateFinancialDetail(financialDetail); + if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { + financialDetailService.updateFinancialDetail(financialDetail); + } } + } catch (BaseAdaPayException e) { + throw new BaseException("发起退款异常!"); } - } catch (BaseAdaPayException e) { - throw new BaseException("发起退款异常!"); } } - afterServiceRecord.setUpdateTime(DateUtils.getNowDate()); - return afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord); + param.setUpdateTime(DateUtils.getNowDate()); + return afterServiceRecordMapper.updateAfterServiceRecord(param); } /** diff --git a/ghy-order/src/main/resources/mapper/order/AfterServiceRecordMapper.xml b/ghy-order/src/main/resources/mapper/order/AfterServiceRecordMapper.xml index b01e3322..0dff5062 100644 --- a/ghy-order/src/main/resources/mapper/order/AfterServiceRecordMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/AfterServiceRecordMapper.xml @@ -40,6 +40,9 @@ and refund = #{refund} and agreed_refund = #{agreedRefund} and customer_final_check = #{customerFinalCheck} + + and ( customer_final_check = '0' or customer_final_check is null ) + @@ -113,7 +116,7 @@ - delete from after_service_record where customer_final_check != 1 and id in + delete from after_service_record where (customer_final_check is NULL or customer_final_check = 0) and id in #{id}