Commit 43508a13 by 刘继明

Merge branch 'feature/20210629-骑手未配送前支持手动取消-liujiming' 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/impl/SaasOrderMangerServiceImpl.java
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OperateType.java
parents 9ad4c1aa 1a53b552
package cn.freemud.management.adapter; package cn.freemud.management.adapter;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.DeliveryStatus;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto; import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType; import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExpressReq;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.enums.QueryDeliveryType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.math.NumberUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.Date;
import java.util.LinkedList;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
...@@ -73,4 +80,38 @@ public class DeliverySdkAdapter { ...@@ -73,4 +80,38 @@ public class DeliverySdkAdapter {
}).collect(Collectors.toCollection(LinkedList::new)))); }).collect(Collectors.toCollection(LinkedList::new))));
return deliveryOrderRequestDto; return deliveryOrderRequestDto;
} }
/**
* 构建配送状态和信息
*
* @param request
* @param deliveryStatus
* @return
*/
public OrderExpressReq buildOrderExpressReq(OrderManagerRequest request, DeliveryStatus deliveryStatus) {
OrderExpressReq expressReq = new OrderExpressReq();
expressReq.setOrderCode(request.getOrderId());
//设置自配送--三方订单(美团、饿了么)使用订单表中 expressTyp, saas订单根据delivery_info表中 配送员 的 addressDetail字段为self
expressReq.setOrderSubState(deliveryStatus.getCode());
expressReq.setOperator(request.getOperator());
expressReq.setRemark(request.getReason());
//修改配送员 为infoType=0,address_detail为self,
switch (deliveryStatus) {
case RIDERSTARTDELIVERY:
expressReq.setOpType(1);
expressReq.setContactsName("");
expressReq.setMobile("");
expressReq.setAddressDetail(QueryDeliveryType.SELF.getCode());
// 是否需要task
//expressReq.setOrderTaskReq();
break;
default:
break;
}
return expressReq;
}
} }
...@@ -64,6 +64,10 @@ public class OrderManagerController { ...@@ -64,6 +64,10 @@ public class OrderManagerController {
return orderManagerAdapter.orderRejectRefund(request); return orderManagerAdapter.orderRejectRefund(request);
case ORDER_CANCEL: case ORDER_CANCEL:
return orderManagerAdapter.orderCancel(request); return orderManagerAdapter.orderCancel(request);
case ORDER_CANCEL_DELIVERY:
return orderManagerAdapter.orderCancelDelivery(request);
case ORDER_SWITCH_SELF_DELIVERY:
return orderManagerAdapter.orderSwitchSelfDelivery(request);
default: default:
return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE); return ResponseUtil.error(ResponseResult.ORDER_OPERATE_TYPE_NOT_VALIDATE);
} }
......
...@@ -62,4 +62,9 @@ public class OrderManagerRequest { ...@@ -62,4 +62,9 @@ public class OrderManagerRequest {
private String remark; private String remark;
private Boolean horseman; private Boolean horseman;
/**
* 取消code
*/
private Integer cancelCode;
} }
...@@ -11,7 +11,10 @@ public enum OperateType { ...@@ -11,7 +11,10 @@ public enum OperateType {
ORDER_AFFIRM("orderAffirm","完成"), ORDER_AFFIRM("orderAffirm","完成"),
ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"), ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"),
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"), ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"); ORDER_CANCEL("orderCancel","订单取消"),
ORDER_CANCEL_DELIVERY("orderCancelDelivery","取消配送"),
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送");
/** /**
* 操作类型 * 操作类型
......
...@@ -88,5 +88,25 @@ public interface OrderManagerService { ...@@ -88,5 +88,25 @@ public interface OrderManagerService {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 取消配送
* @param request
* @param orderBean
* @return
*/
default BaseResponse<OrderManagerResponse> orderCancelDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
return ResponseUtil.success();
}
/**
* 切换为自配送
* @param request
* @param orderBean
* @return
*/
default BaseResponse<OrderManagerResponse> orderSwitchSelfDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean 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 {
...@@ -274,4 +276,39 @@ public class OrderManagerAdapter { ...@@ -274,4 +276,39 @@ public class OrderManagerAdapter {
result.setResult(new OrderManagerResponse(orderStatus,refundStatus)); result.setResult(new OrderManagerResponse(orderStatus,refundStatus));
return result; return result;
} }
/**
* 拒绝退款
* @param request
* @return
*/
public BaseResponse orderCancelDelivery(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
if (Objects.isNull(orderBean)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
request.setCancelCode(0);
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancelDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
/**
* 切换自配送
* @param request
* @return
*/
public BaseResponse orderSwitchSelfDelivery(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderSwitchSelfDelivery(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderSwitchSelfDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
} }
...@@ -7,13 +7,10 @@ import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderHaltedRe ...@@ -7,13 +7,10 @@ import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderHaltedRe
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.DeliveryStatus; import cn.freemud.management.enums.DeliveryStatus;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.DeliveryServiceException;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService; import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.thirdparty.DeliveryMCCafeClient; import cn.freemud.management.thirdparty.DeliveryMCCafeClient;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
import com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto; import com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto; import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto; import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
...@@ -21,10 +18,7 @@ import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseD ...@@ -21,10 +18,7 @@ import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseD
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService; import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.service.EmailAlertService; 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.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -121,9 +115,9 @@ public class DeliveryHandle { ...@@ -121,9 +115,9 @@ public class DeliveryHandle {
} }
CancelDeliveryOrderRequestDto cancelDeliveryOrderRequestDto = new CancelDeliveryOrderRequestDto(); CancelDeliveryOrderRequestDto cancelDeliveryOrderRequestDto = new CancelDeliveryOrderRequestDto();
cancelDeliveryOrderRequestDto.setDeliveryId(data.getAddInfo().getDeliveryId()); cancelDeliveryOrderRequestDto.setDeliveryId(data.getAddInfo().getDeliveryId());
cancelDeliveryOrderRequestDto.setOrderCancelCode(4); cancelDeliveryOrderRequestDto.setOrderCancelCode(request.getCancelCode());
//商家退款取消配送 //商家退款取消配送
cancelDeliveryOrderRequestDto.setOrderCancelDescription("顾客取消订单"); cancelDeliveryOrderRequestDto.setOrderCancelDescription(request.getReason());
DeliveryResponseDto deliveryResponse = deliveryService.deliveryOrderCancel(cancelDeliveryOrderRequestDto, LogThreadLocal.getTrackingNo()); DeliveryResponseDto deliveryResponse = deliveryService.deliveryOrderCancel(cancelDeliveryOrderRequestDto, LogThreadLocal.getTrackingNo());
if (deliveryResponse == null || !StringUtils.equals(ResponseResult.SUCCESS.getCode(), deliveryResponse.getCode()+"")) { if (deliveryResponse == null || !StringUtils.equals(ResponseResult.SUCCESS.getCode(), deliveryResponse.getCode()+"")) {
return ResponseUtil.error(ResponseResult.DELIVERY_CANCEL_ORDER_ERROR); return ResponseUtil.error(ResponseResult.DELIVERY_CANCEL_ORDER_ERROR);
......
package cn.freemud.management.service.handle; package cn.freemud.management.service.handle;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; 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.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.RefundConfig;
import cn.freemud.management.enums.*; import cn.freemud.management.enums.*;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager; import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient; import com.freemud.application.sdk.api.ordercenter.enums.OperateClient;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.message.enums.OrderType; import com.freemud.sdk.api.assortment.message.enums.OrderType;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType; import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType; import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType; import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.enums.RefundStatus; import com.freemud.sdk.api.assortment.order.enums.RefundStatus;
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.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -31,7 +25,10 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -31,7 +25,10 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -496,6 +493,24 @@ public class OrderVerifyHandle { ...@@ -496,6 +493,24 @@ public class OrderVerifyHandle {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 校验切换自配送参数
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderSwitchSelfDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (Objects.isNull(orderBean)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//校验订单配送状态
if (DeliveryStatus.DELIVERYCANCEL.getCode()!=orderBean.getDeliverStatus()){
return ResponseUtil.error(ResponseResult.ORDER_STATUS_FAILED);
}
return ResponseUtil.success();
}
/** /**
* 通用校验 * 通用校验
......
...@@ -3,6 +3,7 @@ package cn.freemud.management.service.impl; ...@@ -3,6 +3,7 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderRequest; import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderRequest;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderBaseService; import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.handle.DeliveryHandle; import cn.freemud.management.service.handle.DeliveryHandle;
...@@ -56,7 +57,18 @@ public class OrderDeliveryService { ...@@ -56,7 +57,18 @@ public class OrderDeliveryService {
if (null == data) { if (null == data) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
return deliveryHandle.cancelDelivery(data, null); return deliveryHandle.cancelDelivery(data, buildOrderManagerRequest());
}
/**
* 构建取消参数
* @return
*/
private OrderManagerRequest buildOrderManagerRequest(){
OrderManagerRequest request=new OrderManagerRequest();
request.setCancelCode(4);
request.setReason("顾客取消订单");
return request;
} }
......
...@@ -2,56 +2,48 @@ package cn.freemud.management.service.impl; ...@@ -2,56 +2,48 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.JsonUtil; 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.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse; import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.DeliveryStatus;
import cn.freemud.management.enums.OperateType; import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.RefundStatus; import cn.freemud.management.enums.RefundStatus;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.enums.SettlementTypeEnum;
import cn.freemud.management.intercept.OrderServiceException; import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService; import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*; import cn.freemud.management.service.handle.*;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; 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.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; 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.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.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.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.service.EmailAlertService; import com.freemud.application.sdk.api.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; 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.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest; import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse; 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.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.Arrays;
import java.util.function.Function; import java.util.List;
import java.util.stream.Collectors; 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_AGREE_REFUND;
import static cn.freemud.management.enums.OperateType.ORDER_CANCEL;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
...@@ -87,8 +79,11 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -87,8 +79,11 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private OrderSdkService orderSdkService; private OrderSdkService orderSdkService;
@Autowired @Autowired
private EmailAlertService emailAlertService; private EmailAlertService emailAlertService;
@Autowired
private DeliverySdkAdapter deliverySdkAdapter;
private static final int SUCCESS = 100; private static final int SUCCESS = 100;
/** /**
* 接单 * 接单
* *
...@@ -343,4 +338,39 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -343,4 +338,39 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
} }
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 取消配送
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderCancelDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//取消配送
BaseResponse baseResponse = deliveryHandle.cancelDelivery(orderBean, request);
if (Objects.equals(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
// 修改配送状态为取消
baseResponse = updateDeliveryInfo(deliverySdkAdapter.buildOrderExpressReq(request, DeliveryStatus.DELIVERYCANCEL));
}
return baseResponse;
}
@Override
public BaseResponse<OrderManagerResponse> orderSwitchSelfDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//设置自配送--三方订单(美团、饿了么)使用订单表中 expressTyp, saas订单根据delivery_info表中 配送员 的 addressDetail字段为self
request.setReason(OperateType.ORDER_SWITCH_SELF_DELIVERY.getOpName());
return updateDeliveryInfo(deliverySdkAdapter.buildOrderExpressReq(request,DeliveryStatus.RIDERSTARTDELIVERY));
}
/**
* 修改配送信息和状态,并转换返回
* @param expressReq
* @return
*/
private BaseResponse updateDeliveryInfo(OrderExpressReq expressReq){
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response= orderSdkService.updateDeliveryInfo(expressReq, "");
return ResponseUtil.error(response.getCode(),response.getMessage());
}
} }
...@@ -8,6 +8,7 @@ import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; ...@@ -8,6 +8,7 @@ import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException; import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.DeliveryHandle;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.takeaway.request.order.*; import com.freemud.application.sdk.api.takeaway.request.order.*;
import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService; import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService;
...@@ -35,6 +36,8 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService { ...@@ -35,6 +36,8 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
private WaimaiOrderService waimaiOrderService; private WaimaiOrderService waimaiOrderService;
@Autowired @Autowired
private WaimaiSdkAdapter waimaiSdkAdapter; private WaimaiSdkAdapter waimaiSdkAdapter;
@Autowired
private DeliveryHandle deliveryHandle;
/** /**
* 接单 * 接单
...@@ -153,4 +156,18 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService { ...@@ -153,4 +156,18 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 取消配送
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderCancelDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//取消配送
return deliveryHandle.cancelDelivery(orderBean,request);
}
} }
...@@ -11,7 +11,9 @@ public enum OperateType { ...@@ -11,7 +11,9 @@ public enum OperateType {
ORDER_AFFIRM("orderAffirm","完成"), ORDER_AFFIRM("orderAffirm","完成"),
ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"), ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"),
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"), ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"); ORDER_CANCEL("orderCancel","订单取消"),
ORDER_CANCEL_DELIVERY("orderCancelDelivery","取消配送"),
ORDER_SWITCH_SELF_DELIVERY("orderSwitchSelfDelivery","切换自配送");
/** /**
......
...@@ -88,5 +88,10 @@ public class OrderExpressReq { ...@@ -88,5 +88,10 @@ public class OrderExpressReq {
*/ */
public Long estimateArriveTime; public Long estimateArriveTime;
/**
* 详细地址
*/
private String addressDetail;
} }
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