Commit f803320a by 查志伟

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

parents cef488a4 a19bf298
......@@ -2,9 +2,12 @@ package cn.freemud.management.adapter;
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.enums.orderv1.RefundStatusV1;
import com.freemud.application.sdk.api.takeaway.request.order.*;
import org.springframework.stereotype.Component;
import java.util.Objects;
/**
* All rights Reserved, Designed By www.freemud.cn
*
......@@ -104,7 +107,13 @@ public class WaimaiSdkAdapter {
agreeOrderRequest.setShopId(orderBean.getShopId());
agreeOrderRequest.setOperator(request.getOperator());
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);
return agreeOrderRequest;
}
......
......@@ -174,6 +174,8 @@ public enum ResponseResult {
PARTNER_ORDER_CANCEL_ERROR("45089", "取消订单失败"),
ORDER_DELIVERY_EDIT_FAILED("45090", "修改配送状态失败"),
PARTNER_CAN_NOT_CANCEL_ORDER("45091","订单已部分退款,不能取消"),
/**
* 支付
*/
......
......@@ -254,6 +254,10 @@ public class OrderManagerAdapter {
if (null == orderBean) {
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);
return handleResponse(request, orderBean, orderManagerResponse);
}
......
......@@ -629,7 +629,7 @@ public class OrderVerifyHandle {
*/
private boolean checkSaasWm(OrderBeanV1 orderBean) {
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());
}
private boolean verifyThirdFlow(OrderBeanV1 orderBean,OrderManagerRequest request) {
......@@ -663,4 +663,20 @@ public class OrderVerifyHandle {
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 {
*/
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