Commit 622d5753 by ping.wu

退款失败记录到订单售后单

parent c98138b8
......@@ -78,4 +78,14 @@ public class OrderManagerRequest {
* 内部使用字段, 订单流转时间设置
*/
private Integer timeout;
/**
* 售后渠道 1:POS插件 2:小助手 3:开放平台 4:自动任务 5:用户端 6:系统 7:万象 8:太一
*/
private Integer afterSalesApplyClient;
/**
* 品牌审核售后单 不传默认无需品牌审核
*/
private Boolean brandVerifyAfterSales;
}
......@@ -34,4 +34,9 @@ public class PayRefundResponse {
* 兼容爱马哥退款报错的字段 ,其他场景不会有值
*/
private ResponseResult result;
/**
* 退款失败记录原因
*/
private String message;
}
......@@ -311,33 +311,35 @@ public class PaymentHandle {
* @return
*/
public PayRefundResponse mcCafeRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
PayRefundStatus refundStatus = PayRefundStatus.SUCCESS;
// PayRefundStatus refundStatus = PayRefundStatus.SUCCESS;
PayRefundRequestDto orderRefundRequest = paymentSdkAdapter.getOrderRefundRequest(orderBean, new BigDecimal(orderBean.getAmount()));
if (ObjectUtils.equals(orderBean.getAmount(), 0L)) {
return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
}
if (macCafePartnerId.equals(orderBean.getCompanyId())) {
Map<String, String> extendParams = new HashMap<>();
if (OrderTypeV1.TAKE_OUT.getCode().equals(orderBean.getOrderType())) {
extendParams.put("mealType", "delivery");
} else {
extendParams.put("mealType", "pickup");
}
orderRefundRequest.setExtendParams(extendParams);
}
BaseResponse<OrderRefundResponse> orderRefundResponse;
try {
// orderRefundResponse = standardPaymentService.orderRefund(orderRefundRequest, "");
orderRefundResponse = this.orderPayRefund(orderRefundRequest);
} catch (Exception ex) {
ErrorLog.errorConvertJson(this.getClass(), "refundError", ex);
return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
}
if (orderRefundResponse == null || ObjectUtils.notEqual(orderRefundResponse.getCode(), SUCCESS)) {
return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
}
refundStatus = ObjectUtils.equals(PayRefundStatus.SUCCESS.getCode(), orderRefundResponse.getData().getRefundStatus()) ? PayRefundStatus.SUCCESS : PayRefundStatus.FAIL;
return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
// if (ObjectUtils.equals(orderBean.getAmount(), 0L)) {
// return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
// }
// if (macCafePartnerId.equals(orderBean.getCompanyId())) {
// Map<String, String> extendParams = new HashMap<>();
// if (OrderTypeV1.TAKE_OUT.getCode().equals(orderBean.getOrderType())) {
// extendParams.put("mealType", "delivery");
// } else {
// extendParams.put("mealType", "pickup");
// }
// orderRefundRequest.setExtendParams(extendParams);
// }
// BaseResponse<OrderRefundResponse> orderRefundResponse = null;
// try {
//// orderRefundResponse = standardPaymentService.orderRefund(orderRefundRequest, "");
//// orderRefundResponse = this.orderPayRefund(orderRefundRequest);
// } catch (Exception ex) {
// ErrorLog.errorConvertJson(this.getClass(), "refundError", ex);
// return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
// }
// if (orderRefundResponse == null || ObjectUtils.notEqual(orderRefundResponse.getCode(), SUCCESS)) {
// return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
// }
// refundStatus = ObjectUtils.equals(PayRefundStatus.SUCCESS.getCode(), orderRefundResponse.getData().getRefundStatus()) ? PayRefundStatus.SUCCESS : PayRefundStatus.FAIL;
// return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
}
/**
......@@ -355,13 +357,6 @@ public class PaymentHandle {
return refundAmount;
}
private PayRefundResponse handlePayRefundResponse(PayRefundStatus refundStatus, Long refundId) {
PayRefundResponse payRefundResponse = new PayRefundResponse();
payRefundResponse.setPayRefundStatus(refundStatus);
payRefundResponse.setRefundId(refundId.toString());
return payRefundResponse;
}
private PayRefundResponse handlePayRefundResponse(PayRefundStatus refundStatus, String refundId) {
PayRefundResponse payRefundResponse = new PayRefundResponse();
payRefundResponse.setPayRefundStatus(refundStatus);
......
......@@ -26,10 +26,7 @@ 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.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.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.*;
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;
......@@ -271,7 +268,19 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
* @return
*/
private PayRefundResponse getPayRefundResponse(OrderManagerRequest request, OrderBeanV1 orderBean) {
return paymentHandle.getCommonPayRefundResponse(request, orderBean);
PayRefundResponse refundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
//退款失败记录到订单售后单
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.SUCCESS.getCode()) != 0) {
AfterSalesRefundFailReq refundFailReq = new AfterSalesRefundFailReq();
refundFailReq.setOrderCode(orderBean.getOid());
refundFailReq.setPartnerId(orderBean.getCompanyId());
refundFailReq.setRefundFailReason("退款失败");
refundFailReq.setAfterSalesCode(orderBean.getAfterSalesOrderResp().getAfterSalesCode());
refundFailReq.setOperationClient(request.getAfterSalesApplyClient());
refundFailReq.setOperator(request.getOperator());
orderSdkService.refundFail(refundFailReq,LogThreadLocal.getTrackingNo());
}
return refundResponse;
}
/**
......
......@@ -74,6 +74,7 @@ public class OrderCenterSdkAdapter {
}
if (orderInfoReqs.getAfterSalesOrderList() != null && orderInfoReqs.getAfterSalesOrderList().size() >= 1) {
orderInfoReqs.getAfterSalesOrderList().sort(Comparator.comparing(AfterSalesOrderResp :: getCreateTime));
data.setAfterSalesOrderResp(orderInfoReqs.getAfterSalesOrderList().get(0));
}
......
......@@ -291,4 +291,10 @@ public class InterfaceAddressConstant {
*/
public static final String QUERY_EVALUATION = "evaluation/getEvaluationsByOrderId";
/**
* 支付退款失败,更新售后单退款失败
*/
public static final String AFTERSALES_REFUND_FAIL= "/afterSales/v2/refundFail";
}
package com.freemud.application.sdk.api.ordercenter.request;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: AfterSalesRefundFailReq
* @Package com.freemud.application.sdk.api.ordercenter.request
* @Description:
* @author: ping.wu
* @date: 22-6-22 下午6:19
* @Copyright: 2022 www.freemud.cn Inc. All rights reserved.
*/
@Data
public class AfterSalesRefundFailReq {
private String partnerId;
private String orderCode;
/**
* 售后单编号
*/
private String afterSalesCode;
/**
* 退款失败原因
*/
private String refundFailReason;
/**
* 操作来源客户端
*/
private Integer operationClient;
/**
* 操作人
*/
private String operator;
}
......@@ -1029,4 +1029,14 @@ public class OrderSdkService {
});
return responseHandle(responseDTO);
}
/**
* 退款失败记录到订单售后单
*/
public OrderBaseResp refundFail(AfterSalesRefundFailReq request, String trackingNo) {
OrderBaseResp responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, AFTERSALES_REFUND_FAIL,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {
});
return responseHandle(responseDTO);
}
}
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