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
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.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.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
......
......@@ -15,10 +15,7 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -70,6 +67,10 @@ public class OrderManagerController {
return orderManagerAdapter.orderSwitchSelfDelivery(request);
case ORDER_RECREATE_DELIVERY:
return orderManagerAdapter.orderRecreateDelivery(request);
case ORDER_CREATE_DELIVERY:
return orderManagerAdapter.orderCreateDelivery(request);
case ORDER_CANCEL_DELIVERY:
return orderManagerAdapter.orderCancelDelivery(request);
default:
return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE);
}
......
......@@ -13,8 +13,10 @@ public enum OperateType {
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"),
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 {
}
/**
* 创建配送单
* 【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;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Component
public class OrderManagerAdapter {
......@@ -41,11 +43,11 @@ public class OrderManagerAdapter {
*/
public BaseResponse<OrderManagerResponse> orderConfirmTake(OrderManagerRequest request) {
//查询订单
OrderBeanV1 orderBean = orderBaseService.getByOrderCode(request.getOrderId());
// 防止NPE
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
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)) {
......@@ -313,4 +315,54 @@ public class OrderManagerAdapter {
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderRecreateDelivery(request, orderBean);
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 {
// 订单接单
BaseResponse baseResponse = saasOrderHandle.orderConfirm(request, orderBean);
// 使用feign调用 获取门店信息
GetStoreMixRequest getStoreMixRequest = GetStoreMixRequest.builder().partnerId(orderBean.getCompanyId()).storeCode(orderBean.getShopId()).build();
QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build();
getStoreMixRequest.setQuery(query);
ConsoleResponseDTO<BizDTO> storeMix = consoleApiClient.getStoreMix(getStoreMixRequest);
ConsoleResponseDTO<BizDTO> storeMix = this.getStoreMix(query, orderBean.getCompanyId(), orderBean.getShopId());
// 创建配送单
deliveryHandle.createDelivery(orderBean, request, storeMix, true);
// 推送pos、微信消息中心 重复接单不重复推消息(针对蜜雪做的修改)
......@@ -397,4 +395,33 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private void commonSendEmailAlert(OrderBeanV1 order, OrderBaseResp baseResponse,String desc){
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