Commit d4a1a165 by 周晓航

Merge branch 'feature/20220622_退款失败记录到订单_wuping' into qa

parents 9812885b 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;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.handler.AssisantApplicationHandler;
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.OrderManagerService;
import cn.freemud.management.service.handle.*;
......@@ -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.orderv1.OrderSourceV1;
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.orderInfo.AfterSalesOrderResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
......@@ -207,14 +209,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Override
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) {
return ResponseUtil.error(refundResponse.getResult());
}
//退款失败终止下面的退款流程
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);
......@@ -246,7 +248,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
}
//退款失败终止下面的退款流程
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 {
//冲正库存
stockHandle.revert(request, orderBean);
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();
}
......@@ -272,17 +274,25 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private PayRefundResponse payRefundCommon(OrderManagerRequest request, OrderBeanV1 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 = this.getAfterSalesRefundFailReq(orderBean,
request.getOperator(),
request.getOperationClient(),
refundResponse.getMessage());
orderSdkService.refundFail(refundFailReq, LogThreadLocal.getTrackingNo());
}
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(refundResponse.getMessage());
refundFailReq.setRefundFailReason(refundFailReason);
refundFailReq.setAfterSalesCode(orderBean.getAfterSalesOrderResp().getAfterSalesCode());
refundFailReq.setOperationClient(request.getOperationClient());
refundFailReq.setOperator(request.getOperator());
orderSdkService.refundFail(refundFailReq,LogThreadLocal.getTrackingNo());
}
return refundResponse;
refundFailReq.setOperationClient(operationClient);
refundFailReq.setOperator(operator);
return refundFailReq;
}
/**
......@@ -324,7 +334,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
} else if (OrderSourceV1.POS.getCode().equals(orderBean.getSource())) {
return posCancel(orderBean);
}
return ResponseUtil.error("501","暂不支持");
return ResponseUtil.error("501", "暂不支持");
}
/**
......@@ -459,6 +469,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
PayRefundStatus payRefundStatus = PayRefundStatus.SUCCESS;
if (!Objects.equals(refundStatus, "100")) {
payRefundStatus = PayRefundStatus.FAIL;
// 告知基础服务 退款失败
AfterSalesRefundFailReq refundFailReq = this.getAfterSalesRefundFailReq(orderBean,
"refundSuccessCallback",
AfterSalesApplyClientEnum.STATE_6.getIndex(),
refundResponse.getMessage());
orderSdkService.refundFail(refundFailReq, LogThreadLocal.getTrackingNo());
}
refundResponse.setPayRefundStatus(payRefundStatus);
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