public ArrayList getFlightMsg(string fromCityCode, string toCityCode, string airlineCode, string toTime) { string sql = "select top 1 id from FY_AiFei_Ticket where fromCity='" + fromCityCode.Trim() + "' and toCity='" + toCityCode.Trim() + "' and airline='" + airlineCode.Trim() + "'"; DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, sql); ArrayList flights = new ArrayList(); ArrayList flight = new ArrayList(); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { string ticketId = ds.Tables[0].Rows[0]["id"].ToString(); sql = "select * from FY_AiFei_Flights where ticketid='" + ticketId + "' order by num asc"; DataSet flightDS = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, sql); if (flightDS != null && flightDS.Tables.Count > 0 && flightDS.Tables[0].Rows.Count > 0) { foreach (DataRow dr in flightDS.Tables[0].Rows) { AiFeiFlightEntity affe = new AiFeiFlightEntity(); affe.airlineCode = dr["airline"].ToString(); affe.flightNum = dr["flightNum"].ToString(); affe.fromAirport = dr["fromAirport"].ToString(); affe.toAirport = dr["toAirport"].ToString(); //起降时间需要转化 string tmpToTime = dr["toTime"].ToString().Trim(); string tmpFromTime = dr["arriveTime"].ToString().Trim(); DateTime toDT = Convert.ToDateTime(tmpToTime.Substring(0, 4) + "-" + tmpToTime.Substring(4, 2) + "-" + tmpToTime.Substring(6, 2) + " " + tmpToTime.Substring(8, 2) + ":" + tmpToTime.Substring(10, 2)); DateTime fromDT = Convert.ToDateTime(tmpFromTime.Substring(0, 4) + "-" + tmpFromTime.Substring(4, 2) + "-" + tmpFromTime.Substring(6, 2) + " " + tmpFromTime.Substring(8, 2) + ":" + tmpFromTime.Substring(10, 2)); DateTime selectDT = Convert.ToDateTime(toTime.Substring(0, 4) + "-" + toTime.Substring(4, 2) + "-" + toTime.Substring(6, 2)); TimeSpan ts = selectDT - toDT; toDT = toDT.AddDays(ts.Days); fromDT = fromDT.AddDays(ts.Days); affe.toTime = toDT.ToString("yyyy-MM-dd HH:mm:ss"); affe.arriveTime = fromDT.ToString("yyyy-MM-dd HH:mm:ss"); affe.airplan = dr["airplan"].ToString(); affe.seats = Convert.ToInt32(dr["seats"].ToString()); affe.isRelay = 0; flight.Add(affe); } } flights.Add(flight); return(flights); } return(null); }
/// <summary> /// 实时航班查询接口 /// </summary> public FeiYingFlight GlobalFlight2(string fromCode, string toCode, string airLineCode, string cls, int num, string goTime) { //string url = aifeServerUrl + globalFlightUrl + _account + cls + "/" + fromCode + "/" + toCode + "/" + airLineCode + "/" + num + "/" + goTime; string url = "http://data.faredata.cn/ticketWebService.do?method=globalFlight&account=fyjp&cls=Y&fromCode=" + fromCode + "&toCode=" + toCode + "&airLineCode=" + airLineCode + "&mnum=1&goTime=" + goTime; //string url = "http://*****:*****@'); //舱位分隔符 @ //只用一个舱位数据 foreach (string flightText in flightArray) { ArrayList flight = new ArrayList(); //转机分割符 * string[] relayArray = flightText.Split('*'); int flightNum = 1; foreach (string relayText in relayArray) { string[] flightOptions = relayText.Split('^'); if (flightOptions.Length == 9) { AiFeiFlightEntity affe = new AiFeiFlightEntity(); affe.airlineCode = flightOptions[0]; affe.flightNum = flightOptions[1]; affe.fromAirport = flightOptions[2]; affe.toAirport = flightOptions[3]; affe.toTime = flightOptions[4]; affe.arriveTime = flightOptions[5]; affe.airplan = flightOptions[6]; affe.seats = Convert.ToInt32(flightOptions[7]); affe.isRelay = Convert.ToInt32(flightOptions[8]); flight.Add(affe); } } if (flight.Count > 0) { AiFeiFlightEntity affe1 = (AiFeiFlightEntity)flight[0]; AiFeiFlightEntity affe2 = (AiFeiFlightEntity)flight[flight.Count - 1]; FeiYingFlight fyf = new FeiYingFlight(); fyf.airlineCode = affe1.airlineCode; fyf.flightNum = affe1.flightNum; fyf.fromAirport = affe1.fromAirport; fyf.toAirport = affe2.toAirport; fyf.toTime = goTime; fyf.startTime = affe1.toTime; fyf.arriveTime = affe2.arriveTime; if (flight.Count > 1) { fyf.isRelay = 1; AiFeiFlightEntity affeRelay = (AiFeiFlightEntity)flight[1]; fyf.relayPort = affeRelay.fromAirport; } else { fyf.isRelay = 0; } string sql = "insert into FY_Aifei_Ticket2 (fromCity,toCity,airlineCode,toTime,arriveTime,startTime,fromAirport,toAirport,isrelay,flightNum,relayPort,airplan) values ('" + fromCode + "','" + toCode + "','" + airLineCode + "','" + goTime + "','" + affe2.arriveTime + "','" + affe1.toTime + "','" + affe1.fromAirport + "','" + affe2.toAirport + "','" + fyf.isRelay + "','" + affe1.flightNum + "','" + fyf.relayPort + "','" + affe1.airplan + "')"; DataSet dsTicket = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, sql); return(fyf); } return(null); } }catch (Exception e) { throw; //return null; } return(null); }
/// <summary> /// 实时航班查询接口 /// </summary> public ArrayList GlobalFlight(string fromCode, string toCode, string airLineCode, string cls, int num, string goTime) { //string url = aifeServerUrl + globalFlightUrl + _account + cls + "/" + fromCode + "/" + toCode + "/" + airLineCode + "/" + num + "/" + goTime; string url = "http://data.faredata.cn/ticketWebService.do?method=globalFlight&account=fyjp&cls=Y&fromCode=" + fromCode + "&toCode=" + toCode + "&airLineCode=" + airLineCode + "&mnum=1&goTime=" + goTime; ArrayList flgihts = new ArrayList(); try{ WebRequest request = WebRequest.Create(url); request.Timeout = 15000; WebResponse response = request.GetResponse(); string responseText = new System.IO.StreamReader(response.GetResponseStream()).ReadToEnd(); //解析返回字符串 string[] flightArray = responseText.Trim().Split('@'); //舱位分隔符 @ //只用一个舱位数据 foreach (string flightText in flightArray) { //cache ticket 插入ticket信息 string ticketId = null; string sql = "insert into FY_Aifei_Ticket (fromCity,toCity,airline,fromTime) values ('" + fromCode + "','" + toCode + "','" + airLineCode + "','" + goTime + "') select ID=@@identity"; DataSet dsTicket = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, sql); if (dsTicket != null) { ticketId = dsTicket.Tables[0].Rows[0]["ID"].ToString(); } ArrayList flight = new ArrayList(); //转机分割符 * string[] relayArray = flightText.Split('*'); int flightNum = 1; foreach (string relayText in relayArray) { string[] flightOptions = relayText.Split('^'); if (flightOptions.Length == 9) { AiFeiFlightEntity affe = new AiFeiFlightEntity(); affe.airlineCode = flightOptions[0]; affe.flightNum = flightOptions[1]; affe.fromAirport = flightOptions[2]; affe.toAirport = flightOptions[3]; affe.toTime = flightOptions[4]; affe.arriveTime = flightOptions[5]; affe.airplan = flightOptions[6]; affe.seats = Convert.ToInt32(flightOptions[7]); affe.isRelay = Convert.ToInt32(flightOptions[8]); //cache 舱位信息 if (ticketId != null && !ticketId.Trim().Equals("") && !ticketId.Trim().Equals("0")) { sql = "insert into FY_Aifei_Flights (airline,flightNum,toAirport,fromAirport,toTime,arriveTime,airplan,seats,num,ticketid) values ('" + affe.airlineCode + "','" + affe.flightNum + "','" + affe.toAirport + "','" + affe.fromAirport + "','" + affe.toTime + "','" + affe.arriveTime + "','" + affe.airplan + "','" + affe.seats + "','" + flightNum + "','" + ticketId + "')"; SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, sql); } flightNum++; flight.Add(affe); } } flgihts.Add(flight); return(flgihts); } }catch (Exception e) { return(flgihts); } return(flgihts); }