Explorar o código

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

ld_zhoutl %!s(int64=9) %!d(string=hai) anos
pai
achega
d1fcbe416a

+ 28 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/HttpMain.java

@@ -4,6 +4,7 @@ import java.io.UnsupportedEncodingException;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -261,4 +262,31 @@ public class HttpMain extends HttpProxy {
         }
         return air;
     }
+    
+    /**
+     * 根据航班号查询航班动态
+     * 
+     * @param hbh
+     * @return
+     */
+    public com.alibaba.fastjson.JSONObject searchHbxx2(String hbh, String date) {
+    	String url = "https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?"
+    			+ "flightno=" + hbh
+    			+ "&date=" + date
+    			+ "&appid=4047"
+    			+ "&_="+new Date().getTime();
+        RequestBean req = new RequestBean(HttpResultType.STRING);
+        req.setCharset("gb2312");
+        req.setUrl(url);
+        req.setMethod(HttpConsts.METHOD_GET);
+        ResponseBean respBean = HttpUtil.getInstance().execute(req);
+        try {
+        	String result = respBean.getStringResult();
+        	com.alibaba.fastjson.JSONObject obj = com.alibaba.fastjson.JSONObject.parseObject(result);
+            return obj;
+        }
+        catch (Exception e) {
+        }
+        return null;
+    }
 }

+ 26 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/ctl/AirCtl.java

@@ -102,6 +102,32 @@ public class AirCtl {
         return jsonObj;
     }
 
+    /**
+     * 根据航班号查询航班信息
+     * 
+     * @param hbh
+     * @return
+     */
+    @RequestMapping("/searchHbxx2")
+    @ResponseBody
+    public JSONObject searchHbxx2(String hbh, String date) {
+        JSONObject jsonObj = httpMain.searchHbxx2(hbh, date);
+        if (null != jsonObj && jsonObj.getJSONObject("data")!=null) {
+            String iata3 = jsonObj.getJSONObject("data").getString("planeType");
+            // info[0]["机型"]
+            if (StringUtils.isNotEmpty(iata3)) {
+                Map<String, String> mapParam = new HashMap<String, String>();
+                mapParam.put("iata3", iata3);
+                List<HkgsJx> listHkgsJx = airService.findHkgsJxByIta(mapParam);
+                if (null != listHkgsJx && listHkgsJx.size() > 0) {
+                    jsonObj.put("itaFlg", "Y");
+                    jsonObj.put("iata4", listHkgsJx.get(0).getIata4());
+                }
+            }
+        }
+        return jsonObj;
+    }
+
     @RequestMapping("/airdetail")
     @ResponseBody
     public TairDynamicVo airDetail(String hbh) {

+ 47 - 44
jdc/jdcweb/trunk/src/main/webapp/static/xt/js/air/flightInfo.js

@@ -16,7 +16,12 @@ $.formatString = function (str) {
 function getDate(){
     var mydate = new Date();
     var str = "" + mydate.getFullYear() + "-";
-    str += (mydate.getMonth()+1) + "-";
+    var month = mydate.getMonth()+1;
+    var montStr = "";
+    if(month <10) {
+    	montStr = "0"+month;
+    }
+    str += montStr + "-";
     str += mydate.getDate() + "";
     return str;
 }
@@ -26,23 +31,11 @@ function getDate(){
  */
 $(function(){
     // 初始化航班信息
-    //initHbxx();
-	var url= "http://comp.umetrip.com/umeweb/tb/fsc.do?flightNo="+hbh+"&date="+getDate();
-	$("#hbdtIframe").attr("src", url);
+    initHbxx(hbh,getDate());
 	$("#flightNumber").val(hbh);
 	$("#date").val(getDate());
-//	var oFrm = document.getElementById('hbdtIframe');
-//	oFrm.onload = oFrm.onreadystatechange = function() {
-//	     if (this.readyState && this.readyState != 'complete') return;
-//	     else {
-//	         onComplete();
-//	     }
-//	}
 })
 
-function onComplete() {
-}
-
 function searchHbxx() {
 	var flightNo = $("#flightNumber").val();
 	var date = $("#date").val();
@@ -52,28 +45,28 @@ function searchHbxx() {
 	if(date == "") {
 		date = getDate();
 	}
-	var url= "http://comp.umetrip.com/umeweb/tb/fsc.do?flightNo="+flightNo+"&date="+date;
-	$("#hbdtIframe").attr("src", url);
+    initHbxx(flightNo,date);
 }
 
 /**
  * 初始化航班信息
  */
-function initHbxx() {
+function initHbxx(phbh, pdate) {
     $.ajax({
-        url : basePath + "/searchHbxx?hbh="+hbh,
-        data : {"type":""},
+        url : basePath + "/searchHbxx2",
+        data : {"hbh":phbh,"date":pdate},
         success : function(result) {
-            if(result && result.dap.length>0) {
+        	console.info(result);
+            if(result && result.data) {
                 var hbhHtml = "航班号&nbsp;"+hbh;
                 var jxHtml = "";
                 if(result.itaFlg && result.itaFlg == "Y") {
                     jxHtml = "机型:&nbsp;<a href=\"#\" onclick=\"showHkgsJx('','"+result.iata4+"')\">"
-                        +result.info[0]["机型"]+"</a>";
+                        +result.data.planeType+"</a>";
                     jxHtml += "&nbsp;<a href=\"#\" onclick=\"showFjcwt('"+result.iata4+"')\">"
                     +"舱位图</a>";
                 } else {
-                    jxHtml = "机型:&nbsp;"+result.info[0]["机型"];
+                    jxHtml = "机型:&nbsp;"+result.data.planeType;
                 }
                 // 设置航班号信息
                 $("#hbh").html(hbhHtml);
@@ -99,48 +92,58 @@ function initHbxx() {
  * @param result
  */
 function buildHtml(result) {
-    var dapArr = result.dap;
-    var arrArr = result.arr;
-    var infoArr = result.info;
+	var data = result.data;
+    var dapArr = data.cities;
     var detailInfoContent = "<div class=\"spaninfo\">{0}</div><br>";
     var detailDarkContent = "<div class=\"spandark\">{0}</div><br>";
     var detailContent = "<div class=\"spangray\">{0}</div><br>";
-    var detailGreenContent = "<div class=\"spangreen\">{0}</div><br>";
+    var detailGreenContent = "<div class=\"spangreen\" style=\"\">{0}</div><br>";
     var detailStart = "<div class=\"hbdetail\">";
     var detailEnd = "</div>";
-    for(var i=0;i<dapArr.length;i++) {
+    for(var i=0;i<dapArr.length-1;i++) {
         var dap = dapArr[i];
-        var arr = arrArr[i];
-        var info = infoArr[i];
+        var arr = dapArr[i+1];
         var content = "";
         content += detailStart;
-        content += $.formatString(detailDarkContent, "<b>"+"起飞机场:"+dap["起飞机场"]+"</b>");
-        content += $.formatString(detailGreenContent, "计划起飞时间:"+dap["计划起飞时间"]);
-        content += $.formatString(detailGreenContent, "实际起飞时间:"+dap["实际起飞时间"]);
-        content += $.formatString(detailContent, "天气:"+dap["天气"]);
-        content += $.formatString(detailContent, "温度:"+dap["温度"]);
-        content += $.formatString(detailContent, dap["能见度"]);
+        content += $.formatString(detailDarkContent, "<b>"+"起飞机场:"+dap["airport"]+"</b>");
+        content += $.formatString(detailGreenContent, "计划起飞时间:"+dap["planDptTime"]);
+        content += $.formatString(detailGreenContent, "实际起飞时间:"+dap["dptTime"]);
+        content += $.formatString(detailContent, "天气:"+getWeatherDesc(dap["weatherType"]));
+        content += $.formatString(detailContent, "温度:"+dap["temperature"]);
+        //content += $.formatString(detailContent, dap["能见度"]);
         content += detailEnd;
         
         content += detailStart;
-        content += $.formatString(detailInfoContent, info["航空公司"]);
-        content += $.formatString(detailInfoContent, "航班状态:"+info["航班状态"]);
-        content += $.formatString(detailInfoContent, info["历史准点率"]);
+        content += $.formatString(detailInfoContent, data["company"]);
+        content += $.formatString(detailInfoContent, "航班状态:"+data["flightStatus"]);
+        content += $.formatString(detailInfoContent, "准点率:"+data["onTimeRate"]);
         content += detailEnd;
 
         content += detailStart;
-        content += $.formatString(detailDarkContent, "<b>"+"到达机场:"+arr["到达机场"]+"</b>");
-        content += $.formatString(detailGreenContent, "计划到达时间:"+arr["计划到达时间"]);
-        content += $.formatString(detailGreenContent, "实际到达时间:"+arr["实际到达时间"]);
-        content += $.formatString(detailContent, "天气:"+arr["天气"]);
-        content += $.formatString(detailContent, "温度:"+arr["温度"]);
-        content += $.formatString(detailContent, arr["能见度"]);
+        content += $.formatString(detailDarkContent, "<b>"+"到达机场:"+arr["airport"]+"</b>");
+        content += $.formatString(detailGreenContent, "计划到达时间:"+arr["planArrTime"]);
+        content += $.formatString(detailGreenContent, "实际到达时间:"+arr["arrTime"]);
+        content += $.formatString(detailContent, "天气:"+getWeatherDesc(arr["weatherType"]));
+        content += $.formatString(detailContent, "温度:"+arr["temperature"]);
+        //content += $.formatString(detailContent, arr["能见度"]);
         content += detailEnd;
         $("#hbdiv"+i).html(content);
         $("#hbdiv"+i).css("display","block");
     }
 }
 
+function getWeatherDesc(type) {
+	var nameArr=["晴","晴","阴","阴","多云","多云","霾",
+	             "小雨","中雨","大雨","小雨","中雨","大雨","雷阵雨","雷电","雨夹雪","雷电","雷阵雨",
+	             "小雪","中雪","大雪","暴雪","台风","浮尘","扬沙","沙尘暴"]
+	if(type=="30") {
+		return "多云";
+	} else {
+		var num = parseInt(type) - 1;
+		return nameArr[num];
+	}
+}
+
 
 /**
  * 航空公司机型信息

+ 3 - 3
jdc/jdcweb/trunk/src/main/webapp/static/xt/js/sys/basic_info.js

@@ -1125,9 +1125,9 @@ function getPortInfo(obj, detail) {
  * @param airPortName
  */
 function showFlightDynamics(airPortName, city) {
-    if(city.length > 0) {
-        city = city.substring(0, city.length - 1);
-    }
+//    if(city.length > 0) {
+//        city = city.substring(0, city.length - 1);
+//    }
     layer.open({
         type: 2,
         title: airPortName + '--航班动态',