|
@@ -4,12 +4,17 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.HexUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
import cn.newfeifan.mall.framework.common.util.json.JsonUtils;
|
|
|
+import cn.newfeifan.mall.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
|
|
|
+import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderDO;
|
|
|
+import cn.newfeifan.mall.module.trade.dal.mysql.delivery.DeliveryExpressMapper;
|
|
|
+import cn.newfeifan.mall.module.trade.dal.mysql.order.TradeOrderMapper;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.config.TradeExpressProperties;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.ExpressClient;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.kd100.Kd100ExpressQueryReqDTO;
|
|
|
import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.kd100.Kd100ExpressQueryRespDTO;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.http.*;
|
|
@@ -17,6 +22,8 @@ import org.springframework.util.LinkedMultiValueMap;
|
|
|
import org.springframework.util.MultiValueMap;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
@@ -40,6 +47,12 @@ public class Kd100ExpressClient implements ExpressClient {
|
|
|
private final RestTemplate restTemplate;
|
|
|
private final TradeExpressProperties.Kd100Config config;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private TradeOrderMapper tradeOrderMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private DeliveryExpressMapper deliveryExpressMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 查询快递轨迹
|
|
|
*
|
|
@@ -63,7 +76,28 @@ public class Kd100ExpressClient implements ExpressClient {
|
|
|
if (CollUtil.isEmpty(respDTO.getTracks())) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
- return INSTANCE.convertList2(respDTO.getTracks());
|
|
|
+ List<ExpressTrackRespDTO> expressTrackRespDTOS = INSTANCE.convertList2(respDTO.getTracks());
|
|
|
+
|
|
|
+ if(respDTO.getState().equals("3")){
|
|
|
+ updateOrder(respDTO.getExpressCompanyCode(),respDTO.getLogisticsNo(),expressTrackRespDTOS.get(0).getTime());
|
|
|
+ }
|
|
|
+ return expressTrackRespDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存订单的签收时间
|
|
|
+ * @param com 快递公司编码
|
|
|
+ * @param nu 单号
|
|
|
+ */
|
|
|
+ private void updateOrder(String com, String nu, LocalDateTime time){
|
|
|
+ DeliveryExpressDO deliveryExpressDO = deliveryExpressMapper.selectByCode(com);
|
|
|
+ TradeOrderDO tradeOrderDO = tradeOrderMapper.selectOne(new LambdaQueryWrapper<TradeOrderDO>()
|
|
|
+ .eq(TradeOrderDO::getLogisticsNo, nu)
|
|
|
+ .eq(TradeOrderDO::getLogisticsId, deliveryExpressDO.getId())
|
|
|
+ );
|
|
|
+ tradeOrderDO.setReceivingTime(time);
|
|
|
+
|
|
|
+ tradeOrderMapper.updateById(tradeOrderDO);
|
|
|
}
|
|
|
|
|
|
/**
|