Exemple #1
0
    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);
    }
Exemple #2
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);
    }
Exemple #3
0
    /// <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);
    }