Commit cb3e438e by ping.wu

Merge remote-tracking branch 'origin/feature/20220622_退款失败记录到订单_wuping' into…

Merge remote-tracking branch 'origin/feature/20220622_退款失败记录到订单_wuping' into feature/20220622_退款失败记录到订单_wuping
parents ec4e16e5 c87fe93b
package cn.freemud.management.enums;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/6/22 14:25
* @description : 操作来源客户端 && 售后申请客户端
*/
public enum AfterSalesApplyClientEnum {
STATE_0(0, "未知"),
STATE_1(1, "POS插件"),
STATE_2(2, "小助手"),
STATE_3(3, "开放平台"),
STATE_4(4, "自动任务"),
STATE_5(5, "用户端"),
STATE_6(6, "系统"),
STATE_7(7, "万象"),
STATE_8(8, "太一"),
;
private Integer index;
private String desc;
public Integer getIndex() {
return this.index;
}
public void setIndex(Integer index) {
this.index = index;
}
public String getDesc() {
return this.desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
private AfterSalesApplyClientEnum(Integer index, String desc) {
this.index = index;
this.desc = desc;
}
}
...@@ -8,9 +8,8 @@ import cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo; ...@@ -8,9 +8,8 @@ import cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse; import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.OperateType; import cn.freemud.management.enums.OperateType;
import cn.freemud.management.handler.AssisantApplicationHandler;
import cn.freemud.management.enums.*; import cn.freemud.management.enums.*;
import cn.freemud.management.intercept.OrderServiceException; import cn.freemud.management.handler.AssisantApplicationHandler;
import cn.freemud.management.service.OrderBaseService; import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*; import cn.freemud.management.service.handle.*;
...@@ -26,7 +25,10 @@ import com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequ ...@@ -26,7 +25,10 @@ import com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequ
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderSourceV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderSourceV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.AfterSalesRefundFailReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExpressReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
...@@ -207,14 +209,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -207,14 +209,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Override @Override
public BaseResponse<OrderManagerResponse> orderReject(OrderManagerRequest request, OrderBeanV1 orderBean) { public BaseResponse<OrderManagerResponse> orderReject(OrderManagerRequest request, OrderBeanV1 orderBean) {
//支付退款 //支付退款
PayRefundResponse refundResponse = this.payRefundCommon(request,orderBean); PayRefundResponse refundResponse = this.payRefundCommon(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());
} }
//退款失败终止下面的退款流程 //退款失败终止下面的退款流程
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.FAIL.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.FAIL.getCode()) == 0) {
return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(),refundResponse.getMessage()); return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(), refundResponse.getMessage());
} }
//订单拒单 //订单拒单
saasOrderHandle.orderReject(request, refundResponse, orderBean); saasOrderHandle.orderReject(request, refundResponse, orderBean);
...@@ -246,7 +248,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -246,7 +248,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
} }
//退款失败终止下面的退款流程 //退款失败终止下面的退款流程
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.FAIL.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.FAIL.getCode()) == 0) {
return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(),refundResponse.getMessage()); return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(), refundResponse.getMessage());
} }
//订单同意退款 //订单同意退款
...@@ -257,7 +259,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -257,7 +259,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//冲正库存 //冲正库存
stockHandle.revert(request, orderBean); stockHandle.revert(request, orderBean);
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.RUNNING.getCode()) == 0) { if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.RUNNING.getCode()) == 0) {
return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(),refundResponse.getMessage()); return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(), refundResponse.getMessage());
} }
return ResponseUtil.success(); return ResponseUtil.success();
} }
...@@ -272,19 +274,27 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -272,19 +274,27 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private PayRefundResponse payRefundCommon(OrderManagerRequest request, OrderBeanV1 orderBean) { private PayRefundResponse payRefundCommon(OrderManagerRequest request, OrderBeanV1 orderBean) {
PayRefundResponse refundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean); PayRefundResponse refundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
//同意退款退款失败记录到订单售后单 //同意退款退款失败记录到订单售后单
if (orderBean.getAfterSalesOrderResp() != null && Objects.equals(PayRefundStatus.FAIL.getCode(),refundResponse.getPayRefundStatus().getCode())) { if (orderBean.getAfterSalesOrderResp() != null && Objects.equals(PayRefundStatus.FAIL.getCode(), refundResponse.getPayRefundStatus().getCode())) {
AfterSalesRefundFailReq refundFailReq = new AfterSalesRefundFailReq(); AfterSalesRefundFailReq refundFailReq = this.getAfterSalesRefundFailReq(orderBean,
refundFailReq.setOrderCode(orderBean.getOid()); request.getOperator(),
refundFailReq.setPartnerId(orderBean.getCompanyId()); request.getOperationClient(),
refundFailReq.setRefundFailReason(refundResponse.getMessage()); refundResponse.getMessage());
refundFailReq.setAfterSalesCode(orderBean.getAfterSalesOrderResp().getAfterSalesCode()); orderSdkService.refundFail(refundFailReq, LogThreadLocal.getTrackingNo());
refundFailReq.setOperationClient(request.getOperationClient());
refundFailReq.setOperator(request.getOperator());
orderSdkService.refundFail(refundFailReq,LogThreadLocal.getTrackingNo());
} }
return refundResponse; return refundResponse;
} }
private AfterSalesRefundFailReq getAfterSalesRefundFailReq(OrderBeanV1 orderBean, String operator, Integer operationClient, String refundFailReason) {
AfterSalesRefundFailReq refundFailReq = new AfterSalesRefundFailReq();
refundFailReq.setOrderCode(orderBean.getOid());
refundFailReq.setPartnerId(orderBean.getCompanyId());
refundFailReq.setRefundFailReason(refundFailReason);
refundFailReq.setAfterSalesCode(orderBean.getAfterSalesOrderResp().getAfterSalesCode());
refundFailReq.setOperationClient(operationClient);
refundFailReq.setOperator(operator);
return refundFailReq;
}
/** /**
* 拒绝退款 * 拒绝退款
* *
...@@ -324,7 +334,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -324,7 +334,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
} else if (OrderSourceV1.POS.getCode().equals(orderBean.getSource())) { } else if (OrderSourceV1.POS.getCode().equals(orderBean.getSource())) {
return posCancel(orderBean); return posCancel(orderBean);
} }
return ResponseUtil.error("501","暂不支持"); return ResponseUtil.error("501", "暂不支持");
} }
/** /**
...@@ -459,6 +469,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -459,6 +469,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
PayRefundStatus payRefundStatus = PayRefundStatus.SUCCESS; PayRefundStatus payRefundStatus = PayRefundStatus.SUCCESS;
if (!Objects.equals(refundStatus, "100")) { if (!Objects.equals(refundStatus, "100")) {
payRefundStatus = PayRefundStatus.FAIL; payRefundStatus = PayRefundStatus.FAIL;
// 告知基础服务 退款失败
AfterSalesRefundFailReq refundFailReq = this.getAfterSalesRefundFailReq(orderBean,
"refundSuccessCallback",
AfterSalesApplyClientEnum.STATE_6.getIndex(),
refundResponse.getMessage());
orderSdkService.refundFail(refundFailReq, LogThreadLocal.getTrackingNo());
} }
refundResponse.setPayRefundStatus(payRefundStatus); refundResponse.setPayRefundStatus(payRefundStatus);
refundResponse.setRefundId(request.getRefundId()); refundResponse.setRefundId(request.getRefundId());
......
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