Commit cbd06356 by xiaoer.li@freemud.com

modify:saas外卖配送 运单异常 或是运单取消 这两个状态才会允许操作送出和完成

parent 94791290
......@@ -168,6 +168,7 @@ public enum ResponseResult {
ORDER_DELIVERY_CALL_BACK_FAILED("45083", "配送回调失败,为找到对应操作类型"),
ORDER_UPDATE_PICKUP_FAILED("45084", "更新取餐码失败"),
ORDER_STATUS_FAILED("45085", "订单状态错误"),
ORDER_MOVE_FAILED("45086", "三方配送正在进行,不允许操作"),
/**
* 支付
*/
......
......@@ -5,10 +5,7 @@ import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.RefundConfig;
import cn.freemud.management.enums.OrderRefundEnum;
import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.enums.*;
import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
......@@ -28,9 +25,11 @@ import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -68,7 +67,14 @@ public class OrderVerifyHandle {
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private OrderCenterSdkService orderCenterSdkService;
@Autowired
private DeliveryHandle deliveryHandle;
@Value("${delivery.support.ordersource}")
private String supportOrderSource;
private static final String THIRD = "third";
private static final String delivery_type_self = "self";
/**
* 接单校验
*
......@@ -116,6 +122,9 @@ public class OrderVerifyHandle {
if (!OrderStatus.RECEIPT.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_STATUS_NOTAKE, getOrderManagerResponse(orderBean));
}
if (this.checkSaasWm(orderBean) && this.verifyThirdFlow(orderBean)) {
return ResponseUtil.error(ResponseResult.ORDER_MOVE_FAILED);
}
return ResponseUtil.success();
}
......@@ -146,6 +155,9 @@ public class OrderVerifyHandle {
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 4)) {
return ResponseUtil.error(ResponseResult.DONE_FAIL_APPLY_REFUND, getOrderManagerResponse(orderBean));
}
if (this.checkSaasWm(orderBean) && this.verifyThirdFlow(orderBean)) {
return ResponseUtil.error(ResponseResult.ORDER_MOVE_FAILED);
}
return ResponseUtil.success();
}
......@@ -505,4 +517,28 @@ public class OrderVerifyHandle {
private boolean isPayBySVC(QueryOrdersResponse.DataBean.OrderBean order) {
return PAY_CODE_10102.equalsIgnoreCase(order.getPayChannel());
}
/**
* 需要三方配送的saas外卖
* @param orderBean
* @return
*/
private boolean checkSaasWm(QueryOrdersResponse.DataBean.OrderBean orderBean) {
//
if (1 == orderBean.getType()
&& OrderSource.SAAS.getSource().equals(orderBean.getSource())
&& THIRD.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType())) {
return true;
} else {
return false;
}
}
private boolean verifyThirdFlow(QueryOrdersResponse.DataBean.OrderBean orderBean) {
List<DeliveryStatus> allow = Arrays.asList(DeliveryStatus.DELIVERYERROR, DeliveryStatus.DELIVERYCANCEL);
if (allow.contains(orderBean.getDeliverStatus())) {
return true;
} else {
return false;
}
}
}
\ No newline at end of file
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