Commit 622d5753 by ping.wu

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

parent c98138b8
...@@ -78,4 +78,14 @@ public class OrderManagerRequest { ...@@ -78,4 +78,14 @@ public class OrderManagerRequest {
* 内部使用字段, 订单流转时间设置 * 内部使用字段, 订单流转时间设置
*/ */
private Integer timeout; 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 { ...@@ -34,4 +34,9 @@ public class PayRefundResponse {
* 兼容爱马哥退款报错的字段 ,其他场景不会有值 * 兼容爱马哥退款报错的字段 ,其他场景不会有值
*/ */
private ResponseResult result; private ResponseResult result;
/**
* 退款失败记录原因
*/
private String message;
} }
...@@ -311,34 +311,36 @@ public class PaymentHandle { ...@@ -311,34 +311,36 @@ public class PaymentHandle {
* @return * @return
*/ */
public PayRefundResponse mcCafeRefund(OrderManagerRequest request, OrderBeanV1 orderBean) { public PayRefundResponse mcCafeRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
PayRefundStatus refundStatus = PayRefundStatus.SUCCESS; // PayRefundStatus refundStatus = PayRefundStatus.SUCCESS;
PayRefundRequestDto orderRefundRequest = paymentSdkAdapter.getOrderRefundRequest(orderBean, new BigDecimal(orderBean.getAmount())); PayRefundRequestDto orderRefundRequest = paymentSdkAdapter.getOrderRefundRequest(orderBean, new BigDecimal(orderBean.getAmount()));
if (ObjectUtils.equals(orderBean.getAmount(), 0L)) { // if (ObjectUtils.equals(orderBean.getAmount(), 0L)) {
return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId()); // return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
} // }
if (macCafePartnerId.equals(orderBean.getCompanyId())) { // if (macCafePartnerId.equals(orderBean.getCompanyId())) {
Map<String, String> extendParams = new HashMap<>(); // Map<String, String> extendParams = new HashMap<>();
if (OrderTypeV1.TAKE_OUT.getCode().equals(orderBean.getOrderType())) { // if (OrderTypeV1.TAKE_OUT.getCode().equals(orderBean.getOrderType())) {
extendParams.put("mealType", "delivery"); // extendParams.put("mealType", "delivery");
} else { // } else {
extendParams.put("mealType", "pickup"); // extendParams.put("mealType", "pickup");
} // }
orderRefundRequest.setExtendParams(extendParams); // orderRefundRequest.setExtendParams(extendParams);
} // }
BaseResponse<OrderRefundResponse> orderRefundResponse; // BaseResponse<OrderRefundResponse> orderRefundResponse = null;
try { // try {
// orderRefundResponse = standardPaymentService.orderRefund(orderRefundRequest, ""); //// orderRefundResponse = standardPaymentService.orderRefund(orderRefundRequest, "");
orderRefundResponse = this.orderPayRefund(orderRefundRequest); //// orderRefundResponse = this.orderPayRefund(orderRefundRequest);
} catch (Exception ex) { // } catch (Exception ex) {
ErrorLog.errorConvertJson(this.getClass(), "refundError", ex); // ErrorLog.errorConvertJson(this.getClass(), "refundError", ex);
return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId()); // return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
} // }
if (orderRefundResponse == null || ObjectUtils.notEqual(orderRefundResponse.getCode(), SUCCESS)) { // 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()); return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
} }
refundStatus = ObjectUtils.equals(PayRefundStatus.SUCCESS.getCode(), orderRefundResponse.getData().getRefundStatus()) ? PayRefundStatus.SUCCESS : PayRefundStatus.FAIL;
return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
}
/** /**
* 获取退款金额 * 获取退款金额
...@@ -355,13 +357,6 @@ public class PaymentHandle { ...@@ -355,13 +357,6 @@ public class PaymentHandle {
return refundAmount; 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) { private PayRefundResponse handlePayRefundResponse(PayRefundStatus refundStatus, String refundId) {
PayRefundResponse payRefundResponse = new PayRefundResponse(); PayRefundResponse payRefundResponse = new PayRefundResponse();
payRefundResponse.setPayRefundStatus(refundStatus); payRefundResponse.setPayRefundStatus(refundStatus);
......
...@@ -26,10 +26,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequ ...@@ -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.*;
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.OrderCancelReq; import com.freemud.application.sdk.api.ordercenter.request.*;
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.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;
...@@ -271,7 +268,19 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -271,7 +268,19 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
* @return * @return
*/ */
private PayRefundResponse getPayRefundResponse(OrderManagerRequest request, OrderBeanV1 orderBean) { 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 { ...@@ -74,6 +74,7 @@ public class OrderCenterSdkAdapter {
} }
if (orderInfoReqs.getAfterSalesOrderList() != null && orderInfoReqs.getAfterSalesOrderList().size() >= 1) { if (orderInfoReqs.getAfterSalesOrderList() != null && orderInfoReqs.getAfterSalesOrderList().size() >= 1) {
orderInfoReqs.getAfterSalesOrderList().sort(Comparator.comparing(AfterSalesOrderResp :: getCreateTime));
data.setAfterSalesOrderResp(orderInfoReqs.getAfterSalesOrderList().get(0)); data.setAfterSalesOrderResp(orderInfoReqs.getAfterSalesOrderList().get(0));
} }
......
...@@ -291,4 +291,10 @@ public class InterfaceAddressConstant { ...@@ -291,4 +291,10 @@ public class InterfaceAddressConstant {
*/ */
public static final String QUERY_EVALUATION = "evaluation/getEvaluationsByOrderId"; 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 { ...@@ -1029,4 +1029,14 @@ public class OrderSdkService {
}); });
return responseHandle(responseDTO); 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