Commit ddd8fefa by 周晓航

Merge branch 'KA-新增同意退款回调逻辑处理' into qa

parents 5a92946e 36206fe2
...@@ -20,7 +20,7 @@ public enum PayRefundStatus { ...@@ -20,7 +20,7 @@ public enum PayRefundStatus {
* 额外状态码 用于判断逻辑, * 额外状态码 用于判断逻辑,
*/ */
NOT_SUFFICIENT_FUNDS(8200201,"余额不足"), NOT_SUFFICIENT_FUNDS(8200201,"余额不足"),
COMPATIBILITY_STATUS(9999999,"兼容爱马哥报错"); COMPATIBILITY_STATUS(9999999,"退款异常");
private Integer code; private Integer code;
private String desc; private String desc;
......
...@@ -2088,14 +2088,15 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2088,14 +2088,15 @@ public class OrderServiceImpl implements Orderservice {
partnerId, afterSalesType, orderRefundVo.getReason(), LogThreadLocal.getTrackingNo(), refundId.toString()); partnerId, afterSalesType, orderRefundVo.getReason(), LogThreadLocal.getTrackingNo(), refundId.toString());
cancelOrderRequest.setOperator(orderBean.getUserName()); cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
if (Objects.equals(PayRefundStatus.FAIL.getCode(), state)) {
// 退款中 if (Objects.equals(PayRefundStatus.SUCCESS.getCode(), state)) {
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent());
} else if (Objects.equals(PayRefundStatus.SUCCESS.getCode(), state)) {
//退款成功 //退款成功
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent()); cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
} else if (Objects.equals(PayRefundStatus.RUNNING.getCode(), state)) { } else if (Objects.equals(PayRefundStatus.RUNNING.getCode(), state)) {
cancelOrderRequest.setCreateEvent(null); cancelOrderRequest.setCreateEvent(null);
}else {
// 其他退款失败的情况 不生成售后单
return ResponseUtil.error(ResponseResult.MULTIORDER__ERRORREFUND.getCode(), "multiOrderRefund_failed");
} }
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks()); cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee); cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
......
...@@ -102,7 +102,7 @@ public class PaymentHandle { ...@@ -102,7 +102,7 @@ public class PaymentHandle {
refundResponse = this.refund(request, orderBean); refundResponse = this.refund(request, orderBean);
} }
} }
} catch (OrderServiceException orderEx) { // 爱马哥兼容,不抛错 } catch (OrderServiceException orderEx) {
ResponseResult result = orderEx.getResult(); ResponseResult result = orderEx.getResult();
refundResponse = new PayRefundResponse(); refundResponse = new PayRefundResponse();
refundResponse.setPayRefundStatus(PayRefundStatus.COMPATIBILITY_STATUS); refundResponse.setPayRefundStatus(PayRefundStatus.COMPATIBILITY_STATUS);
...@@ -376,7 +376,7 @@ public class PaymentHandle { ...@@ -376,7 +376,7 @@ public class PaymentHandle {
if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) { if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) {
// fisherman 退款异常 也当做 退款中处理 // fisherman 退款异常 也当做 退款中处理
refundStatus = PayRefundStatus.RUNNING; refundStatus = PayRefundStatus.RUNNING;
} }else {
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList; List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList;
if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) { if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) {
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS); redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
...@@ -397,6 +397,7 @@ public class PaymentHandle { ...@@ -397,6 +397,7 @@ public class PaymentHandle {
refundStatus = PayRefundStatus.RUNNING; refundStatus = PayRefundStatus.RUNNING;
} }
} }
}
return handlePayRefundResponse(refundStatus, multiOrderRefundRequest.getRefundTradeNo()); return handlePayRefundResponse(refundStatus, multiOrderRefundRequest.getRefundTradeNo());
} }
......
...@@ -244,12 +244,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -244,12 +244,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
deliveryHandle.cancelDelivery(orderBean, request); deliveryHandle.cancelDelivery(orderBean, request);
//支付退款 //支付退款
PayRefundResponse refundResponse = this.getPayRefundResponse(request, orderBean); PayRefundResponse refundResponse = this.getPayRefundResponse(request, orderBean);
// 爱马哥报错 // 退款异常
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.COMPATIBILITY_STATUS.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.COMPATIBILITY_STATUS.getCode()) == 0) {
return ResponseUtil.error(refundResponse.getResult()); return ResponseUtil.error(refundResponse.getResult());
} }
// fisherman --> 退款中的状态 阻止后续流程 等待支付回调 // fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.RUNNING.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.SUCCESS.getCode()) != 0) {
return ResponseUtil.error(ResponseResult.REFUND_FAIL_WAIT_CALLBACK); return ResponseUtil.error(ResponseResult.REFUND_FAIL_WAIT_CALLBACK);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment