Exemple #1
0
    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);
    }
Exemple #2
0
    private string printf_relay(FeiYingFlight toFlight, FeiYingFlight backFlight)
    {
        if (string.IsNullOrEmpty(toFlight.relayPort.Trim()))
        {
            return("直飞");
        }

        return("中转");
    }
Exemple #3
0
    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'/>&rarr;</li><li class='lititle2'>&nbsp;</li>";
            }

            if (backFlight != null)
            {
                str += "<li class='lititle1'><img src='/images/sback.gif'/>&rarr;</li><li class='lititle2'>&nbsp;</li>";
            }
            return(str);
        }
        return("");
    }
Exemple #4
0
    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();
    }
Exemple #6
0
    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();
        }
    }
Exemple #7
0
    /// <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);
    }