|
|
@ -17,6 +17,7 @@ import com.hfkj.service.gas.BsGasOrderService; |
|
|
|
import com.hfkj.service.merchant.BsMerchantService; |
|
|
|
import com.hfkj.service.merchant.BsMerchantService; |
|
|
|
import com.hfkj.service.order.*; |
|
|
|
import com.hfkj.service.order.*; |
|
|
|
import com.hfkj.sysenum.gas.GasOrderCreateType; |
|
|
|
import com.hfkj.sysenum.gas.GasOrderCreateType; |
|
|
|
|
|
|
|
import com.hfkj.sysenum.gas.OrderOilStatus; |
|
|
|
import com.hfkj.sysenum.merchant.MerchantSourceTypeEnum; |
|
|
|
import com.hfkj.sysenum.merchant.MerchantSourceTypeEnum; |
|
|
|
import com.hfkj.sysenum.order.*; |
|
|
|
import com.hfkj.sysenum.order.*; |
|
|
|
import org.apache.commons.collections4.MapUtils; |
|
|
|
import org.apache.commons.collections4.MapUtils; |
|
|
@ -70,9 +71,15 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@Transactional(propagation = Propagation.NOT_SUPPORTED, isolation = Isolation.READ_UNCOMMITTED) |
|
|
|
@Transactional(propagation = Propagation.NOT_SUPPORTED, isolation = Isolation.READ_UNCOMMITTED) |
|
|
|
public boolean refundMoney(BsOrderRefund orderRefund) { |
|
|
|
public Boolean refundMoney(BsOrderRefund orderRefund) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
if (OrderPayChannelEnum.type1.getCode() == orderRefund.getRefundPayChannel()) { |
|
|
|
if (OrderPayChannelEnum.type1.getCode() == orderRefund.getRefundPayChannel()) { |
|
|
|
|
|
|
|
// 交易结算
|
|
|
|
|
|
|
|
BsOrderSettle orderSettle = orderSettleService.getData(orderRefund.getOrderNo()); |
|
|
|
|
|
|
|
if (orderSettle.getLedgerFlag().equals(true) && OrderSettleLedgerStatusEnum.status1.getCode() == orderSettle.getLedgerStatus()) { |
|
|
|
|
|
|
|
orderSettleService.revokeLedger(orderSettle); |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
// 渠道退款
|
|
|
|
// 渠道退款
|
|
|
|
JSONObject refund = HuiPayService.refund(orderRefund.getAccountMerchantNo(), orderRefund.getAccountMerchantKey(), orderRefund.getOrderNo(), orderRefund.getRefundOrderNo(), orderRefund.getRefundPrice()); |
|
|
|
JSONObject refund = HuiPayService.refund(orderRefund.getAccountMerchantNo(), orderRefund.getAccountMerchantKey(), orderRefund.getOrderNo(), orderRefund.getRefundOrderNo(), orderRefund.getRefundPrice()); |
|
|
|
if (refund.getString("return_code").equals("000000")) { |
|
|
|
if (refund.getString("return_code").equals("000000")) { |
|
|
@ -170,6 +177,14 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { |
|
|
|
if (merchant == null) { |
|
|
|
if (merchant == null) { |
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商户"); |
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商户"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (orderChild.getProductType().equals(OrderChildProductTypeEnum.type1.getCode())) { |
|
|
|
|
|
|
|
// 加油订单
|
|
|
|
|
|
|
|
BsGasOrder gasOrder = gasOrderService.getDetailByOrderNo(order.getOrderNo()); |
|
|
|
|
|
|
|
if (gasOrder != null) { |
|
|
|
|
|
|
|
gasOrder.setStatus(OrderOilStatus.STATUS5.getNumber()); |
|
|
|
|
|
|
|
gasOrderService.updateGasOrder(gasOrder); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
// 创建退款订单
|
|
|
|
// 创建退款订单
|
|
|
|
BsOrderRefund orderRefund = new BsOrderRefund(); |
|
|
|
BsOrderRefund orderRefund = new BsOrderRefund(); |
|
|
|
orderRefund.setMerId(merchant.getId()); |
|
|
|
orderRefund.setMerId(merchant.getId()); |
|
|
@ -228,19 +243,31 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { |
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的加油订单"); |
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的加油订单"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (gasOrder.getAbnormal().equals(true)) { |
|
|
|
if (gasOrder.getAbnormal().equals(true)) { |
|
|
|
orderRefund.setRefundStatus(refundMoney(orderRefund)?OrderRefundStatusEnum.status2.getCode():OrderRefundStatusEnum.status3.getCode()); |
|
|
|
// 资金退款
|
|
|
|
|
|
|
|
Boolean refundMoney = refundMoney(orderRefund); |
|
|
|
|
|
|
|
if (refundMoney != null) { |
|
|
|
|
|
|
|
orderRefund.setRefundStatus(refundMoney?OrderRefundStatusEnum.status2.getCode():OrderRefundStatusEnum.status3.getCode()); |
|
|
|
editData(orderRefund); |
|
|
|
editData(orderRefund); |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber()) |
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber()) |
|
|
|
|| gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) { |
|
|
|
|| gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) { |
|
|
|
orderRefund.setRefundStatus(refundMoney(orderRefund)?OrderRefundStatusEnum.status2.getCode():OrderRefundStatusEnum.status3.getCode()); |
|
|
|
// 资金退款
|
|
|
|
|
|
|
|
Boolean refundMoney = refundMoney(orderRefund); |
|
|
|
|
|
|
|
if (refundMoney != null) { |
|
|
|
|
|
|
|
orderRefund.setRefundStatus(refundMoney?OrderRefundStatusEnum.status2.getCode():OrderRefundStatusEnum.status3.getCode()); |
|
|
|
editData(orderRefund); |
|
|
|
editData(orderRefund); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
orderRefund.setRefundStatus(refundMoney(orderRefund)?OrderRefundStatusEnum.status2.getCode():OrderRefundStatusEnum.status3.getCode()); |
|
|
|
// 资金退款
|
|
|
|
|
|
|
|
Boolean refundMoney = refundMoney(orderRefund); |
|
|
|
|
|
|
|
if (refundMoney != null) { |
|
|
|
|
|
|
|
orderRefund.setRefundStatus(refundMoney?OrderRefundStatusEnum.status2.getCode():OrderRefundStatusEnum.status3.getCode()); |
|
|
|
editData(orderRefund); |
|
|
|
editData(orderRefund); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 退款成功
|
|
|
|
// 退款成功
|
|
|
|
if (orderRefund.getRefundStatus().equals(OrderRefundStatusEnum.status2.getCode())) { |
|
|
|
if (orderRefund.getRefundStatus().equals(OrderRefundStatusEnum.status2.getCode())) { |
|
|
|