Commit b406c58a by 周晓航

新增 配送/ 取消配送接口

Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent 8d3e9d67
......@@ -63,6 +63,10 @@ public class OrderManagerController {
return orderManagerAdapter.orderRejectRefund(request);
case ORDER_CANCEL:
return orderManagerAdapter.orderCancel(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);
}
......
......@@ -11,7 +11,9 @@ public enum OperateType {
ORDER_AFFIRM("orderAffirm","完成"),
ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"),
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消");
ORDER_CANCEL("orderCancel","订单取消"),
ORDER_CREATE_DELIVERY("orderCreateDelivery","创建配送"),
ORDER_CANCEL_DELIVERY("orderCancelDelivery","取消配送");
/**
* 操作类型
......
......@@ -89,4 +89,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)) {
......@@ -278,4 +280,54 @@ public class OrderManagerAdapter {
result.setResult(new OrderManagerResponse(orderStatus,refundStatus));
return result;
}
/**
* 创建配送单
* @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);
}
}
......@@ -107,10 +107,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、微信消息中心 重复接单不重复推消息(针对蜜雪做的修改)
......@@ -365,4 +363,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