示例#1
0
        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)
            });
        }