public FeiYingFlight getFlightMsg2(string fromCityCode, string toCityCode, string airlineCode, string toTime) { string sql = "select * from FY_AiFei_Ticket2 where fromCity='" + fromCityCode.Trim() + "' and toCity='" + toCityCode.Trim() + "' and airlineCode='" + airlineCode.Trim() + "'"; DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, sql); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { int i = new Random().Next(0, ds.Tables[0].Rows.Count - 1); DataRow dr = ds.Tables[0].Rows[i]; FeiYingFlight fyf = new FeiYingFlight(); fyf.airlineCode = dr["airlineCode"].ToString(); fyf.flightNum = dr["flightNum"].ToString(); fyf.fromAirport = dr["fromAirport"].ToString(); fyf.toAirport = dr["toAirport"].ToString(); fyf.toTime = dr["toTime"].ToString(); fyf.startTime = dr["startTime"].ToString(); fyf.arriveTime = dr["arriveTime"].ToString(); fyf.airplan = dr["airplan"].ToString(); //fyf.isRelay = dr["isRelay"].ToString(); fyf.relayPort = dr["relayPort"].ToString(); return(fyf); } return(null); }
private string printf_relay(FeiYingFlight toFlight, FeiYingFlight backFlight) { if (string.IsNullOrEmpty(toFlight.relayPort.Trim())) { return("直飞"); } return("中转"); }
protected string printf_flights(FeiYingFlight toFlight, FeiYingFlight backFlight, string type, string ticketType) { if (type.Equals("from")) { string str = ""; if (toFlight != null) { str += "<li class='lititle1'>" + ReadXmlHelper.GetAirPortNameByCode(from) + "</li><li class='lititle2'>起飞:" + convertDate(totime, toFlight.startTime) + "</li>"; } if (backFlight != null) { str += "<li class='lititle1'>" + ReadXmlHelper.GetAirPortNameByCode(to) + "</li><li class='lititle2'>起飞:" + convertDate(fromtime, backFlight.startTime) + "</li>"; } return(str); } else if (type.Equals("to")) { string str = ""; if (toFlight != null) { str += "<li class='lititle1'>" + ReadXmlHelper.GetAirPortNameByCode(to) + "</li><li class='lititle2'>到达:" + convertDate(totime, toFlight.startTime, toFlight.arriveTime) + "</li>"; } if (backFlight != null) { str += "<li class='lititle1'>" + ReadXmlHelper.GetAirPortNameByCode(from) + "</li><li class='lititle2'>到达:" + convertDate(fromtime, backFlight.startTime, backFlight.arriveTime) + "</li>"; } return(str); } else if (type.Equals("line")) { string str = ""; if (toFlight != null) { str += "<li class='lititle1'><img src='/images/sgo.gif'/>→</li><li class='lititle2'> </li>"; } if (backFlight != null) { str += "<li class='lititle1'><img src='/images/sback.gif'/>→</li><li class='lititle2'> </li>"; } return(str); } return(""); }
protected void Page_Load(object sender, EventArgs e) { from = Request.QueryString["from"]; to = Request.QueryString["to"]; airline = Request.QueryString["airline"]; AiFeiService afs = new AiFeiService(); FeiYingFlight flight = afs.getFlightMsg2(from, to, airline, string.Empty); //没有数据 if (flight == null) { Response.Write("false"); Response.End(); return; } Response.Write(flight.airplan); Response.End(); }
protected void GetAiFeiTickets() { //获得页面参数 string dpt = ""; string arr = ""; string toTime = ""; string reTime = ""; string cate = ""; //出发城市 if (fromCity.SelectedValue != "" && fromCity.SelectedValue != "0") { //获得出发城市三字码 string cityCodeSql = "select cityCode from FY_FromCity where fId='" + fromCity.SelectedValue + "'"; DataSet dsCityCode = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, cityCodeSql); if (dsCityCode != null) { dpt = dsCityCode.Tables[0].Rows[0]["cityCode"].ToString(); } } else { return; } //目的城市 if (txtSearch_tocity.Value.Trim() != "") { //获得目的城市三字码 arr = txtSearch_tocity.Value.Trim().Substring(0, 3); } else { return; } //获得出发时间 if (fromtripDate_more.Value.Trim() != "") { toTime = fromtripDate_more.Value.Trim().Replace("-", ""); } else { return; } //获得到达时间 if (totripDate_more.Value.Trim() != "") { reTime = totripDate_more.Value.Trim().Replace("-", ""); } else { return; } //获得客票类型 if (cateSelect.Value.Trim() != "") { cate = cateSelect.Value.Trim(); } else { return; } //请求客票 AiFeiService aifeiService = new AiFeiService(); ArrayList data = aifeiService.GlobalTicket(dpt, arr, toTime, reTime, cate); ArrayList tickets = new ArrayList(); //排序爱飞机票 foreach (AiFeiTicketEntity orderTicket in data) { //过滤日期 DateTime dt = Convert.ToDateTime(orderTicket.totripDate.Substring(0, 4) + "-" + orderTicket.totripDate.Substring(4, 2) + "-" + orderTicket.totripDate.Substring(6, 2)); if ((dt - DateTime.Now).Days < 0) { continue; } //获取中转 FeiYingFlight toFlight = aifeiService.getFlightMsg2(orderTicket.fromCity, orderTicket.toCity, orderTicket.airlineCode, ""); if (toFlight != null) { if (string.IsNullOrEmpty(toFlight.relayPort)) { orderTicket.relayPort = "直飞"; } else { orderTicket.relayPort = ReadXmlHelper.GetAirPortNameByCode(toFlight.relayPort); } } if (tickets.Count == 0) { tickets.Add(orderTicket); } else { for (int i = 0; i < tickets.Count; i++) { AiFeiTicketEntity aft = (AiFeiTicketEntity)tickets[i]; if (tickets.Count <= i + 1) { tickets.Add(orderTicket); break; } else { AiFeiTicketEntity next = (AiFeiTicketEntity)tickets[i + 1]; if (Convert.ToDecimal(orderTicket.ticketPrice) > Convert.ToDecimal(aft.ticketPrice) && Convert.ToDecimal(orderTicket.ticketPrice) <= Convert.ToDecimal(next.ticketPrice)) { tickets.Insert(i + 1, orderTicket); break; } } } } } this.GetData = tickets; rptshopnews.DataSource = tickets; rptshopnews.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { from = Request.QueryString["from"]; to = Request.QueryString["to"]; string airline = Request.QueryString["airline"]; totime = Request.QueryString["totime"]; fromtime = Request.QueryString["fromtime"]; string ticketType = Request.QueryString["ticketType"];//机票类型 单程、往返 AiFeiService afs = new AiFeiService(); //清除过期记录 afs.clearTimeOutLogs(from, to, airline); if (ticketType != null && ticketType.Equals("1")) { //往返 FeiYingFlight toFlight = afs.getFlightMsg2(from, to, airline, totime); FeiYingFlight backFlight = afs.getFlightMsg2(to, from, airline, fromtime); //System.Threading.AutoResetEvent resetEvent = new System.Threading.AutoResetEvent(false); //AiFeiService.GlobalFlight2Handler d1 = new AiFeiService.GlobalFlight2Handler(afs.GlobalFlight2); //AiFeiService.GlobalFlight2Handler d2 = new AiFeiService.GlobalFlight2Handler(afs.GlobalFlight2); //IAsyncResult iar1 = null, iar2 = null; //bool searchto = false, searchback = false; //AsyncCallback back1 = delegate(IAsyncResult iar) //{ // toFlight = d1.EndInvoke(iar1); // if (!searchback || (iar2 != null && iar2.IsCompleted)) // resetEvent.Set(); //}; //AsyncCallback back2 = delegate(IAsyncResult iar) //{ // backFlight = d2.EndInvoke(iar2); // if (!searchto || (iar1 != null && iar1.IsCompleted)) // resetEvent.Set(); //}; //if (toFlight == null) //{ // searchto = true; // iar1 = d1.BeginInvoke(from, to, airline, "Y", 1, totime, back1, null); //} //if (backFlight == null) //{ // searchback = true; // iar2 = d2.BeginInvoke(to, from, airline, "Y", 1, fromtime, back2, null); //} //if (toFlight == null || backFlight == null) //{ // if (resetEvent.WaitOne(30000, true)) // resetEvent.Close(); //} ////远程 //if (toFlight == null) //{ // //请求远程 // System.Threading.Thread thread = new System.Threading.Thread((System.Threading.ThreadStart)delegate // { // toFlight = afs.GlobalFlight2(from, to, airline, "Y", 1, totime); // }); // thread.IsBackground = true; // thread.Start(); //} //if (backFlight == null) //{ // //请求远程 // System.Threading.Thread thread = new System.Threading.Thread((System.Threading.ThreadStart)delegate // { // backFlight = afs.GlobalFlight2(to, from, airline, "Y", 1, fromtime); // }); // thread.IsBackground = true; // thread.Start(); //} if (toFlight == null) { this.InsertAiFeiLogs(from, to, airline, totime); } if (backFlight == null) { this.InsertAiFeiLogs(to, from, airline, fromtime); } //没有数据 if (toFlight == null || backFlight == null) { Response.Write("false"); Response.End(); return; } StringBuilder str = new StringBuilder(); str.Append("<div>"); str.Append("<span class=\"aifeifrom\">" + printf_flights(toFlight, backFlight, "from", ticketType) + "</span>"); str.Append("<span class=\"aifeito\">" + printf_flights(toFlight, backFlight, "to", ticketType) + "</span>"); str.Append("<span class=\"aifeiline\">" + printf_flights(toFlight, backFlight, "line", ticketType) + "</span>"); str.Append("<span class=\"relay\">" + printf_relay(toFlight, backFlight) + "</span>"); if (string.IsNullOrEmpty(toFlight.airplan) && string.IsNullOrEmpty(backFlight.airplan)) { str.Append("<span class=\"airplan\"></span>"); } else if (!string.IsNullOrEmpty(toFlight.airplan) && !string.IsNullOrEmpty(backFlight.airplan)) { str.Append("<span class=\"airplan\">" + (toFlight.airplan + "").Trim() + " / " + (backFlight.airplan + "").Trim() + "</span>"); } else { str.Append("<span class=\"airplan\">" + (toFlight.airplan + "").Trim() + (backFlight.airplan + "").Trim() + "</span>"); } str.Append("</div>"); Response.Write(str.ToString()); Response.End(); } else if (ticketType != null && ticketType.Equals("0")) { FeiYingFlight toFlight = afs.getFlightMsg2(from, to, airline, totime); ////远程 //if (toFlight == null) //{ // //请求远程 // System.Threading.Thread thread = new System.Threading.Thread((System.Threading.ThreadStart)delegate // { // toFlight = afs.GlobalFlight2(from, to, airline, "Y", 1, totime); // }); // thread.IsBackground = true; // thread.Start(); //} //没有数据 if (toFlight == null) { this.InsertAiFeiLogs(from, to, airline, totime); Response.Write("false"); Response.End(); return; } StringBuilder str = new StringBuilder(); str.Append("<div>"); str.Append("<span class=\"aifeifrom\">" + printf_flights(toFlight, null, "from", ticketType) + "</span>"); str.Append("<span class=\"aifeito\">" + printf_flights(toFlight, null, "to", ticketType) + "</span>"); str.Append("<span class=\"aifeiline\">" + printf_flights(toFlight, null, "line", ticketType) + "</span>"); str.Append("<span class=\"relay\">" + printf_relay(toFlight, null) + "</span>"); str.Append("<span class=\"airplan\">" + (toFlight.airplan + "").Trim() + "</span>"); str.Append("</div>"); Response.Write(str.ToString()); Response.End(); } }
/// <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); }