Commit 2a6f13c0 by huvchao@126.com

校验创建配送单参数

parent 0f05daa6
......@@ -2,6 +2,7 @@ package cn.freemud.management.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.util.CheckException;
import cn.freemud.management.util.CommonResp;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
......@@ -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.sdk.api.assortment.order.enums.OrderSourceType;
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.Value;
import org.springframework.stereotype.Service;
......@@ -20,6 +24,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Slf4j
@Service
public class OrderDeliveryService {
......@@ -36,31 +41,42 @@ public class OrderDeliveryService {
private int SUCCESS = 100;
private String delivery_type_self = "self";
/**
* 外卖单创建配送信息
*
* @param orderCode
* @return
*/
public BaseResponse createDelivery(String orderCode) {
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(orderCode);
return CommonResp.success(this.createDelivery(orderBean));
}
public Boolean createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
//判断外卖单
if (1 != orderBean.getType()) {
return true;
}
if (!orderBean.getSource().equalsIgnoreCase(OrderSourceType.SAAS.getCode())) {
return true;
if (null == orderBean) {
return CommonResp.fail("订单不存在");
}
//配送信息为空,则不创建配送单
if (orderBean.getAddInfo() == null || orderBean.getAddInfo().getDeliveryType() == null) {
return true;
Pair<Boolean, String> pair = checkOrderOfDelivery(orderBean);
if (!pair.getKey()) {
log.info("无需创建配送单({}),{}", orderBean.getOid(), pair.getValue());
return CommonResp.success(pair.getValue());
}
//自配送不创建配送单
if (delivery_type_self.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType())) {
return true;
try {
this.createDelivery(orderBean);
} catch (CheckException e) {
log.error("创建配送单失败({}),trace:{}", orderCode, Throwables.getStackTraceAsString(e));
return CommonResp.fail(e.getMessage());
}
return CommonResp.success();
}
/**
* 创建配送信息
*
* @param orderBean
* @return
*/
public Boolean createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
StoreInfoRequest storeInfoRequestDto = new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId());
StoreResponse storeInfo = storeCenterService.getStoreInfo(storeInfoRequestDto, LogTreadLocal.getTrackingNo());
if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) {
return false;
throw new CheckException("查询门店信息失败");
}
// 调用配送系统创建配送单
......@@ -71,7 +87,7 @@ public class OrderDeliveryService {
if (deliveryResponse == null || SUCCESS != deliveryResponse.getCode() || deliveryResponse.getData() == null) {
String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : "";
orderBaseService.updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, "sys");
return false;
throw new CheckException("创建配送单信息失败");
}
// 创建配送单成功
orderBaseService.updateDeliverySuccess(orderBean.getOid(), deliveryResponse.getData().getDeliveryId(), "sys");
......@@ -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
......
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> {
return new CommonResp(ResponseCodeEnum.FAILURE);
}
public static CommonResp fail(String message) {
return new CommonResp(ResponseCodeEnum.FAILURE.code, message);
}
public static CommonResp fail(Object 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