public JsonResult SearchSpeciaPolicy(SearchSpecialPolicy search, int page, int rows) { PagedList <ResponseSpecialPolicy> pagedList = null; CommunicateManager.Invoke <IConsoLocalPolicyService>(p => { pagedList = p.FindSpeciaPolicyByPager(search, page, rows) ?? new PagedList <ResponseSpecialPolicy>(); }); return(Json(new { total = pagedList.Total, rows = pagedList.Rows }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 查询特价政策 /// </summary> /// <param name="search"></param> /// <param name="page"></param> /// <param name="rows"></param> /// <returns></returns> public PagedList <ResponseSpecialPolicy> FindSpeciaPolicyByPager(SearchSpecialPolicy search, int page, int rows) { var code = AuthManager.GetCurrentUser().Code; var query = this.localPolicyRepository.FindAllNoTracking(p => p.Code == code).OfType <SpecialPolicy>(); if (search == null) { search = new SearchSpecialPolicy(); } if (!string.IsNullOrEmpty(search.LocalPolicyType)) { query = query.Where(p => p.LocalPolicyType == search.LocalPolicyType); } if (!string.IsNullOrEmpty(search.FromCityCodes) && !string.IsNullOrEmpty(search.FromCityCodes.Trim())) { query = query.Where(p => p.FromCityCodes.Contains(search.FromCityCodes.Trim())); } if (!string.IsNullOrEmpty(search.ToCityCodes) && !string.IsNullOrEmpty(search.ToCityCodes.Trim())) { query = query.Where(p => p.ToCityCodes.Contains(search.ToCityCodes.Trim())); } if (search.PassengeDateStart.HasValue) { query = query.Where(p => p.PassengeDate.StartTime >= search.PassengeDateStart.Value); } if (search.PassengeDateEnd.HasValue) { search.PassengeDateEnd = search.PassengeDateEnd.Value.AddDays(1).AddSeconds(-1); query = query.Where(p => p.PassengeDate.EndTime <= search.PassengeDateEnd.Value); } if (search.IssueDateStart.HasValue) { query = query.Where(p => p.IssueDate.StartTime >= search.IssueDateStart.Value); } if (search.IssueDateEnd.HasValue) { search.IssueDateEnd = search.IssueDateEnd.Value.AddDays(1).AddSeconds(-1); query = query.Where(p => p.IssueDate.EndTime <= search.IssueDateEnd.Value); } if (search.TravelType.HasValue) { query = query.Where(p => p.TravelType == search.TravelType.Value); } if (search.HangUp.HasValue) { query = query.Where(p => p.HangUp == search.HangUp.Value); } if (search.IssueTicketWay.HasValue) { query = query.Where(p => p.IssueTicketWay == search.IssueTicketWay.Value); } if (!string.IsNullOrEmpty(search.CarrayCode)) { query = query.Where(p => p.CarrayCode.Equals(search.CarrayCode)); } var list = query.OrderByDescending(p => p.CreateDate).Skip((page - 1) * rows).Take(rows).ToList(); return(new PagedList <ResponseSpecialPolicy>() { Total = query.Count(), Rows = Mapper.Map <List <SpecialPolicy>, List <ResponseSpecialPolicy> >(list) }); }