Browse Source

git-svn-id: https://192.168.57.71/svn/qt@50 12fe181a-e57f-b044-8676-16dc139aa63e

ld_zhoutl 9 years ago
parent
commit
8c18be3a61

+ 65 - 0
jdc/dataChange/trunk/src/main/java/com/jsjty/jdc/data/service/impl/AirRouteService.java

@@ -53,7 +53,72 @@ public class AirRouteService implements Runnable {
         String result = HttpProxy.http_get_json(URLs.air_detail_url, params);
         // 没有数据
         if (!StringUtils.hasText(result)) { return null; }
+        JSONObject obj = JSON.parseObject(result);System.out.println(result);
+        AirPlane air = new AirPlane();
+        air.setFlight(info.getF());
+        if (obj.containsKey("time")) {
+        	JSONObject timeObj = (JSONObject) obj.get("time");
+        	JSONObject scheduledObj = (JSONObject)timeObj.get("scheduled");
+        	JSONObject realObj = (JSONObject)timeObj.get("real");
+
+        	air.setDeparture(realObj.getLong("departure"));
+            air.setArrival(scheduledObj.getLong("arrival"));
+            air.setDepSchd(scheduledObj.getLong("departure"));
+            air.setArrSchd(scheduledObj.getLong("arrival"));
+        }
+        if (obj.containsKey("airport")) {
+        	JSONObject airportObj = (JSONObject) obj.get("airport");
+        	
+        	JSONObject originObj = (JSONObject) airportObj.get("origin");
+        	JSONObject codeObj = (JSONObject) originObj.get("code");
+            air.setFromIata(codeObj.getString("iata"));
+
+        	JSONObject destinationObj = (JSONObject) airportObj.get("destination");
+        	JSONObject destcodeObj = (JSONObject) destinationObj.get("code");
+            air.setToIata(destcodeObj.getString("iata"));
+        }
+
+        if (obj.containsKey("aircraft")) {
+        	JSONObject aircraftObj = (JSONObject) obj.get("aircraft");
+        	JSONObject imageObj = (JSONObject) aircraftObj.get("images");
+        	JSONObject srcObj = (JSONObject)imageObj.getJSONArray("large").get(0);
+            air.setImage(srcObj.getString("src"));
+        }
+
+        if (obj.containsKey("trail")) {
 
+            JSONArray trail = obj.getJSONArray("trail");
+            List<AirPosition> airPosList = new ArrayList<AirPosition>();
+            AirPosition airPos = null;
+            for (int i = 0; i < trail.size(); i++) {
+            	JSONObject trailObj = (JSONObject)trail.get(i);
+                airPos = new AirPosition();
+                airPos.setSort(i);
+                airPos.setLat(trailObj.getDouble("lat"));
+                airPos.setLon(trailObj.getDouble("lng"));
+                airPos.setAlltitude(trailObj.getDouble("alt"));
+                airPosList.add(airPos);
+            }
+            air.setRoute(airPosList);
+        }
+        return air;
+
+    }
+    
+    /**
+     * 获取航班详细信息
+     *
+     * @param info
+     * @throws IOException
+     */
+    public AirPlane getAirDetailInfo2(AirDynamic info) throws IOException {
+        Map<String, Object> params = new HashMap<>();
+        params.put("flight", info.getF());
+        params.put("altitude", info.getHigh());
+        params.put("equip_hint", info.getXingh());
+        String result = HttpProxy.http_get_json(URLs.air_detail_url, params);
+        // 没有数据
+        if (!StringUtils.hasText(result)) { return null; }
         JSONObject obj = JSON.parseObject(result);
         AirPlane air = new AirPlane();
         if (obj.containsKey("flight")) {

+ 8 - 2
jdc/dataChange/trunk/src/main/java/com/jsjty/jdc/data/util/URLs.java

@@ -5,6 +5,11 @@ package com.jsjty.jdc.data.util;
  */
 public class URLs {
     /**
+     * 旧:bma.data.fr24.com<br>
+     * 新:data-live.flightradar24.com
+     */
+    private final static String fr24 = "http://data-live.flightradar24.com";
+    /**
      * AIS数据请求地址
      */
     public final static String ais_url = "http://114.251.210.32/msaapi";
@@ -17,13 +22,14 @@ public class URLs {
     /**
      * 请求航班信息数据
      */
-    public final static String air_url = "http://bma.data.fr24.com/zones/fcgi/feed.js"; //
+    //    https://data-live.flightradar24.com/zones/fcgi/feed.js
+    public final static String air_url = fr24 + "/zones/fcgi/feed.js"; //
 
     /**
      * 请求航班详细信息
      */
 
-    public final static String air_detail_url = "http://bma.data.fr24.com/_external/planedata_json.1.4.php"; //请求航班详细信息
+    public final static String air_detail_url = fr24 + "/clickhandler/"; //请求航班详细信息
 
     /**
      * 机场航班动态进港数据

+ 11 - 1
jdc/dataChange/trunk/src/test/java/com/yuanxd/trust/web/service/OrgServiceTest.java

@@ -1,11 +1,21 @@
 package com.yuanxd.trust.web.service;
 
+import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 
+import com.jsjty.jdc.data.service.impl.WeatherFetchService;
 import com.yuanxd.trust.JUnit4ClassRunner;
 
 @RunWith(JUnit4ClassRunner.class)
 //配置了@ContextConfiguration注解并使用该注解的locations属性指明spring和配置文件之后,
 @ContextConfiguration(locations = { "classpath:spring/spring.xml", "classpath:spring/spring-mybatis.xml" })
-public class OrgServiceTest {}
+public class OrgServiceTest {
+    @Autowired
+    private WeatherFetchService weatherFetchService;
+    @Test
+    public void doFetch() {
+        weatherFetchService.doFetch();
+    }
+}