Commit 975c457a by hanghang.wang

Merge remote-tracking branch 'origin/feature/20210129_【订单服务】订单详情信息接口对接配送返回骑手信息_wanghanghang'

parents 4e872244 9c6962d5
......@@ -437,11 +437,60 @@ public class QueryOrdersResponse {
*/
private Integer deliverStatus;
private String extInfo;
/**
* 下方字段需求来源:C端小程序配送显示骑手、商家坐标地图、配送距离以及骑手姓名电话,支持直接拨打
* wanghanghang
* 20210129
*/
/**
* 骑手姓名
*/
private String RiderName;
/**
* 骑手电话
*/
private String RiderPhone;
/**
* 订单号
*/
private String orderId;
/**
* 门店联系电话
*/
private String storePhone;
/**
* 骑手经度
*/
private String riderLongitude;
/**
* 骑手纬度
*/
private String riderLatitude;
/**
* 用户经度
*/
private String destLongitude;
/**
* 用户纬度
*/
private String destLatitude;
/**
* 门店经度
*/
private String shopLongitude;
/**
* 门店纬度
*/
private String shopLatitude;
private String extInfo;
/**
* 距离
*/
private Integer distance;
}
@NoArgsConstructor
......
......@@ -20,6 +20,12 @@ public class DeliveryStatusAndRiderPositionDto {
* 门店经纬度
*/
private String storePoint;
/**
* 目的地经纬度
*/
private String destPoint;
/**
* 配送状态
*/
......@@ -33,4 +39,40 @@ public class DeliveryStatusAndRiderPositionDto {
*/
private String storePhone;
/**
* 骑手姓名
*/
private String riderName;
/**
* 骑手电话
*/
private String riderPhone;
/**
* 签收时间 送达时间 收货时间
*/
private String receiveTime;
/**
* 骑手分配时间
*/
private String depatchTime;
/**
* 到店时间
*/
private String arriveShopTime;
/**
* 送出时间
*/
private String sendTime;
/**
* 完成时间
*/
private String completeTime;
}
......@@ -2,8 +2,19 @@ package cn.freemud.entities.dto.delivery;
import lombok.Data;
/**
* @author wanghanghang
*/
@Data
public class QueryDeliveryBaseRequest {
/**
* 配送单id
*/
private String deliveryId;
/**
* 是否开启线路规划查询
*/
private Integer openDistance;
}
......@@ -31,11 +31,11 @@ public class OrderRiderResponseVo {
/**
* 用户经度
*/
private String userLongitude;
private String destLongitude;
/**
* 用户纬度
*/
private String userLatitude;
private String destLatitude;
/**
* 门店经度
*/
......@@ -56,6 +56,16 @@ public class OrderRiderResponseVo {
* 操作日志
*/
private List<Operation> operationList;
/**
* 骑手姓名
*/
private String RiderName;
/**
* 骑手电话
*/
private String RiderPhone;
@Data
public static class Operation{
private String createTime;
......
......@@ -218,7 +218,7 @@ public enum ResponseResult {
DELIVERY_QUERY_RIDER_STATUS_ERROR("53014", "订单状态不是配送中,不能查询骑手位置"),
DELIVERY_REMINDER_ERROR("53015","催单失败"),
DELIVERY_QUERY_RIDER_ERROR("53016","查询骑手位置失败"),
DELIVERY_NOT_EXIST("53017","当前订单不是没有配送单"),
DELIVERY_NOT_EXIST("53017","当前订单没有配送单"),
/**
* 配送信息
......
......@@ -1314,7 +1314,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
}
QueryOrdersResponse.DataBean.OrderBean orderBean = response.getData();
if (!StringUtils.isNotEmpty(orderBean.getAddInfo().getDeliveryId()) || "0".equals(orderBean.getAddInfo().getDeliveryId())) {
if (orderBean == null || orderBean.getAddInfo() == null || StringUtils.isEmpty(orderBean.getAddInfo().getDeliveryId()) || "0".equals(orderBean.getAddInfo().getDeliveryId())) {
return ResponseUtil.error(ResponseResult.DELIVERY_NOT_EXIST);
}
QueryDeliveryBaseRequest queryDeliveryBaseRequest = new QueryDeliveryBaseRequest();
......@@ -1337,18 +1337,24 @@ public class OrderServiceImpl implements Orderservice {
responseVo.setOperationList(operationList);
responseVo.setOrderId(orderBean.getOid());
responseVo.setStorePhone(deliveryBaseResponse.getData().getStorePhone());
responseVo.setRiderName(deliveryBaseResponse.getData().getRiderName());
responseVo.setRiderPhone(deliveryBaseResponse.getData().getRiderPhone());
if (deliveryBaseResponse.getData().getCurrentPoint() != null) {
String currentPoint[] = deliveryBaseResponse.getData().getCurrentPoint().split(",");
String[] currentPoint = deliveryBaseResponse.getData().getCurrentPoint().split(",");
responseVo.setRiderLongitude(currentPoint[0]);
responseVo.setRiderLatitude(currentPoint[1]);
}
if (deliveryBaseResponse.getData().getStorePoint() != null) {
String storePoint[] = deliveryBaseResponse.getData().getStorePoint().split(",");
String[] storePoint = deliveryBaseResponse.getData().getStorePoint().split(",");
responseVo.setShopLongitude(storePoint[0]);
responseVo.setShopLatitude(storePoint[1]);
}
responseVo.setUserLongitude(String.valueOf(orderBean.getLongitude()));
responseVo.setUserLatitude(String.valueOf(orderBean.getLatitude()));
//用户经纬度,改为从配送返回信息获取
if (deliveryBaseResponse.getData().getDestPoint() != null) {
String[] destPoint = deliveryBaseResponse.getData().getDestPoint().split(",");
responseVo.setDestLongitude(destPoint[0]);
responseVo.setDestLatitude(destPoint[1]);
}
responseVo.setDistance(deliveryBaseResponse.getData().getDistance());
responseVo.setDeliveryId(deliveryBaseResponse.getData().getDeliveryId());
responseVo.setDevlieryStatus(deliveryBaseResponse.getData().getDevlieryStatus());
......@@ -1734,16 +1740,48 @@ public class OrderServiceImpl implements Orderservice {
/**
* 如果有第三方配送,返回值添加第三方配送信息
*/
// private void hasThirdDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
// String deliveryId = orderBean.getAddInfo().getDeliveryId();
// if ("0".equals(deliveryId)) {
// return;
// }
// String trackingNo = LogTreadLocal.getTrackingNo();
// DeliveryResponseDto<DeliveryInfoDto> delivery = deliveryService.deliveryOrderOne(deliveryId, trackingNo);
// if (RESPONSE_SUCCESS_CODE == delivery.getCode() && delivery.getData() != null) {
// DeliveryInfoDto result = delivery.getData();
// orderBean.setDeliverStatus(result.getDeliveryStatus());
// orderBean.setRiderName(result.getRiderName());
// orderBean.setRiderPhone(result.getRiderPhone());
// orderBean.setReceiveTime(result.getReceiveTime());
// orderBean.setDepatchTime(result.getDepatchTime());
// orderBean.setArriveShopTime(result.getArriveShopTime());
// orderBean.setSendTime(result.getSendTime());
// orderBean.setCompleteTime(result.getCompleteTime());
// }
// if (orderBean.getAddInfo() != null && StringUtils.isNotEmpty(orderBean.getAddInfo().getRiderPhone())) {
// orderBean.setRiderPhone(orderBean.getAddInfo().getRiderPhone());
// }
// }
/**
* 如果有第三方配送,返回值添加第三方配送信息
*/
private void hasThirdDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
String deliveryId = orderBean.getAddInfo().getDeliveryId();
if ("0".equals(deliveryId)) {
return;
}
String trackingNo = LogTreadLocal.getTrackingNo();
DeliveryResponseDto<DeliveryInfoDto> delivery = deliveryService.deliveryOrderOne(deliveryId, trackingNo);
if (RESPONSE_SUCCESS_CODE == delivery.getCode() && delivery.getData() != null) {
DeliveryInfoDto result = delivery.getData();
orderBean.setDeliverStatus(result.getDeliveryStatus());
// String trackingNo = LogTreadLocal.getTrackingNo();
QueryDeliveryBaseRequest queryDeliveryBaseRequest = new QueryDeliveryBaseRequest();
queryDeliveryBaseRequest.setDeliveryId(deliveryId);
queryDeliveryBaseRequest.setOpenDistance(1);
//变更查询配送信息换新接口 wanghanghang 20210129
//【ID1021981】C端小程序配送显示骑手、商家坐标地图、配送距离以及骑手姓名电话,支持直接拨打
DeliveryBaseResponse<DeliveryStatusAndRiderPositionDto> deliveryBaseResponse = deliveryFeiginClient.getDeliveryStatusAndRiderPosition(queryDeliveryBaseRequest);
// DeliveryResponseDto<DeliveryInfoDto> delivery = deliveryService.deliveryOrderOne(deliveryId, trackingNo);
if (RESPONSE_SUCCESS_CODE.equals(deliveryBaseResponse.getCode()) && deliveryBaseResponse.getData() != null) {
DeliveryStatusAndRiderPositionDto result = deliveryBaseResponse.getData();
orderBean.setDeliverStatus(result.getDevlieryStatus());
orderBean.setRiderName(result.getRiderName());
orderBean.setRiderPhone(result.getRiderPhone());
orderBean.setReceiveTime(result.getReceiveTime());
......@@ -1751,10 +1789,44 @@ public class OrderServiceImpl implements Orderservice {
orderBean.setArriveShopTime(result.getArriveShopTime());
orderBean.setSendTime(result.getSendTime());
orderBean.setCompleteTime(result.getCompleteTime());
/** 只有配送状态是2 3 4 5时,返回三方坐标信息
* 此处如果是外卖单,则需要返回门店经纬度/用户经纬度/骑手经纬度
* 门店经纬度 = 配送返回信息为准,外卖单独新增门店经纬度字段,和配送信息接口统一 /queryOrderRider
* wanghanghang 20210129
*/
if(result.getDevlieryStatus().equals(DeliveryStatus.ALLOTRIDER.getCode()) ||
result.getDevlieryStatus().equals(DeliveryStatus.RIDERARRIVESTORE.getCode())||
result.getDevlieryStatus().equals(DeliveryStatus.RIDERGETMEAL.getCode())||
result.getDevlieryStatus().equals(DeliveryStatus.RIDERSTARTDELIVERY.getCode())
){
orderBean.getAddInfo().setDistance(deliveryBaseResponse.getData().getDistance());
orderBean.getAddInfo().setDeliverStatus(result.getDevlieryStatus());
orderBean.getAddInfo().setRiderName(result.getRiderName());
orderBean.getAddInfo().setRiderPhone(result.getRiderPhone());
orderBean.getAddInfo().setOrderId(orderBean.getOid());
orderBean.getAddInfo().setStorePhone(result.getStorePhone());
//门店经纬度
if (deliveryBaseResponse.getData().getStorePoint() != null) {
String[] storePoint = deliveryBaseResponse.getData().getStorePoint().split(",");
orderBean.getAddInfo().setShopLongitude(storePoint[0]);
orderBean.getAddInfo().setShopLatitude(storePoint[1]);
}
//骑手经纬度
if (deliveryBaseResponse.getData().getCurrentPoint() != null) {
String[] currentPoint = deliveryBaseResponse.getData().getCurrentPoint().split(",");
orderBean.getAddInfo().setRiderLongitude(currentPoint[0]);
orderBean.getAddInfo().setRiderLatitude(currentPoint[1]);
}
//用户经纬度
if (deliveryBaseResponse.getData().getDestPoint() != null) {
String[] destPoint = deliveryBaseResponse.getData().getDestPoint().split(",");
orderBean.getAddInfo().setDestLongitude(destPoint[0]);
orderBean.getAddInfo().setDestLatitude(destPoint[1]);
}
}
if (orderBean.getAddInfo() != null && StringUtils.isNotEmpty(orderBean.getAddInfo().getRiderPhone())) {
orderBean.setRiderPhone(orderBean.getAddInfo().getRiderPhone());
}
}
/**
......
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