Example #1
0
        public List <PbProject.Model.Tb_Ticket_Policy> GetPolicy()
        {
            List <PbProject.Model.Tb_Ticket_Policy> mPolicyList = new List <Tb_Ticket_Policy>();

            try
            {
                List <PbProject.Model.Tb_Ticket_SkyWay> SkyList = new PbProject.Logic.Order.Tb_Ticket_SkyWayBLL().GetSkyWayListBySQLWhere(" OrderId='" + _order.OrderId + "'");
                //if (_QXValue.Contains("|9|") && SkyList.Count < 2)
                //{
                string StartDate  = SkyList[0].FromDate.ToShortDateString();
                string SecondDate = SkyList[0].FromDate.ToShortDateString();
                List <PbProject.Model.Tb_Ticket_Passenger> passengerList = new PbProject.Logic.Order.Tb_Ticket_PassengerBLL().GetPasListBySQLWhere(" OrderId='" + _order.OrderId + "'");

                string  PnrInfo = "O|P|" + _order.PNR + "^F^" + _order.BigCode + "|" + SkyList[0].FromDate.ToShortDateString() + "|" + SkyList[0].FromCityCode + "|" + SkyList[0].FromCityName + "|" + SkyList[0].ToCityCode + "|" + SkyList[0].ToCityName + "|" + SkyList[0].CarryCode + SkyList[0].FlightCode + "^N||" + SkyList[0].FromDate.ToShortTimeString() + "|" + SkyList[0].ToDate.ToShortTimeString() + "|" + SkyList[0].Space + "|" + SkyList[0].Discount + "||" + _order.PMFee / _order.PassengerName.Split('/').Length + "|" + (SkyList[0].ABFee + SkyList[0].FuelFee) + "|" + _order.PassengerNumber + "|" + _order.PassengerName.Replace("/", "@");
                DataSet dsToday = new DataSet();
                string  sss     = "";
                try
                {
                    sss = _todayService.GetRateListByPNR(_todayAccout, _order.PNR, PnrInfo);
                    StringReader  sr  = new StringReader(sss);
                    XmlTextReader xtr = new XmlTextReader(sr);
                    dsToday = new DataSet();
                    dsToday.ReadXml(xtr);
                }
                catch (Exception)
                {
                    //errorDataToday = "1";
                    //OnError("WebService异常,重新调用", "PiaoBao.BLLLogic.Policy.InterFacePol.GetTodayPol");
                    //dsToday = wsvcToday.GetRateListByPNR(Company.A63, PnrCode, PnrInfo);
                    sss = _todayService.GetRateListByPNR(_todayAccout, _order.PNR, PnrInfo);
                    StringReader  sr  = new StringReader(sss);
                    XmlTextReader xtr = new XmlTextReader(sr);
                    dsToday = new DataSet();
                    dsToday.ReadXml(xtr);
                }
                if (dsToday.Tables.Count > 1)
                {
                    if (dsToday.Tables[1].Rows.Count > 0)
                    {
                        if (dsToday.Tables[1].TableName == "Response")
                        {
                            DateTime dt1;
                            DateTime dt2;
                            if (DateTime.TryParse(StartDate.Replace("/", "-"), out dt1) &&
                                DateTime.TryParse(SecondDate.Replace("/", "-"), out dt2)
                                )
                            {
                                string sqlwhere = "Sdate<='" + dt1.ToString("yyyy-MM-dd") + " 00:00:00' and Edate>='" + dt2.ToString("yyyy-MM-dd") + " 23:59:59'";
                                //  返回正常
                                mPolicyList = MergerTodayDT(dsToday.Tables[1].Select(sqlwhere), _mTopcom, SkyList[0].CarryCode, SkyList[0].FromCityCode, SkyList[0].ToCityCode);
                                //UpdateTodayInterFcae(dsToday);
                            }
                        }
                    }
                }
                //}
            }
            catch (Exception ex)
            {
                //errorDataToday = "1";
                //OnError("整体线程异常," + ex.ToString(), "PiaoBao.BLLLogic.Policy.InterFacePol.GetTodayPol");
            }
            return(mPolicyList);
        }
        /// <summary>
        /// 异步通知出票票号
        /// </summary>
        /// <param name="order">订单 model</param>
        /// <returns></returns>
        public bool NotifyTicketNo(Tb_Ticket_Order order)
        {
            bool bResult = false;

            try
            {
                string orderId = order.OrderId;

                string logMsg = "";

                #region 查询订单,并通知

                //Tb_Ticket_Order order = new PbProject.Logic.Order.Tb_Ticket_OrderBLL().GetTicketOrderByOrderId(orderId);

                if (order.OrderSourceType == 4)   // "接口订单"
                {
                    //  查询通知地址
                    string notifyUrl = "";

                    #region 查询通知地址


                    //IList<User_Company> companyList = (new User_CompanyService()).SelectById(order.OwnerCpyNo);
                    //if (companyList != null && companyList.Count > 0)
                    // notifyUrl = companyList[0].A82;

                    notifyUrl = "";

                    #endregion

                    if (!string.IsNullOrEmpty(notifyUrl))
                    {
                        IList <Tb_Ticket_Passenger> passengerList = new PbProject.Logic.Order.Tb_Ticket_PassengerBLL().GetPasListByOrderID(order.OrderId);

                        if (passengerList != null && passengerList.Count > 0)
                        {
                            string sign                   = "";
                            string returnOrderId          = "";
                            string returnTicketInfomation = "";
                            returnOrderId = orderId;
                            foreach (Tb_Ticket_Passenger dataItem in passengerList)
                            {
                                //乘机人^证件号^票号|乘机人^证件号^票号
                                returnTicketInfomation += string.Format("{0}^{1}^{2}|", dataItem.PassengerName, dataItem.Cid, dataItem.TicketNumber);
                            }
                            returnTicketInfomation = returnTicketInfomation.Length > 0 ? returnTicketInfomation.Substring(0, returnTicketInfomation.Length - 1) : returnTicketInfomation;
                            sign       = GetMD5Value(string.Format("{0}{1}F8653E70-D165-8661-C0EB-E645-11F2CD4E", returnOrderId, returnTicketInfomation));
                            notifyUrl += string.Format("?OrderId={0}&TicketInfomation={1}&Sign={2}", returnOrderId, HttpUtility.UrlEncode(returnTicketInfomation), sign);
                            string getResult = GetHttpDataByGet(notifyUrl, Encoding.UTF8);
                            if (string.IsNullOrEmpty(getResult))
                            {
                                logMsg = string.Format("通知失败,通知地址:{0}", notifyUrl);
                            }
                            else
                            {
                                logMsg  = string.Format("通知成功,通知地址:{0}", notifyUrl);
                                bResult = true;
                            }
                        }
                        else
                        {
                            logMsg = "通知失败,订单无关联乘客信息。";
                        }
                    }
                    else
                    {
                        logMsg = "通知失败,未找到订单所在的公司的通知地址";
                    }
                }


                #endregion

                #region 记录日志

                if (!string.IsNullOrEmpty(logMsg))
                {
                    logMsg = string.Format("订单号:{0};信息:{1}", orderId, logMsg);
                    RecordLog(logMsg);
                }

                #endregion
            }
            catch (Exception)
            {
                throw;
            }

            return(bResult);
        }