|
@@ -10,6 +10,7 @@ import org.jsoup.nodes.Document;
|
|
|
import org.jsoup.nodes.Element;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.io.*;
|
|
@@ -31,7 +32,6 @@ public class KuaiDi100 {
|
|
|
|
|
|
private static String key = "29833628d495d7a5";//授权密匙key 百度的
|
|
|
/*private static String key = "06d6c2ea1bdb4ee9";//授权密匙key 自己的*/
|
|
|
-
|
|
|
//快递鸟 电商ID
|
|
|
private static final String EBusinessID="1343593";
|
|
|
//电商加密私钥,快递鸟提供
|
|
@@ -112,6 +112,9 @@ public class KuaiDi100 {
|
|
|
case "dbkd":
|
|
|
code = "debangwuliu";
|
|
|
break;
|
|
|
+ case "hoau":
|
|
|
+ code = "tiandihuayu";
|
|
|
+ break;
|
|
|
case "lianhaowuliu":
|
|
|
code = "lianhaowuliu";
|
|
|
break;
|
|
@@ -440,59 +443,51 @@ public class KuaiDi100 {
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject selectCourierCompany2(String code,String num) {
|
|
|
- num = num.toLowerCase();
|
|
|
- JSONObject json = null;
|
|
|
- boolean flag = code.toLowerCase().equals("sf") || code.toLowerCase().equals("shunfeng");
|
|
|
- flag = true;
|
|
|
- if(flag){
|
|
|
- KuaiDi100 kuaidi = new KuaiDi100();
|
|
|
- String result = null;
|
|
|
- try {
|
|
|
- result = kuaidi.selectCourierSF(code, num);
|
|
|
- if(result != null){
|
|
|
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- JSONObject jn = JSONObject.fromObject(result);
|
|
|
- String state = jn.getString("State");
|
|
|
- JSONArray context = jn.getJSONArray("Traces");
|
|
|
- Map<String,Object> msg = new HashMap<>();
|
|
|
- Map<String,Map<String,Object>> data = new HashMap<>();
|
|
|
- Map<String,Object> info = new HashMap<>();
|
|
|
- List<HashMap> list = new ArrayList<>();
|
|
|
- for(int i=context.size()-1;i > 0;i--){
|
|
|
- JSONObject job = context.getJSONObject(i);
|
|
|
- HashMap<String,String> map = new HashMap<>();
|
|
|
- map.put("time",String.valueOf((sf.parse(job.getString("AcceptTime")).getTime()) /1000));
|
|
|
- map.put("desc",job.getString("AcceptStation"));
|
|
|
- list.add(map);
|
|
|
- }
|
|
|
- info.put("state",state);
|
|
|
- info.put("context",JSONArray.fromObject(list));
|
|
|
- data.put("info",info);
|
|
|
- msg.put("status","0");
|
|
|
- msg.put("data",JSONObject.fromObject(data));
|
|
|
- json = JSONObject.fromObject(msg);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
+ // 调用百度的接口
|
|
|
+ try {
|
|
|
+ String temp = logisticsConversions(code.toLowerCase());
|
|
|
+ String baiduURL = "https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=cb&appid=4001&nu="+num+"&com="+temp;
|
|
|
+ String result = HttpClient431Util.doGet2(null, baiduURL,"BAIDUID=E157C876272626E1F7F498C10A6A3F00:FG=1");
|
|
|
+ String content = result.substring(7, result.length());
|
|
|
+ content = content.substring(0, content.length()-1);
|
|
|
+ JSONObject json = JSONObject.fromObject(content);
|
|
|
+ String state = json.getString("status");
|
|
|
+ if("0".equals(state) || "1".equals(state) || "2".equals(state) || "3".equals(state) || "4".equals(state) || "5".equals(state) || "6".equals(state)){
|
|
|
+ return json;
|
|
|
}
|
|
|
- }else{
|
|
|
- try {
|
|
|
- Map<String, String> params = new HashMap<String, String>();
|
|
|
- String cookie = "BAIDUID=E157C876272626E1F7F498C10A6A3F00:FG=1";
|
|
|
- String url = "https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=cb&appid=4001&nu="+num+"&com="+code;
|
|
|
- // 发送请求
|
|
|
- String html = HttpClient431Util.doGet2(params, url,cookie);
|
|
|
- String content = html.substring(7, html.length());
|
|
|
- content = content.substring(0, content.length()-1);
|
|
|
- json = JSONObject.fromObject(content);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- LOGGER.info("=========快递单号:"+code+";处理报错");
|
|
|
+ } catch (Exception e) {
|
|
|
+ LoggerFactory.getLogger(KuaiDi100.class).error("", e);
|
|
|
+ }
|
|
|
+ // 调用快递鸟的接口
|
|
|
+ try {
|
|
|
+ String result = selectCourierSF(code, num);
|
|
|
+ JSONObject jn = JSONObject.fromObject(result);
|
|
|
+ if (result != null && jn.getInt("State") != 0) {
|
|
|
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String state = jn.getString("State");
|
|
|
+ JSONArray context = jn.getJSONArray("Traces");
|
|
|
+ Map<String,Object> msg = new HashMap<>();
|
|
|
+ Map<String,Map<String,Object>> data = new HashMap<>();
|
|
|
+ Map<String,Object> info = new HashMap<>();
|
|
|
+ List<HashMap> list = new ArrayList<>();
|
|
|
+ for(int i=context.size()-1;i > 0;i--){
|
|
|
+ JSONObject job = context.getJSONObject(i);
|
|
|
+ HashMap<String,String> map = new HashMap<>();
|
|
|
+ map.put("time",String.valueOf((sf.parse(job.getString("AcceptTime")).getTime()) /1000));
|
|
|
+ map.put("desc",job.getString("AcceptStation"));
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+ info.put("state",state);
|
|
|
+ info.put("context",JSONArray.fromObject(list));
|
|
|
+ data.put("info",info);
|
|
|
+ msg.put("status","0");
|
|
|
+ msg.put("data",JSONObject.fromObject(data));
|
|
|
+ return JSONObject.fromObject(msg);
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ LoggerFactory.getLogger(KuaiDi100.class).error("", e);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- return json;
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -539,9 +534,11 @@ public class KuaiDi100 {
|
|
|
boolean flag = false;
|
|
|
for(int i = 0; i < 3; i++){
|
|
|
json = selectCourierCompany2(code,num);
|
|
|
+ if (json == null) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
String state = json.getString("status");
|
|
|
- if("0".equals(state) || "1".equals(state) || "2".equals(state) || "3".equals(state) || "4".equals(state)
|
|
|
- || "5".equals(state) || "6".equals(state)){
|
|
|
+ if("0".equals(state) || "1".equals(state) || "2".equals(state) || "3".equals(state) || "4".equals(state) || "5".equals(state) || "6".equals(state)){
|
|
|
flag = true;
|
|
|
break;
|
|
|
}
|