This commit is contained in:
Lemon
2023-05-29 13:30:09 +08:00
4 changed files with 16 additions and 22 deletions

View File

@@ -753,7 +753,7 @@ public class OrderService {
orderBasicInfoService.weChatRefund(dto); orderBasicInfoService.weChatRefund(dto);
} }
public void adapayRefund(WeChatRefundDTO dto) throws BaseAdaPayException { public void adapayRefund(WeChatRefundDTO dto) {
log.info("汇付退款 param:{}", JSON.toJSONString(dto)); log.info("汇付退款 param:{}", JSON.toJSONString(dto));
// 退款有两种情况 1-订单结算退款 2-用户余额退款 // 退款有两种情况 1-订单结算退款 2-用户余额退款
String refundType = dto.getRefundType(); String refundType = dto.getRefundType();

View File

@@ -1,6 +1,7 @@
package com.jsowell.netty.handler; package com.jsowell.netty.handler;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.common.constant.Constants; import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
@@ -85,7 +86,7 @@ public class RemoteStartChargingRequestHandler extends AbstractHandler{
String failedReasonMsg = ChargingFailedReasonEnum.getMsgByCode(Integer.parseInt(failedReason, 16)); String failedReasonMsg = ChargingFailedReasonEnum.getMsgByCode(Integer.parseInt(failedReason, 16));
if (StringUtils.equals(startResult, Constants.DOUBLE_ZERO)) { if (StringUtils.equals(startResult, Constants.DOUBLE_ZERO)) {
// 启动失败 // 启动失败 682204000001000000000041
orderBasicInfoService.chargingPileFailedToStart(transactionCode, failedReasonMsg); orderBasicInfoService.chargingPileFailedToStart(transactionCode, failedReasonMsg);
} else { } else {
// 启动成功 // 启动成功

View File

@@ -1,16 +1,10 @@
package com.jsowell.pile.service; package com.jsowell.pile.service;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail; import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.dto.GenerateOrderDTO; import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.IndexQueryDTO;
import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.QueryPersonPileDTO;
import com.jsowell.pile.dto.QueryStartChargeDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.vo.base.OrderAmountDetailVO; import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
@@ -204,7 +198,7 @@ public interface IOrderBasicInfoService {
* @param orderCode * @param orderCode
* @param failedReasonMsg * @param failedReasonMsg
*/ */
void chargingPileFailedToStart(String orderCode, String failedReasonMsg) throws BaseAdaPayException; void chargingPileFailedToStart(String orderCode, String failedReasonMsg);
/** /**
* 充电桩启动成功 * 充电桩启动成功
@@ -262,7 +256,7 @@ public interface IOrderBasicInfoService {
* 汇付支付 订单退款 * 汇付支付 订单退款
* @param dto * @param dto
*/ */
void refundForOrderWithAdapay(WeChatRefundDTO dto) throws BaseAdaPayException; void refundForOrderWithAdapay(WeChatRefundDTO dto);
/** /**
* 汇付支付 余额退款 * 汇付支付 余额退款

View File

@@ -641,11 +641,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.WECHAT_PAY.getValue())) {
this.weChatRefund(weChatRefundDTO); this.weChatRefund(weChatRefundDTO);
} else if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.ADAPAY.getValue())) { } else if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.ADAPAY.getValue())) {
try { this.refundForOrderWithAdapay(weChatRefundDTO);
this.refundForOrderWithAdapay(weChatRefundDTO);
} catch (BaseAdaPayException e) {
logger.error("汇付支付退款 param:{}", JSON.toJSONString(weChatRefundDTO), e);
}
} }
// 订单支付记录 // 订单支付记录
OrderPayRecord orderPayRecord = payRecordList.get(0); OrderPayRecord orderPayRecord = payRecordList.get(0);
@@ -1753,11 +1749,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
} }
@Override @Override
public void refundForOrderWithAdapay(WeChatRefundDTO dto) throws BaseAdaPayException { public void refundForOrderWithAdapay(WeChatRefundDTO dto) {
// 查出来原来的支付信息 // 查出来原来的支付信息
AdapayCallbackRecord record = adapayCallbackRecordService.selectByOrderCode(dto.getOrderCode()); AdapayCallbackRecord record = adapayCallbackRecordService.selectByOrderCode(dto.getOrderCode());
if (Objects.isNull(record)) { if (Objects.isNull(record)) {
logger.error("orderCode:{}, 订单退款处理逻辑, 查询订单微信支付记录为空!", dto.getOrderCode()); logger.error("汇付支付orderCode:{}, 订单退款处理逻辑, 查询订单微信支付记录为空!", dto.getOrderCode());
throw new BusinessException(ReturnCodeEnum.CODE_REFUND_ORDER_CALLBACK_RECORD_ERROR); throw new BusinessException(ReturnCodeEnum.CODE_REFUND_ORDER_CALLBACK_RECORD_ERROR);
} }
@@ -1765,7 +1761,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
BigDecimal refundAmount = dto.getRefundAmount(); BigDecimal refundAmount = dto.getRefundAmount();
BigDecimal payAmt = record.getPayAmt(); BigDecimal payAmt = record.getPayAmt();
if (refundAmount.compareTo(payAmt) > 0) { if (refundAmount.compareTo(payAmt) > 0) {
logger.error("订单号:{}, 退款金额:{}(元),大于可退金额{}(元), 抛出异常", dto.getOrderCode(), refundAmount, payAmt); logger.error("汇付支付订单号:{}, 退款金额:{}(元),大于可退金额{}(元), 抛出异常", dto.getOrderCode(), refundAmount, payAmt);
throw new BusinessException(ReturnCodeEnum.CODE_REFUND_ORDER_AMOUNT_ERROR); throw new BusinessException(ReturnCodeEnum.CODE_REFUND_ORDER_AMOUNT_ERROR);
} }
@@ -1775,9 +1771,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
refundParams.put("refund_amt", AdapayUtil.formatAmount(dto.getRefundAmount())); refundParams.put("refund_amt", AdapayUtil.formatAmount(dto.getRefundAmount()));
refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId()); refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId());
refundParams.put("notify_url", ADAPAY_REFUND_CALLBACK_URL); refundParams.put("notify_url", ADAPAY_REFUND_CALLBACK_URL);
Map<String, Object> response = Refund.create(id, refundParams); try {
logger.info("创建退款对象:{}", JSON.toJSONString(response)); Map<String, Object> response = Refund.create(id, refundParams);
logger.info("汇付支付创建退款对象:{}", JSON.toJSONString(response));
} catch (BaseAdaPayException e) {
logger.error("汇付支付创建退款对象error", e);
}
} }
@Override @Override