Commit f37dabaa by 周晓航

Merge branch 'KA-支持门店手动创建运单,通知骑手到店取餐20210915-zxh' into qa

# Conflicts:
#	order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
#	order-management/src/main/java/cn/freemud/management/enums/OperateType.java
#	order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
parents ebff2d0a b406c58a
...@@ -52,9 +52,6 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq ...@@ -52,9 +52,6 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
......
...@@ -15,10 +15,7 @@ import org.apache.commons.lang.StringUtils; ...@@ -15,10 +15,7 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
...@@ -70,6 +67,10 @@ public class OrderManagerController { ...@@ -70,6 +67,10 @@ public class OrderManagerController {
return orderManagerAdapter.orderSwitchSelfDelivery(request); return orderManagerAdapter.orderSwitchSelfDelivery(request);
case ORDER_RECREATE_DELIVERY: case ORDER_RECREATE_DELIVERY:
return orderManagerAdapter.orderRecreateDelivery(request); return orderManagerAdapter.orderRecreateDelivery(request);
case ORDER_CREATE_DELIVERY:
return orderManagerAdapter.orderCreateDelivery(request);
case ORDER_CANCEL_DELIVERY:
return orderManagerAdapter.orderCancelDelivery(request);
default: default:
return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE); return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE);
} }
......
...@@ -13,8 +13,10 @@ public enum OperateType { ...@@ -13,8 +13,10 @@ public enum OperateType {
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"), ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"), ORDER_CANCEL("orderCancel","订单取消"),
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送"), ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送"),
ORDER_RECREATE_DELIVERY("orderRecreateDelivery","重新呼叫骑手"); ORDER_RECREATE_DELIVERY("orderRecreateDelivery","重新呼叫骑手"),
ORDER_CREATE_DELIVERY("orderCreateDelivery","创建配送"),
ORDER_CANCEL_DELIVERY("orderCancelDelivery","取消配送");
/** /**
* 操作类型 * 操作类型
......
...@@ -108,4 +108,25 @@ public interface OrderManagerService { ...@@ -108,4 +108,25 @@ public interface OrderManagerService {
} }
/**
* 创建配送单
* 【ID1036616】【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
* @param request
* @param orderBean
* @return
*/
default BaseResponse<OrderManagerResponse> orderCreateDelivery(OrderManagerRequest request, OrderBeanV1 orderBean){
return ResponseUtil.success();
}
/**
* 取消配送
* 【ID1036616】【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
* @param request
* @param orderBean
* @return
*/
default BaseResponse<OrderManagerResponse> orderCancelDelivery(OrderManagerRequest request, OrderBeanV1 orderBean){
return ResponseUtil.success();
};
} }
...@@ -20,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,6 +20,8 @@ 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.Component; import org.springframework.stereotype.Component;
import java.util.Objects;
@Component @Component
public class OrderManagerAdapter { public class OrderManagerAdapter {
...@@ -41,11 +43,11 @@ public class OrderManagerAdapter { ...@@ -41,11 +43,11 @@ public class OrderManagerAdapter {
*/ */
public BaseResponse<OrderManagerResponse> orderConfirmTake(OrderManagerRequest request) { public BaseResponse<OrderManagerResponse> orderConfirmTake(OrderManagerRequest request) {
//查询订单 //查询订单
OrderBeanV1 orderBean = orderBaseService.getByOrderCode(request.getOrderId()); BaseResponse<OrderBeanV1> orderBeanResp = this.getOrderBean(request.getOrderId());
// 防止NPE if (!Objects.equals(orderBeanResp.getCode(), ResponseResult.SUCCESS.getCode())) {
if (orderBean == null) { return ResponseUtil.error(orderBeanResp.getMessage());
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
OrderBeanV1 orderBean = orderBeanResp.getResult();
//订单接单参数校验 //订单接单参数校验
String companyId = orderBean.getCompanyId(); String companyId = orderBean.getCompanyId();
if (!macCafePartnerId.equals(companyId)) { if (!macCafePartnerId.equals(companyId)) {
...@@ -313,4 +315,54 @@ public class OrderManagerAdapter { ...@@ -313,4 +315,54 @@ public class OrderManagerAdapter {
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderRecreateDelivery(request, orderBean); BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderRecreateDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse); return handleResponse(request,orderBean,orderManagerResponse);
} }
/**
* 创建配送单
* @param request
* @return
*/
public BaseResponse orderCreateDelivery(OrderManagerRequest request) {
//查询订单
BaseResponse<OrderBeanV1> orderBeanResp = this.getOrderBean(request.getOrderId());
if (!Objects.equals(orderBeanResp.getCode(), ResponseResult.SUCCESS.getCode())) {
return ResponseUtil.error(orderBeanResp.getMessage());
}
OrderBeanV1 orderBean = orderBeanResp.getResult();
//订单接单参数校验
String companyId = orderBean.getCompanyId();
if (!macCafePartnerId.equals(companyId)) {
BaseResponse verifyResponse = orderVerifyHandle.orderConfirmTakeVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return verifyResponse;
}
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCreateDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
private BaseResponse<OrderBeanV1> getOrderBean(String orderId){
//查询订单
OrderBeanV1 orderBean = orderBaseService.getByOrderCode(orderId);
// 防止NPE
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
return ResponseUtil.success(orderBean);
}
/**
* 取消配送
* @param request
* @return
*/
public BaseResponse orderCancelDelivery(OrderManagerRequest request) {
//查询订单
BaseResponse<OrderBeanV1> orderBeanResp = this.getOrderBean(request.getOrderId());
if (!Objects.equals(orderBeanResp.getCode(), ResponseResult.SUCCESS.getCode())) {
return ResponseUtil.error(orderBeanResp.getMessage());
}
OrderBeanV1 orderBean = orderBeanResp.getResult();
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancelDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
} }
...@@ -108,10 +108,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -108,10 +108,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
// 订单接单 // 订单接单
BaseResponse baseResponse = saasOrderHandle.orderConfirm(request, orderBean); BaseResponse baseResponse = saasOrderHandle.orderConfirm(request, orderBean);
// 使用feign调用 获取门店信息 // 使用feign调用 获取门店信息
GetStoreMixRequest getStoreMixRequest = GetStoreMixRequest.builder().partnerId(orderBean.getCompanyId()).storeCode(orderBean.getShopId()).build();
QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build(); QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build();
getStoreMixRequest.setQuery(query); ConsoleResponseDTO<BizDTO> storeMix = this.getStoreMix(query, orderBean.getCompanyId(), orderBean.getShopId());
ConsoleResponseDTO<BizDTO> storeMix = consoleApiClient.getStoreMix(getStoreMixRequest);
// 创建配送单 // 创建配送单
deliveryHandle.createDelivery(orderBean, request, storeMix, true); deliveryHandle.createDelivery(orderBean, request, storeMix, true);
// 推送pos、微信消息中心 重复接单不重复推消息(针对蜜雪做的修改) // 推送pos、微信消息中心 重复接单不重复推消息(针对蜜雪做的修改)
...@@ -397,4 +395,33 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -397,4 +395,33 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private void commonSendEmailAlert(OrderBeanV1 order, OrderBaseResp baseResponse,String desc){ private void commonSendEmailAlert(OrderBeanV1 order, OrderBaseResp baseResponse,String desc){
emailAlertService.sendEmailAlert(desc, "请求json:" + JSONObject.toJSONString(order) + "返回msg:" + baseResponse.getMessage()); emailAlertService.sendEmailAlert(desc, "请求json:" + JSONObject.toJSONString(order) + "返回msg:" + baseResponse.getMessage());
} }
@Override
public BaseResponse<OrderManagerResponse> orderCreateDelivery(OrderManagerRequest request, OrderBeanV1 orderBean) {
// 使用feign调用 获取门店信息
QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build();
ConsoleResponseDTO<BizDTO> storeMix = this.getStoreMix(query, orderBean.getCompanyId(), orderBean.getShopId());
// 创建配送单
deliveryHandle.createDelivery(orderBean, request, storeMix, false);
return null;
}
@Override
public BaseResponse<OrderManagerResponse> orderCancelDelivery(OrderManagerRequest request, OrderBeanV1 orderBean) {
return deliveryHandle.cancelDelivery(orderBean,request);
}
/**
*
* @param query
* @param partnerId
* @param storeId
* @return
*/
private ConsoleResponseDTO<BizDTO> getStoreMix(QueryFlag query, String partnerId, String storeId) {
GetStoreMixRequest getStoreMixRequest = GetStoreMixRequest.builder().partnerId(partnerId).storeCode(storeId).build();
getStoreMixRequest.setQuery(query);
ConsoleResponseDTO<BizDTO> storeMix = consoleApiClient.getStoreMix(getStoreMixRequest);
return storeMix;
}
} }
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