From 5a3bc0977ddf8f8462d9bc7fa5ee06b3b82b03b3 Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Mon, 5 Aug 2024 11:17:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/impl/BsOrderRefundServiceImpl.java | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java b/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java index 20e5bc7..8b1a796 100644 --- a/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java @@ -15,11 +15,13 @@ import com.hfkj.entity.BsOrderRefundExample; import com.hfkj.mer.BsMerPayConfigService; import com.hfkj.model.order.OrderChildModel; import com.hfkj.model.order.OrderModel; +import com.hfkj.service.hlt.HuiLianTongUnionCardService; import com.hfkj.service.order.BsOrderChildService; import com.hfkj.service.order.BsOrderRefundService; import com.hfkj.service.order.BsOrderService; import com.hfkj.service.order.OrderRefundSuccessService; import com.hfkj.service.pay.HuiPayService; +import com.hfkj.service.pay.huift.TradeService; import com.hfkj.service.user.UserIntegralService; import com.hfkj.sysenum.UserIntegralRecordOpUserTypeEnum; import com.hfkj.sysenum.UserIntegralRecordSourceTypeEnum; @@ -35,10 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @className: BsOrderRefundServiceImpl @@ -59,6 +58,8 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { @Resource private BsMerPayConfigService merPayConfigService; @Resource + private TradeService huiftTradeService; + @Resource private OrderRefundSuccessService orderRefundSuccessService; @Override public void editData(BsOrderRefund data) { @@ -92,11 +93,25 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { editData(orderRefund); } - }/* else if (OrderPayChannelEnum.type2.getCode() == orderRefund.getRefundPayChannel()) { - // TODO 暂无该支付方式 - - } else if (OrderPayChannelEnum.type3.getCode() ==orderRefund.getRefundPayChannel()) { - // TODO 暂无该支付方式 + } else if (OrderPayChannelEnum.type3.getCode() == orderRefund.getRefundPayChannel()) { + // 商户退款 + JSONObject refundObj = huiftTradeService.thirdPayRefund(orderRefund.getRefundOrderNo(), orderRefund.getRefundPrice(), orderRefund.getOrderNo()); + orderRefund.setRefundSerialNo(refundObj.getString("refundTraceNo")); + orderRefund.setRefundPayChannelOrderNo(refundObj.getString("refundOrderNo")); + return true; + + } /*else if (OrderPayChannelEnum.type4.getCode() == orderRefund.getRefundPayChannel()) { + // 商户退款 + JSONObject refundObj = HuiLianTongUnionCardService.refund(orderRefund.getRefundOrderNo(), orderRefund.getOrderNo()); + if (!refundObj.getString("respCode").equals("0000")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, refundObj.getString("respMessage")); + } + JSONObject consumptionResult = HuiLianTongUnionCardService.resolveResponse(refundObj.getString("data")); + if (!(consumptionResult.getBoolean("success") || Objects.equals(consumptionResult.getString("message"), "原交易已撤销,不可再次操作"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!"+consumptionResult.getString("message")); + } + orderRefund.setRefundSerialNo(consumptionResult.getString("orderId")); + return true; }*/ else { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!该支付方式暂不支持退款"); } @@ -250,6 +265,10 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { BsOrderRefundExample example = new BsOrderRefundExample(); BsOrderRefundExample.Criteria criteria = example.createCriteria(); + if (MapUtils.getLong(param, "merId") != null) { + criteria.andMerIdEqualTo(MapUtils.getLong(param, "merId")); + } + if (StringUtils.isNotBlank(MapUtils.getString(param, "userPhone"))) { criteria.andUserPhoneEqualTo(MapUtils.getString(param, "userPhone")); }