public TraGrabTicketListResponseViewModel GetTraGrabTicketList(TraGrabTicketListRequestViewModel request) { TraGrabTicketListQueryModel query = Mapper.Map <TraGrabTicketListRequestViewModel, TraGrabTicketListQueryModel>(request); TraGrabTicketListModel traGrabTicketListModel = _getTraGrabTicketListServiceBll.GetTraGrabTicketList(query); return(Mapper.Map <TraGrabTicketListModel, TraGrabTicketListResponseViewModel>(traGrabTicketListModel)); }
public TraGrabTicketListModel GetTraGrabTicketList(TraGrabTicketListQueryModel query) { TraGrabTicketListModel resultModel = new TraGrabTicketListModel(); var select = from ticket in Context.Set <TraGrabTicketEntity>().AsNoTracking() select new TraGrabTicketListDataModel() { Cid = ticket.Cid, OrderId = ticket.OrderId, CreateOid = ticket.CreateOid, CreateTime = ticket.CreateTime, GrabBeginTime = ticket.GrabBeginTime, GrabEndTime = ticket.GrabEndTime, StartCodeName = ticket.StartCodeName, EndCodeName = ticket.EndCodeName, StartTime = ticket.StartTime, TrainNo = ticket.TrainNo, SeatType = ticket.SeatType, GrabStatusNow = ticket.GrabStatus, GrabId = ticket.GrabId, SubmitFailedReason = ticket.SubmitFailedReason, GrabFailedReason = ticket.GrabFailedReason }; if (query.Cid.HasValue) { select = select.Where(n => n.Cid == query.Cid.Value); } if (query.OrderId.HasValue) { select = select.Where(n => n.OrderId == query.OrderId.Value); } if (query.GrabBeginTime.HasValue) { select = select.Where(n => n.GrabBeginTime >= query.GrabBeginTime); } if (query.GrabEndTime.HasValue) { query.GrabEndTime = query.GrabEndTime.Value.AddDays(1); select = select.Where(n => n.GrabEndTime < query.GrabEndTime); } if (query.StartBeginTime.HasValue) { select = select.Where(n => n.StartTime >= query.StartBeginTime); } if (query.StartEndTime.HasValue) { query.StartEndTime = query.StartEndTime.Value.AddDays(1); select = select.Where(n => n.StartTime < query.StartEndTime); } if (query.GrabStatus.HasValue) { select = select.Where(n => n.GrabStatusNow == query.GrabStatus.ToString()); } if (!string.IsNullOrEmpty(query.CreateOid)) { select = select.Where(n => n.CreateOid == query.CreateOid); } if (!string.IsNullOrEmpty(query.StartCodeName)) { select = select.Where(n => n.StartCodeName.Contains(query.StartCodeName)); } if (!string.IsNullOrEmpty(query.EndCodeName)) { select = select.Where(n => n.EndCodeName.Contains(query.EndCodeName)); } if (!string.IsNullOrEmpty(query.TrainNo)) { select = select.Where(n => n.TrainNo.Contains(query.TrainNo)); } if (!string.IsNullOrEmpty(query.SeatType)) { select = select.Where(n => n.SeatType.Contains(query.SeatType)); } if (!string.IsNullOrEmpty(query.PassengerName)) { select = select.Where( n => Context.Set <TraGrabTicketPassengerEntity>() .Where(m => m.PassengerName.Contains(query.PassengerName)) .Select(m => m.GrabId).Contains(n.GrabId) ); } resultModel.TotalCount = select.Count();//查询所有结果的数量 select = select.OrderByDescending(n => n.OrderId).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize); resultModel.DataList = select.ToList(); //分页结果 List <int> grabIdList = new List <int>(); resultModel.DataList.ForEach(n => { grabIdList.Add(n.GrabId); }); List <TraGrabTicketPassengerEntity> traGrabTicketPassengerEntities = _traGrabTicketPassengerDal.Query <TraGrabTicketPassengerEntity>(n => grabIdList.Contains(n.GrabId), true) .ToList(); List <TraGrabTicketPassengerModel> traGrabTicketPassengerModels = Mapper.Map <List <TraGrabTicketPassengerEntity>, List <TraGrabTicketPassengerModel> >( traGrabTicketPassengerEntities); foreach (var traGrabTicketListDataModel in resultModel.DataList) { traGrabTicketListDataModel.PassengerList = traGrabTicketPassengerModels.FindAll(n => n.GrabId == traGrabTicketListDataModel.GrabId); } return(resultModel); }