Commit 2a6f13c0 by huvchao@126.com

校验创建配送单参数

parent 0f05daa6
...@@ -2,6 +2,7 @@ package cn.freemud.management.service; ...@@ -2,6 +2,7 @@ package cn.freemud.management.service;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.util.CheckException;
import cn.freemud.management.util.CommonResp; import cn.freemud.management.util.CommonResp;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto; import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto; import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
...@@ -11,6 +12,9 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse; ...@@ -11,6 +12,9 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType; import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.google.common.base.Throwables;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -20,6 +24,7 @@ import java.util.ArrayList; ...@@ -20,6 +24,7 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
public class OrderDeliveryService { public class OrderDeliveryService {
...@@ -36,31 +41,42 @@ public class OrderDeliveryService { ...@@ -36,31 +41,42 @@ public class OrderDeliveryService {
private int SUCCESS = 100; private int SUCCESS = 100;
private String delivery_type_self = "self"; private String delivery_type_self = "self";
/**
* 外卖单创建配送信息
*
* @param orderCode
* @return
*/
public BaseResponse createDelivery(String orderCode) { public BaseResponse createDelivery(String orderCode) {
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(orderCode); QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(orderCode);
return CommonResp.success(this.createDelivery(orderBean)); if (null == orderBean) {
return CommonResp.fail("订单不存在");
} }
Pair<Boolean, String> pair = checkOrderOfDelivery(orderBean);
public Boolean createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) { if (!pair.getKey()) {
//判断外卖单 log.info("无需创建配送单({}),{}", orderBean.getOid(), pair.getValue());
if (1 != orderBean.getType()) { return CommonResp.success(pair.getValue());
return true;
} }
if (!orderBean.getSource().equalsIgnoreCase(OrderSourceType.SAAS.getCode())) { try {
return true; this.createDelivery(orderBean);
} catch (CheckException e) {
log.error("创建配送单失败({}),trace:{}", orderCode, Throwables.getStackTraceAsString(e));
return CommonResp.fail(e.getMessage());
} }
//配送信息为空,则不创建配送单 return CommonResp.success();
if (orderBean.getAddInfo() == null || orderBean.getAddInfo().getDeliveryType() == null) {
return true;
}
//自配送不创建配送单
if (delivery_type_self.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType())) {
return true;
} }
/**
* 创建配送信息
*
* @param orderBean
* @return
*/
public Boolean createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
StoreInfoRequest storeInfoRequestDto = new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()); StoreInfoRequest storeInfoRequestDto = new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId());
StoreResponse storeInfo = storeCenterService.getStoreInfo(storeInfoRequestDto, LogTreadLocal.getTrackingNo()); StoreResponse storeInfo = storeCenterService.getStoreInfo(storeInfoRequestDto, LogTreadLocal.getTrackingNo());
if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) { if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) {
return false; throw new CheckException("查询门店信息失败");
} }
// 调用配送系统创建配送单 // 调用配送系统创建配送单
...@@ -71,7 +87,7 @@ public class OrderDeliveryService { ...@@ -71,7 +87,7 @@ public class OrderDeliveryService {
if (deliveryResponse == null || SUCCESS != deliveryResponse.getCode() || deliveryResponse.getData() == null) { if (deliveryResponse == null || SUCCESS != deliveryResponse.getCode() || deliveryResponse.getData() == null) {
String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : ""; String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : "";
orderBaseService.updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, "sys"); orderBaseService.updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, "sys");
return false; throw new CheckException("创建配送单信息失败");
} }
// 创建配送单成功 // 创建配送单成功
orderBaseService.updateDeliverySuccess(orderBean.getOid(), deliveryResponse.getData().getDeliveryId(), "sys"); orderBaseService.updateDeliverySuccess(orderBean.getOid(), deliveryResponse.getData().getDeliveryId(), "sys");
...@@ -79,6 +95,31 @@ public class OrderDeliveryService { ...@@ -79,6 +95,31 @@ public class OrderDeliveryService {
} }
/** /**
* 校验订单是否符合创建配送单要求
*
* @param orderBean
* @return
*/
public Pair<Boolean, String> checkOrderOfDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
//判断外卖单
if (1 != orderBean.getType()) {
return new Pair<>(false, "该订单不是外卖类型订单");
}
if (!orderBean.getSource().equalsIgnoreCase(OrderSourceType.SAAS.getCode())) {
return new Pair<>(false, "订单来源异常");
}
//配送信息为空,则不创建配送单
if (orderBean.getAddInfo() == null || orderBean.getAddInfo().getDeliveryType() == null) {
return new Pair<>(false, "未找到订单配送信息");
}
//自配送不创建配送单
if (delivery_type_self.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType())) {
return new Pair<>(false, "该订单为自配送");
}
return new Pair<>(true, "success");
}
/**
* 创建配送单请求对象 * 创建配送单请求对象
* *
* @param order * @param order
......
package cn.freemud.management.util;
import lombok.Getter;
@Getter
public class CheckException extends RuntimeException {
protected ResponseCodeEnum responseCodeEnum;
public CheckException(ResponseCodeEnum responseCodeEnum) {
super(responseCodeEnum.msg);
this.responseCodeEnum = responseCodeEnum;
}
public CheckException(String message) {
super(message);
}
}
\ No newline at end of file
...@@ -49,6 +49,10 @@ public class CommonResp<T> extends BaseResponse<T> { ...@@ -49,6 +49,10 @@ public class CommonResp<T> extends BaseResponse<T> {
return new CommonResp(ResponseCodeEnum.FAILURE); return new CommonResp(ResponseCodeEnum.FAILURE);
} }
public static CommonResp fail(String message) {
return new CommonResp(ResponseCodeEnum.FAILURE.code, message);
}
public static CommonResp fail(Object data) { public static CommonResp fail(Object data) {
return new CommonResp(ResponseCodeEnum.FAILURE, data); return new CommonResp(ResponseCodeEnum.FAILURE, data);
} }
......
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