/// <summary> /// 解析XML获取多酒店查询返回的分页信息 /// </summary> /// <param name="HotelAvailRS">酒店查询返回节点</param> /// <param name="RespPageInfo">多酒店查询返回的分页信息实体</param> private void GetRespPageInfo(XElement HotelAvailRS, ref EyouSoft.Model.HotelStructure.RespPageInfo RespPageInfo) { if (RespPageInfo == null) { RespPageInfo = new EyouSoft.Model.HotelStructure.RespPageInfo(); } if (HotelAvailRS == null) { return; } XElement RespPage = HotelBI.Utils.GetXElement(HotelAvailRS, "RespPageInfo"); RespPageInfo.CurrentPage = EyouSoft.Common.Utility.GetInt(HotelBI.Utils.GetXElement(RespPage, "CurrentPage").Value.Trim()); RespPageInfo.TotalNum = EyouSoft.Common.Utility.GetInt(HotelBI.Utils.GetXElement(RespPage, "TotalNum").Value.Trim()); RespPageInfo.TotalPageNum = EyouSoft.Common.Utility.GetInt(HotelBI.Utils.GetXElement(RespPage, "TotalPageNum").Value.Trim()); }
/// <summary> /// 列表数据初始化 /// </summary> /// <param name="searchModel"></param> private void ListDataInit(EyouSoft.HotelBI.MultipleSeach searchModel) { EyouSoft.Model.HotelStructure.RespPageInfo pageInfoModel = null; EyouSoft.HotelBI.ErrorInfo errorModel = new EyouSoft.HotelBI.ErrorInfo(); IList <EyouSoft.Model.HotelStructure.HotelInfo> list = EyouSoft.BLL.HotelStructure.Hotel.CreateInstance().GetHotelList(searchModel, ref pageInfoModel, out errorModel); //如果接口查询异常 则提示 查询超时 if (errorModel == null || errorModel.ErrorType == EyouSoft.HotelBI.ErrorType.未知错误 || errorModel.ErrorType == EyouSoft.HotelBI.ErrorType.系统级错误) { //提示查询超时 this.lblMsg.Text = "查询超时,请重新查询或稍后再试."; //不显示分页控件 this.ExportPageInfo.Visible = false; return; } if (list != null) { if (list.Count > 0) { this.rpt_list.DataSource = list; this.rpt_list.DataBind(); if (pageInfoModel != null) { recordCount = pageInfoModel.TotalNum; } BindPage(); } else { //提示没有查询到酒店 this.lblMsg.Text = "未找到相关酒店,建议您修改相关查询条件后再查询."; this.ExportPageInfo.Visible = false; } } else { //提示没有查询到酒店 this.lblMsg.Text = "未找到相关酒店,建议您修改相关查询条件后再查询."; this.ExportPageInfo.Visible = false; } list = null; }
/// <summary> /// 将接口返回的XMl转换为平台酒店实体集合 /// </summary> /// <param name="InterfaceReturnXML">接口返回的XMl</param> /// <param name="RespPageInfo">酒店查询返回的分页信息</param> /// <returns>平台酒店实体集合</returns> private IList <EyouSoft.Model.HotelStructure.HotelInfo> GetHotelListByXML(string InterfaceReturnXML , ref EyouSoft.Model.HotelStructure.RespPageInfo RespPageInfo) { IList <EyouSoft.Model.HotelStructure.HotelInfo> list = null; if (string.IsNullOrEmpty(InterfaceReturnXML)) { return(list); } list = new List <EyouSoft.Model.HotelStructure.HotelInfo>(); XElement root = XElement.Parse(InterfaceReturnXML); XElement HotelAvailRS = HotelBI.Utils.GetXElement(root, "HotelAvailRS"); GetRespPageInfo(HotelAvailRS, ref RespPageInfo); XElement RoomStays = HotelBI.Utils.GetXElement(HotelAvailRS, "RoomStays"); IEnumerable <XElement> HotelRoots = HotelBI.Utils.GetXElements(RoomStays, "RoomStay"); if (HotelRoots == null || HotelRoots.Count() <= 0) { return(list); } EyouSoft.Model.HotelStructure.HotelInfo model = null; foreach (XElement tmpHotelRoot in HotelRoots) { model = new EyouSoft.Model.HotelStructure.HotelInfo(); model.InterfaceResponseXML = InterfaceReturnXML; AnalysisXML(tmpHotelRoot, ref model); list.Add(model); } return(list); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!CheckMasterGrant(YuYingPermission.酒店后台管理_首页板块数据管理)) { Utils.ResponseNoPermit(YuYingPermission.酒店后台管理_首页板块数据管理, true); return; } pageIndex = Utils.GetInt(Request.QueryString["page"], 1); int recordCount = 0; int dataType = Utils.GetInt(Request.QueryString["datatype"], -1); //数据类型 string InTime = Request.QueryString["CheckInDate"]; //入住日期 string OutTime = Request.QueryString["CheckOutDate"]; //离店日趋 string City = Utils.GetQueryStringValue("City"); //城市 int StarNum = Utils.GetInt(Request.QueryString["StarNum"], 0); //星级 int SelectType = Utils.GetInt(Request.QueryString["SelectType"], 0); //选择类型 string HotelName = Utils.GetQueryStringValue("HotelName"); // HotelShowType = Utils.GetInt(Request.QueryString["HotelShowType"], 0); if (!StringValidate.IsDateTime(InTime)) { Utils.ResponseMeg(false, "入住日期格式错误!"); return; } if (!StringValidate.IsDateTime(OutTime)) { Utils.ResponseMeg(false, "离店日期格式错误!"); return; } if (Convert.ToDateTime(InTime) > Convert.ToDateTime(OutTime)) { Utils.ResponseMeg(false, "入住日期和离店日期范围填写错误!"); return; } decimal?MinPrice = null; //价格范围 decimal?MaxPrice = null; string price = Utils.GetQueryStringValue("MinPrice"); if (!string.IsNullOrEmpty(price)) { if (StringValidate.IsDecimal(price)) { MinPrice = Convert.ToDecimal(price); } else { Utils.ResponseMeg(false, "价格下限输入错误!"); return; } } price = Utils.GetQueryStringValue("MaxPrice"); if (!string.IsNullOrEmpty(price)) { //price = price.ToString("F2"); if (StringValidate.IsDecimal(price)) { MaxPrice = Convert.ToDecimal(price); } else { Utils.ResponseMeg(false, "价格上限输入错误!"); return; } } //IList<EyouSoft.Model.HotelStructure.HotelInfo> list = EyouSoft.BLL.HotelStructure.HotelLocalInfo.CreateInstance().GetList(pageSize, pageIndex, ref recordCount, (EyouSoft.Model.HotelStructure.HotelShowType)Enum.Parse(typeof(EyouSoft.Model.HotelStructure.hotelshow), dataType)); EyouSoft.HotelBI.MultipleSeach searchModel = new EyouSoft.HotelBI.MultipleSeach(); searchModel.CheckInDate = InTime; searchModel.CheckOutDate = OutTime; searchModel.CityCode = City; searchModel.HotelChineseName = HotelName; searchModel.HotelRank = (EyouSoft.HotelBI.HotelRankEnum)StarNum; searchModel.IsPageView = true; searchModel.NumOfEachPage = 20; searchModel.PageNo = pageIndex; if (SelectType == 1) { // searchModel.Payment = "T"; //前台现付 } searchModel.PriceMaxRate = MaxPrice; searchModel.PriceMinRate = MinPrice; EyouSoft.Model.HotelStructure.RespPageInfo respPageInfo = null; EyouSoft.HotelBI.ErrorInfo errorModel = new EyouSoft.HotelBI.ErrorInfo(); IList <EyouSoft.Model.HotelStructure.HotelInfo> HotelList = EyouSoft.BLL.HotelStructure.Hotel.CreateInstance().GetHotelList(searchModel, ref respPageInfo, out errorModel); //如果接口查询异常 则提示 查询超时 if (errorModel == null || errorModel.ErrorType == EyouSoft.HotelBI.ErrorType.未知错误 || errorModel.ErrorType == EyouSoft.HotelBI.ErrorType.系统级错误) { Response.Clear(); Response.Write("查询超时,请重新查询或稍后再试."); Response.End(); return; } hidInterHotel.Value = JsonConvert.SerializeObject(HotelList); if (HotelList != null && HotelList.Count > 0) { this.ExporPageInfoSelect1.intPageSize = pageSize; this.ExporPageInfoSelect1.intRecordCount = respPageInfo != null?respPageInfo.TotalNum:recordCount; this.ExporPageInfoSelect1.CurrencyPage = pageIndex; this.ExporPageInfoSelect1.HrefType = Adpost.Common.ExporPage.HrefTypeEnum.JsHref; this.ExporPageInfoSelect1.AttributesEventAdd("onclick", "FirstPageDataAdd.LoadData(this,\"AjaxInterfaceData.aspx\");", 1); this.ExporPageInfoSelect1.AttributesEventAdd("onchange", "FirstPageDataAdd.LoadData(this,\"AjaxInterfaceData.aspx\");", 0); crptInterList.DataSource = HotelList; crptInterList.DataBind(); HotelList = null; } else { crptInterList.EmptyText = "<tr><td colspan=\"4\"><div style=\"text-align:center; margin-top:75px; margin-bottom:75px;\">暂无数据!</span></div></td></tr>"; ExporPageInfoSelect1.Visible = false; } searchModel = null; } }
/// <summary> /// 获取本地缓存酒店信息集合 /// </summary> /// <param name="searchInfo">查询信息</param> /// <param name="pageInfo">分页信息</param> /// <param name="errInfo">错误信息</param> /// <returns></returns> private IList <EyouSoft.Model.HotelStructure.HotelInfo> GetLocalCacheHotels(HotelBI.MultipleSeach searchInfo, EyouSoft.Model.HotelStructure.RespPageInfo pageInfo, out HotelBI.ErrorInfo errInfo) { errInfo = new EyouSoft.HotelBI.ErrorInfo(); IList <EyouSoft.Model.HotelStructure.HotelInfo> items = null; EyouSoft.Model.HotelStructure.MLocalHotelSearchInfo localSearchInfo = new EyouSoft.Model.HotelStructure.MLocalHotelSearchInfo(); localSearchInfo.BedType = searchInfo.BedType; localSearchInfo.CheckInDate = EyouSoft.Common.Utility.GetDateTime(searchInfo.CheckInDate); localSearchInfo.CheckOutDate = EyouSoft.Common.Utility.GetDateTime(searchInfo.CheckOutDate); localSearchInfo.CityCode = searchInfo.CityCode; localSearchInfo.Fitment = searchInfo.Fitment; localSearchInfo.HotelName = searchInfo.HotelChineseName; localSearchInfo.HotelNameEn = searchInfo.HotelEnglishName; //localSearchInfo.SpecialRoomName = searchInfo.RoomView; localSearchInfo.SpecialRoomName = searchInfo.RoomName; localSearchInfo.LandMarkName = searchInfo.LandMark; localSearchInfo.District = searchInfo.District; localSearchInfo.OrderBy = searchInfo.OrderBy; localSearchInfo.PriceMaxRate = searchInfo.PriceMaxRate; localSearchInfo.PriceMinRate = searchInfo.PriceMinRate; if (searchInfo.HotelRank != HotelRankEnum._00) { localSearchInfo.Rank = searchInfo.HotelRank.ToString().Replace("_", ""); } if (searchInfo.Internet != BoolEnum.none) { localSearchInfo.IsInternet = searchInfo.Internet == BoolEnum.Y ? true : false; } int pageSize = pageInfo.PageSize; int pageIndex = pageInfo.CurrentPage; int recordCount = pageInfo.TotalNum; items = dal.GetHotels(pageSize, pageIndex, ref recordCount, localSearchInfo); pageInfo.TotalNum = recordCount; return(items); }
/// <summary> /// 获取酒店集合 /// </summary> /// <param name="QueryModel">酒店查询实体</param> /// <param name="RespPageInfo">酒店查询返回的分页信息</param> /// <param name="ErrModel">请求错误信息</param> /// <returns>酒店实体集合</returns> public IList <EyouSoft.Model.HotelStructure.HotelInfo> GetHotelList(HotelBI.MultipleSeach QueryModel, ref EyouSoft.Model.HotelStructure.RespPageInfo RespPageInfo, out HotelBI.ErrorInfo ErrModel) { ErrModel = null; if (QueryModel == null) { return(null); } RespPageInfo = RespPageInfo ?? new EyouSoft.Model.HotelStructure.RespPageInfo() { CurrentPage = 1, PageSize = 10, TotalNum = 0, TotalPageNum = 0 }; RespPageInfo.CurrentPage = QueryModel.PageNo; RespPageInfo.PageSize = QueryModel.NumOfEachPage; return(this.GetLocalCacheHotels(QueryModel, RespPageInfo, out ErrModel)); //return GetHotelListByXML(GetResponseXML(QueryModel.MultiRequestXML, out ErrModel), ref RespPageInfo); }