|
|
|
@ -270,7 +270,7 @@ public class ApiGasOrderService { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "未找到订单"); |
|
|
|
|
} |
|
|
|
|
if (!gasOrder.getStatus().equals(OrderOilStatus.STATUS2.getNumber()) |
|
|
|
|
|| !gasOrder.getStatus().equals(OrderOilStatus.STATUS6.getNumber())) { |
|
|
|
|
&& !gasOrder.getStatus().equals(OrderOilStatus.STATUS6.getNumber())) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "订单状态暂时无法申请退款"); |
|
|
|
|
} |
|
|
|
|
// 创建退款订单
|
|
|
|
@ -359,6 +359,7 @@ public class ApiGasOrderService { |
|
|
|
|
return "ok"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 退款金额 |
|
|
|
|
* @param gasOrder |
|
|
|
@ -366,28 +367,22 @@ public class ApiGasOrderService { |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private void refundPrice(BsGasOrder gasOrder, BsOrderRefund orderRefund) { |
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type2.getNumber())) { |
|
|
|
|
// 团油
|
|
|
|
|
// 异常订单
|
|
|
|
|
if (gasOrder.getAbnormal().equals(true)) { |
|
|
|
|
try { |
|
|
|
|
// 请求团油渠道申请退款
|
|
|
|
|
JSONObject object = NewLinkRequestService.refuelingOrderRefund(gasOrder.getUserPhone(), gasOrder.getOrderNo(), orderRefund.getRefundRemark()); |
|
|
|
|
if (object == null || !object.getString("code").equals("200")) { |
|
|
|
|
gasOrder.setAbnormal(true); |
|
|
|
|
gasOrder.setAbnormalContent("渠道申请退款失败!原因:" + object.getString("message")); |
|
|
|
|
gasOrderService.updateGasOrder(gasOrder); |
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) { |
|
|
|
|
// 未出现异常
|
|
|
|
|
if (gasOrder.getAbnormal().equals(false)) { |
|
|
|
|
// 请求重庆壳牌渠道退款
|
|
|
|
|
CqShellPetroleumRequestService.gasSyncRefund(gasOrder.getPayTime(), gasOrder.getOrderNo()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
try { |
|
|
|
|
// 代理商退款退款
|
|
|
|
|
agentApiAccountService.refund(gasOrder.getAgentId(),gasOrder.getGasRefuelPrice(), orderRefund); |
|
|
|
|
// 退款到油站
|
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) { |
|
|
|
|
merchantAccountService.refund(gasOrder.getMerNo(),gasOrder.getGasSettlePrice(),orderRefund); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
orderRefund.setRefundStatus(OrderRefundStatusEnum.status2.getCode()); |
|
|
|
|
orderRefund.setFinishTime(new Date()); |
|
|
|
|
orderRefundService.editData(orderRefund); |
|
|
|
@ -399,9 +394,81 @@ public class ApiGasOrderService { |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// 正常订单
|
|
|
|
|
// 渠道退款
|
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type2.getNumber())) { |
|
|
|
|
// 团油
|
|
|
|
|
try { |
|
|
|
|
// 请求团油渠道申请退款
|
|
|
|
|
JSONObject object = NewLinkRequestService.refuelingOrderRefund(gasOrder.getUserPhone(), gasOrder.getOrderNo(), orderRefund.getRefundRemark()); |
|
|
|
|
if (object == null || !object.getString("code").equals("200")) { |
|
|
|
|
gasOrder.setAbnormal(true); |
|
|
|
|
gasOrder.setAbnormalContent("渠道申请退款失败!原因:" + object.getString("message")); |
|
|
|
|
gasOrderService.updateGasOrder(gasOrder); |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
// 重庆壳牌
|
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) { |
|
|
|
|
try { |
|
|
|
|
// 请求重庆壳牌渠道退款
|
|
|
|
|
CqShellPetroleumRequestService.gasSyncRefund(gasOrder.getPayTime(), gasOrder.getOrderNo()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
// 代理商退款退款
|
|
|
|
|
agentApiAccountService.refund(gasOrder.getAgentId(),gasOrder.getGasRefuelPrice(), orderRefund); |
|
|
|
|
// 退款到油站
|
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) { |
|
|
|
|
merchantAccountService.refund(gasOrder.getMerNo(),gasOrder.getGasSettlePrice(),orderRefund); |
|
|
|
|
} |
|
|
|
|
orderRefund.setRefundStatus(OrderRefundStatusEnum.status2.getCode()); |
|
|
|
|
orderRefund.setFinishTime(new Date()); |
|
|
|
|
orderRefundService.editData(orderRefund); |
|
|
|
|
|
|
|
|
|
gasOrder.setStatus(OrderOilStatus.STATUS4.getNumber()); |
|
|
|
|
gasOrder.setRefundTime(orderRefund.getFinishTime()); |
|
|
|
|
gasOrderService.updateGasOrder(gasOrder); |
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* @Transactional(propagation= Propagation.REQUIRES_NEW,isolation = Isolation.SERIALIZABLE,rollbackFor= {RuntimeException.class}) |
|
|
|
|
private void newLinkNotify(BsGasOrder gasOrder,String refundFailReason) { |
|
|
|
|
BsOrderRefund orderRefund = orderRefundService.getRefundByOrderNo(gasOrder.getOrderNo()); |
|
|
|
|
try { |
|
|
|
|
if (orderRefund != null) { |
|
|
|
|
orderRefund.setRefundStatus(OrderRefundStatusEnum.status2.getCode()); |
|
|
|
|
orderRefund.setFinishTime(new Date()); |
|
|
|
|
orderRefund.setRefundFailReason(refundFailReason); |
|
|
|
|
orderRefundService.editData(orderRefund); |
|
|
|
|
} |
|
|
|
|
// 代理商退款退款
|
|
|
|
|
agentApiAccountService.refund(gasOrder.getAgentId(),gasOrder.getGasRefuelPrice(), orderRefund); |
|
|
|
|
// 退款到油站
|
|
|
|
|
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) { |
|
|
|
|
merchantAccountService.refund(gasOrder.getMerNo(),gasOrder.getGasSettlePrice(),orderRefund); |
|
|
|
|
} |
|
|
|
|
gasOrder.setStatus(OrderOilStatus.STATUS4.getNumber()); |
|
|
|
|
gasOrder.setRefundTime(new Date()); |
|
|
|
|
gasOrderService.updateGasOrder(gasOrder); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
if (orderRefund != null) { |
|
|
|
|
orderRefund.set |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询订单详情 |
|
|
|
|
* @param request |
|
|
|
|