diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index df46c2b30..3788fa9b5 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -149,7 +149,7 @@ public class SpringBootTestController { public void testAdapayRefund() { // 创建汇付退款对象 在完成初始化设置情况下,调用方法,获取 Refund对象 try { - String id = "002212023052711245310508373206577954816"; + String id = "002212023052710075810508353847861903360"; String refundAmount = "0.01"; Map refundParams = Maps.newHashMap(); refundParams.put("refund_amt", AdapayUtil.formatAmount(refundAmount)); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberTransactionRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberTransactionRecordMapper.java index 13e7328fa..0cfa097c0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberTransactionRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberTransactionRecordMapper.java @@ -1,6 +1,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.MemberTransactionRecord; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +11,5 @@ public interface MemberTransactionRecordMapper { List selectByMemberId(String memberId); + MemberTransactionRecord selectByOrderCode(@Param("orderCode") String orderCode); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberTransactionRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberTransactionRecordService.java index 79d5ad8e3..0e7201042 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberTransactionRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberTransactionRecordService.java @@ -15,4 +15,6 @@ public interface IMemberTransactionRecordService { int insertSelective(MemberTransactionRecord record); List selectMemberTransactionRecordList(String memberId); + + MemberTransactionRecord selectByOrderCode(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index 86000dbbb..6f0ce9255 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -204,7 +204,7 @@ public interface IOrderBasicInfoService { * @param orderCode * @param failedReasonMsg */ - void chargingPileFailedToStart(String orderCode, String failedReasonMsg); + void chargingPileFailedToStart(String orderCode, String failedReasonMsg) throws BaseAdaPayException; /** * 充电桩启动成功 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberTransactionRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberTransactionRecordServiceImpl.java index 6fac0fd17..38424d0e8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberTransactionRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberTransactionRecordServiceImpl.java @@ -38,4 +38,9 @@ public class MemberTransactionRecordServiceImpl implements IMemberTransactionRec return resultList; } + @Override + public MemberTransactionRecord selectByOrderCode(String orderCode) { + return memberTransactionRecordMapper.selectByOrderCode(orderCode); + } + } 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 1d0a9def9..f3abff6f9 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 @@ -133,6 +133,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Value("${adapay.refundCallback}") private String ADAPAY_REFUND_CALLBACK_URL; + @Autowired + private IMemberTransactionRecordService memberTransactionRecordService; + /** * 条件查询订单基本信息 * @@ -632,7 +635,18 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { weChatRefundDTO.setOrderCode(orderBasicInfo.getOrderCode()); weChatRefundDTO.setRefundType("1"); weChatRefundDTO.setRefundAmount(residue); - this.weChatRefund(weChatRefundDTO); + + // 查到该笔订单付款金额到哪里了 + MemberTransactionRecord transactionRecord = memberTransactionRecordService.selectByOrderCode(orderBasicInfo.getOrderCode()); + if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { + this.weChatRefund(weChatRefundDTO); + } else if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.ADAPAY.getValue())) { + try { + this.refundForOrderWithAdapay(weChatRefundDTO); + } catch (BaseAdaPayException e) { + logger.error("汇付支付退款 param:{}", JSON.toJSONString(weChatRefundDTO), e); + } + } // 订单支付记录 OrderPayRecord orderPayRecord = payRecordList.get(0); orderPayRecord.setRefundAmount(residue); diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberTransactionRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberTransactionRecordMapper.xml index 93aa65cd1..a84dcb465 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberTransactionRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberTransactionRecordMapper.xml @@ -118,4 +118,11 @@ where member_id = #{memberId,jdbcType=VARCHAR} order by create_time desc + \ No newline at end of file