From cd55aff7eea06f77a8f712cef1ad2744c44d0f8a Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 20 六月 2024 18:56:16 +0800
Subject: [PATCH] 1.修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
index 3abea27..c789080 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
@@ -1,10 +1,40 @@
 package com.ruoyi.order.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.nacos.shaded.com.google.gson.Gson;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kuaidi100.sdk.api.QueryTrack;
+import com.kuaidi100.sdk.core.IBaseClient;
+import com.kuaidi100.sdk.pojo.HttpResult;
+import com.kuaidi100.sdk.request.QueryTrackParam;
+import com.kuaidi100.sdk.request.QueryTrackReq;
+import com.kuaidi100.sdk.utils.SignUtils;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.order.mapper.LogisticsMapper;
 import com.ruoyi.order.service.ILogisticsService;
+import com.ruoyi.order.vo.KuaiDiCode;
 import com.ruoyi.system.api.domain.Logistics;
+import com.ruoyi.system.api.domain.dto.LogisticsDTO;
+import com.ruoyi.system.api.domain.vo.Express100VO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -18,4 +48,78 @@
 public class LogisticsServiceImpl extends ServiceImpl<LogisticsMapper, Logistics> implements
         ILogisticsService {
 
+    private String key="BltjQodT7186";
+    private String customer="56DE8E9E3D58CE73C60755C8B7483043";
+
+    private static final String AUTONUMBER_AUTO_URL = "http://www.kuaidi100.com/autonumber/auto?num=NUM&key=KEY";
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+
+    @Override
+    public Express100VO getLogisticsList(LogisticsDTO logisticsDTO) {
+        QueryTrackReq queryTrackReq = new QueryTrackReq();
+        QueryTrackParam queryTrackParam = new QueryTrackParam();
+        queryTrackParam.setCom(logisticsDTO.getCompany());
+        queryTrackParam.setNum(logisticsDTO.getPostid());
+        String param = new Gson().toJson(queryTrackParam);
+
+        queryTrackReq.setParam(param);
+        queryTrackReq.setCustomer(customer);
+        queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
+
+        IBaseClient baseClient = new QueryTrack();
+        HttpResult execute = null;
+        try {
+            execute = baseClient.execute(queryTrackReq);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        // 对返回的数据进行反序列化处理
+        Gson gson = new Gson();
+        String responseBody = execute.getBody();
+        Express100VO response = gson.fromJson(responseBody, Express100VO.class);
+        LambdaQueryWrapper<Logistics> wrapper= Wrappers.lambdaQuery();
+        wrapper.eq(Logistics::getLogisticsNum,logisticsDTO.getCompany());
+        Logistics one = this.getOne(wrapper);
+        response.setLogisticsName(one.getLogisticsName());
+        return response;
+    }
+
+    @Override
+    public Boolean isLogisticsOne(LogisticsDTO logisticsDTO) {
+        List<KuaiDiCode> m=findKuaiDiCode(logisticsDTO.getPostid());
+        Boolean b=false;
+        if (m.size()>0){
+            for (KuaiDiCode k:m){
+               if (k.getComCode().equals(logisticsDTO.getCompany())){
+                   b=true;
+               }
+            }
+
+        }
+
+        return b;
+    }
+
+    public List<KuaiDiCode> findKuaiDiCode(String orderId) {
+        String url = AUTONUMBER_AUTO_URL.replace("NUM", orderId).replace("KEY", key);
+        // 发送快递参数处理
+        MultiValueMap<String, Object> sendBody = new LinkedMultiValueMap<>();
+        sendBody.add("num", orderId);
+        sendBody.add("key", key);
+        //设置请求头参数
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-type", "application/x-www-form-urlencoded");
+        HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<>(sendBody, headers);
+        ResponseEntity<String> result = restTemplate.postForEntity(url, formEntity, String.class);
+        List<KuaiDiCode> kuaiDiCode = new ArrayList<>();
+        if (result.getBody() != null && result.getBody().length() > 0) {
+            ArrayList body = JSON.parseObject(result.getBody(), ArrayList.class);
+            body.forEach(i -> kuaiDiCode.add(JSON.parseObject(JSON.toJSONString(i), KuaiDiCode.class)));
+        }
+        return kuaiDiCode;
+    }
+
 }

--
Gitblit v1.7.1