Pārlūkot izejas kodu

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

liujiankang 5 gadi atpakaļ
vecāks
revīzija
56467e50b2

+ 50 - 53
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/KuaiDi100.java

@@ -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;
             }

+ 22 - 24
watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java

@@ -592,31 +592,29 @@ public class MQTask implements InitializingBean {
 //	@Scheduled(cron = "0 0/3 * * * ?")//每三分钟执行一次
 	@Scheduled(cron = "0 0/30 * * * ?")//每半个小时执行一次
 	public void orderCaseDate(){
-		logger.info("------------查询订单揽件时间 start-----------");
+		logger.info("查询订单揽件时间");
 		List<SalesOrder> salesOrderList = salesOrderService.orderAfterCaseDate();
-		Integer num = 0;
-		Integer numSellpNum = 0;
-		if(salesOrderList != null && salesOrderList.size()>0){
-			logger.info("------------查询订单揽件时间 - 需要查询揽件订单数量:"+ salesOrderList.size() +"-----------");
-			for (SalesOrder salesOrder:salesOrderList) {
-				LogisticsInfo log = new LogisticsInfo();
-				log.setLogisticsRstCode(salesOrder.getSalesPostFirm());
-				List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
-				Date date = kuaidi100.selectCourierSignCaseTime(listlog.get(0).getLogisticsEfastCode(),salesOrder.getSalesPostNum());
-				if(date != null){
-					SalesOrder so = new SalesOrder();
-					so.setSalesId(salesOrder.getSalesId());
-					so.setOrderCaseDate(date);
-					Integer flag = salesOrderService.update(so);
-					if(flag < 1){
-						logger.info("修改揽件时间异常,订单号:"+salesOrder.getSalesOrderId());
-					}
-					num ++;
-				}
-				numSellpNum++;
-			}
-		}
-		logger.info("------------查询订单揽件时,本次处理揽件事件数量"+ num +" end-----------");
+		if (salesOrderList == null || salesOrderList.isEmpty()) {
+		    return;
+        }
+        for (SalesOrder salesOrder:salesOrderList) {
+            // 查询订单对应的物流公司
+            LogisticsInfo log = new LogisticsInfo();
+            log.setLogisticsRstCode(salesOrder.getSalesPostFirm());
+            List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
+            // 调用第三方接口查询物流信息
+            Date date = kuaidi100.selectCourierSignCaseTime(listlog.get(0).getLogisticsEfastCode(),salesOrder.getSalesPostNum());
+            if(date == null){
+                continue;
+            }
+            // 编辑订单的揽件时间
+            SalesOrder so = new SalesOrder();
+            so.setSalesId(salesOrder.getSalesId());
+            so.setOrderCaseDate(date);
+            if(salesOrderService.update(so) <= 0){
+                logger.info("修改揽件时间异常,订单号:"+salesOrder.getSalesOrderId());
+            }
+        }
 	}
 
 }