|
@@ -2,6 +2,7 @@ package com.hys.app.service.kuaidiniao;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.codec.Base64;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
@@ -32,6 +33,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -100,6 +102,7 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
|
|
|
|
|
|
@Override
|
|
|
public String kdShip(PreOrderModelDTO preOrderModel, Long orderId, AddressDTO addressDTO) {
|
|
|
+ preOrderModel.setOrderCode(IdUtil.fastUUID());
|
|
|
fillParam(preOrderModel);
|
|
|
String kdnCode = sendUrl(JSONUtil.toJsonStr(preOrderModel));
|
|
|
if (StrUtil.isNotEmpty(kdnCode)) {
|
|
@@ -281,18 +284,22 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
// return "1234567899";
|
|
|
- throw new ServiceException("请求快递鸟发货异常,请联系客服");
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
private void fillParam(PreOrderModel preOrderModel) {
|
|
|
+ if (preOrderModel.getAppointmentType() == 1 ){
|
|
|
+ if (LocalDateTime.now().plusHours(2).isAfter(preOrderModel.getAppointmentTime())){
|
|
|
+ throw new ServiceException("预约单必须在当前时间完后2小时");
|
|
|
+ }
|
|
|
+ }
|
|
|
//填充送货人的经纬度
|
|
|
- LongitudeLatitude longitudeLatitudeSender = GaoDeUtil.getLongitudeLatitude(preOrderModel.getSender().getProvinceCityAreaAddress());
|
|
|
+ LongitudeLatitude longitudeLatitudeSender = GaoDeUtil.getLongitudeLatitude(preOrderModel.getSender().getProvinceName()+preOrderModel.getSender().getCityName()+preOrderModel.getSender().getAreaName()+preOrderModel.getSender().getAddress());
|
|
|
preOrderModel.getSender().setLongitude(longitudeLatitudeSender.getLongitude());
|
|
|
preOrderModel.getSender().setLatitude(longitudeLatitudeSender.getLatitude());
|
|
|
//填充收货人的经纬度
|
|
|
- LongitudeLatitude longitudeLatitudeReceiver = GaoDeUtil.getLongitudeLatitude(preOrderModel.getSender().getProvinceCityAreaAddress());
|
|
|
+ LongitudeLatitude longitudeLatitudeReceiver = GaoDeUtil.getLongitudeLatitude(preOrderModel.getReceiver().getProvinceName()+preOrderModel.getReceiver().getCityName()+preOrderModel.getReceiver().getAreaName()+preOrderModel.getReceiver().getAddress());
|
|
|
preOrderModel.getReceiver().setLongitude(longitudeLatitudeReceiver.getLongitude());
|
|
|
preOrderModel.getReceiver().setLatitude(longitudeLatitudeReceiver.getLatitude());
|
|
|
//获取下单人信息
|
|
@@ -327,14 +334,14 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
|
|
|
resReturnBackBase base = new resReturnBackBase();
|
|
|
base.setKdnOrderCode(map.get("kdnOrderCode").toString());
|
|
|
//验签
|
|
|
- OrderSendDO aDo = orderSendManager.getById(Long.valueOf(map.get("orderCode").toString()));
|
|
|
+ OrderSendDO aDo = orderSendManager.getOne(new LambdaQueryWrapper<OrderSendDO>().eq(OrderSendDO::getKdnOrderCode,map.get("kdnOrderCode").toString()));
|
|
|
OrderDO orderDO = orderManager.getById(aDo.getOrderId());
|
|
|
// if (!checkDesign(aDo, returnBackBase.getDataSign())) {
|
|
|
// base.setRequestData("验签失败");
|
|
|
// base.setResultCode(1002);
|
|
|
// return base;
|
|
|
// }
|
|
|
- if (ObjectUtil.isNull(aDo)) {
|
|
|
+ if (ObjectUtil.isNull(aDo) || ObjectUtil.isNull(orderDO)) {
|
|
|
base.setReason("未找到对应的订单");
|
|
|
log.error("未找到对应的订单-------------------------------" + map.get("orderCode").toString());
|
|
|
base.setResultCode(1002);
|
|
@@ -366,7 +373,7 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
|
|
|
break;
|
|
|
case KdConstants.callBackSignRefuse:
|
|
|
aDo.setSignIn(map);
|
|
|
- aDo.setStatus(SaleOrderSendStatusEnum.TO_BE_SINGE);
|
|
|
+ aDo.setStatus(SaleOrderSendStatusEnum.TO_BE_SINGE_NOT);
|
|
|
if (OrderTypeEnum.TO_B.equals(orderDO.getType())) {
|
|
|
orderDO.setStatus(SaleOrderStatusEnum.ORDER_END);
|
|
|
}
|
|
@@ -375,9 +382,15 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
|
|
|
}
|
|
|
break;
|
|
|
case KdConstants.callBackCancelStatus:
|
|
|
+ //如果推送取消状态,需要重新下单
|
|
|
+ aDo.setKdnOrderCode(null);
|
|
|
+ aDo.setStatus(SaleOrderSendStatusEnum.TO_BE_SEND);
|
|
|
aDo.setCancelOrderKdn(map);
|
|
|
break;
|
|
|
case KdConstants.callBackCreateOrderFail:
|
|
|
+ //如果下单失败更爱订单中黄台,清空快递鸟单号,让用户可以重新下单
|
|
|
+ aDo.setKdnOrderCode(null);
|
|
|
+ aDo.setStatus(SaleOrderSendStatusEnum.TO_BE_SEND);
|
|
|
aDo.setCreateOrderFail(map);
|
|
|
break;
|
|
|
case KdConstants.callBackFeeStatus:
|