Commit 2d7901b6 by 刘继明

Merge branch 'feature/20210629-骑手未配送前支持手动取消-liujiming' into qa

# Conflicts:
#	order-management/src/main/java/cn/freemud/management/enums/OperateType.java
#	order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OperateType.java
parents 9b1b585d 07f486d0
......@@ -68,6 +68,8 @@ public class OrderManagerController {
return orderManagerAdapter.orderCancel(request);
case ORDER_SWITCH_SELF_DELIVERY:
return orderManagerAdapter.orderSwitchSelfDelivery(request);
case ORDER_RECREATE_DELIVERY:
return orderManagerAdapter.orderRecreateDelivery(request);
default:
return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE);
}
......
......@@ -12,7 +12,8 @@ public enum OperateType {
ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"),
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"),
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送");
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送"),
ORDER_RECREATE_DELIVERY("orderRecreateDelivery","重新呼叫骑手");
/**
......
......@@ -97,6 +97,15 @@ public interface OrderManagerService {
default BaseResponse<OrderManagerResponse> orderSwitchSelfDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
return ResponseUtil.success();
}
/**
* 重新呼叫骑手
* @param request
* @param orderBean
* @return
*/
default BaseResponse<OrderManagerResponse> orderRecreateDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
return ResponseUtil.success();
}
}
......@@ -292,4 +292,21 @@ public class OrderManagerAdapter {
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderSwitchSelfDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
/**
* 重新呼叫骑手
* @param request
* @return
*/
public BaseResponse orderRecreateDelivery(OrderManagerRequest request){
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderRecreateDelivery(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderRecreateDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
}
......@@ -535,6 +535,39 @@ public class OrderVerifyHandle {
}
/**
* 重新呼叫骑手数据校验
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderRecreateDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (Objects.isNull(orderBean)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//校验订单状态
if (OrderStatus.DISTRIBUTION.getCode()!=orderBean.getStatus()){
return ResponseUtil.error(ResponseResult.ORDER_STATUS_FAILED);
}
//校验订单配送状态
if (DeliveryStatus.DELIVERYCANCEL.getCode()!=orderBean.getDeliverStatus()){
return ResponseUtil.error(ResponseResult.ORDER_STATUS_FAILED);
}
DeliveryStatus deliveryStatus= DeliveryStatus.getDeliveryStatusByCode(orderBean.getDeliverStatus());
switch (deliveryStatus) {
case RIDERARRIVESTORE:
case RIDERGETMEAL:
case RIDERSTARTDELIVERY:
case DELIVERYARRIVED:
return ResponseUtil.error(ResponseResult.ORDER_STATUS_FAILED);
default:
break;
}
return ResponseUtil.success();
}
/**
* 是否是外卖
*
* @param orderBean
......
package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.JsonUtil;
import cn.freemud.management.adapter.DeliverySdkAdapter;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.*;
import cn.freemud.management.enums.DeliveryStatus;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.RefundStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException;
......@@ -14,45 +16,35 @@ import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*;
import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO;
import com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AbnormalStateEnum;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExpressReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
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.*;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.enums.PayRefundStatus;
import com.freemud.sdk.api.assortment.order.enums.PayType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import static cn.freemud.management.enums.OperateType.ORDER_AGREE_REFUND;
import static cn.freemud.management.enums.OperateType.ORDER_CANCEL;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -363,4 +355,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
}
return ResponseUtil.success();
}
@Override
public BaseResponse<OrderManagerResponse> orderRecreateDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
// 查询门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), LogTreadLocal.getTrackingNo());
return deliveryHandle.createDelivery(orderBean,request,storeInfo);
}
}
......@@ -12,7 +12,8 @@ public enum OperateType {
ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"),
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"),
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送");
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送"),
ORDER_RECREATE_DELIVERY("orderRecreateDelivery","重新呼叫骑手");
/**
......
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