Commit f803320a by 查志伟

Merge branch 'feature/三方外卖多次退款支持' into develop

parents cef488a4 a19bf298
...@@ -2,9 +2,12 @@ package cn.freemud.management.adapter; ...@@ -2,9 +2,12 @@ package cn.freemud.management.adapter;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.RefundStatusV1;
import com.freemud.application.sdk.api.takeaway.request.order.*; import com.freemud.application.sdk.api.takeaway.request.order.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Objects;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
* *
...@@ -104,7 +107,13 @@ public class WaimaiSdkAdapter { ...@@ -104,7 +107,13 @@ public class WaimaiSdkAdapter {
agreeOrderRequest.setShopId(orderBean.getShopId()); agreeOrderRequest.setShopId(orderBean.getShopId());
agreeOrderRequest.setOperator(request.getOperator()); agreeOrderRequest.setOperator(request.getOperator());
agreeOrderRequest.setReason(request.getReason()); agreeOrderRequest.setReason(request.getReason());
agreeOrderRequest.setAfterSalesCode(orderBean.getRefundList().get(0).getRid()); //售后单取最新的一笔
orderBean.getRefundList().stream()
.filter(r -> Objects.equals(r.getStatus(), RefundStatusV1.APPLY_REFUND.getCodeV1()))
.findFirst()
.ifPresent(r -> {
agreeOrderRequest.setAfterSalesCode(r.getRid());
});
agreeOrderRequest.setAgree(isAgree); agreeOrderRequest.setAgree(isAgree);
return agreeOrderRequest; return agreeOrderRequest;
} }
......
...@@ -174,6 +174,8 @@ public enum ResponseResult { ...@@ -174,6 +174,8 @@ public enum ResponseResult {
PARTNER_ORDER_CANCEL_ERROR("45089", "取消订单失败"), PARTNER_ORDER_CANCEL_ERROR("45089", "取消订单失败"),
ORDER_DELIVERY_EDIT_FAILED("45090", "修改配送状态失败"), ORDER_DELIVERY_EDIT_FAILED("45090", "修改配送状态失败"),
PARTNER_CAN_NOT_CANCEL_ORDER("45091","订单已部分退款,不能取消"),
/** /**
* 支付 * 支付
*/ */
......
...@@ -254,6 +254,10 @@ public class OrderManagerAdapter { ...@@ -254,6 +254,10 @@ public class OrderManagerAdapter {
if (null == orderBean) { if (null == orderBean) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
BaseResponse verifyResponse = orderVerifyHandle.cancelOrder(orderBean);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request, orderBean, verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancel(request, orderBean); BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancel(request, orderBean);
return handleResponse(request, orderBean, orderManagerResponse); return handleResponse(request, orderBean, orderManagerResponse);
} }
......
...@@ -629,7 +629,7 @@ public class OrderVerifyHandle { ...@@ -629,7 +629,7 @@ public class OrderVerifyHandle {
*/ */
private boolean checkSaasWm(OrderBeanV1 orderBean) { private boolean checkSaasWm(OrderBeanV1 orderBean) {
return 1 == orderBean.getOrderType() return 1 == orderBean.getOrderType()
&& OrderSourceV1.SAAS.getCode().equals(orderBean.getSource()) && (Objects.equals(OrderClientType.SAAS.getIndex().toString(),orderBean.getOrderClient()) || Objects.equals(OrderClientType.ALIPAY.getIndex().toString(),orderBean.getOrderClient()))
&& THIRD.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType()); && THIRD.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType());
} }
private boolean verifyThirdFlow(OrderBeanV1 orderBean,OrderManagerRequest request) { private boolean verifyThirdFlow(OrderBeanV1 orderBean,OrderManagerRequest request) {
...@@ -663,4 +663,20 @@ public class OrderVerifyHandle { ...@@ -663,4 +663,20 @@ public class OrderVerifyHandle {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 取消订单前校验是否部分退
*/
public BaseResponse cancelOrder(OrderBeanV1 orderBean){
//已取消的订单不能操作
if (ObjectUtils.equals(OrderStatusV1.CANCEL.getV2Code(), orderBean.getStatusV2())) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
}
//判断订单是否有申请退款且为部分退款
if (orderBean.getAfterSalesOrderResp() != null && orderBean.getAfterSalesOrderResp().getIsPartRefund()) {
return ResponseUtil.error(ResponseResult.PARTNER_CAN_NOT_CANCEL_ORDER);
}
return ResponseUtil.success();
}
} }
\ No newline at end of file
...@@ -143,4 +143,9 @@ public class AfterSalesOrderResp { ...@@ -143,4 +143,9 @@ public class AfterSalesOrderResp {
*/ */
private String storeId; private String storeId;
/**
* 是否部分退
*/
private Boolean isPartRefund;
} }
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