public List <TraModOrderListDataModel> GetTraModOrderByPageList(TraModOrderListQueryModel queryModel, ref int totalCount) { TraModOrderListQueryEntity query = Mapper.Map <TraModOrderListQueryModel, TraModOrderListQueryEntity>(queryModel); List <TraModOrderListDataEntity> list = _dal.GetTraModOrderByPageList(query, ref totalCount); if (list == null) { return(null); } return(Mapper.Map <List <TraModOrderListDataEntity>, List <TraModOrderListDataModel> >(list)); }
public List <TraModOrderListDataEntity> GetTraModOrderByPageList(TraModOrderListQueryEntity query, ref int totalCount) { using (BrightourDbContext db = new BrightourDbContext()) { var select = from modOrder in db.TraModOrder join customer in db.CustomerInfo on modOrder.Cid equals customer.Cid.ToString() into c from customer in c.DefaultIfEmpty() join traInterFaceOrder in db.InterFaceOrder on modOrder.CorderId.ToString() equals traInterFaceOrder.OrderId into tf from traInterFaceOrder in tf.DefaultIfEmpty() select new TraModOrderListDataEntity() { Coid = modOrder.Coid, CreateTime = modOrder.CreateTime.Value, Corpid = customer.CorpID, Cid = customer.Cid, InterfaceOrderStatus = (traInterFaceOrder == null ? -1 : traInterFaceOrder.Status), InterfaceOrderId = (traInterFaceOrder == null ? -1 : traInterFaceOrder.InterfaceId), CalcPrice = modOrder.CalcPrice.Value, CorderId = modOrder.CorderId, OrderStatus = modOrder.OrderStatus }; select = select.Where(n => n.OrderStatus != "N"); if (query.AllowShowDataBeginTime.HasValue) { select = select.Where(n => n.CreateTime > query.AllowShowDataBeginTime.Value); } var nowDate = DateTime.Now.AddMinutes(-20); var status = db.InterFaceOrder.Where(n => n.Status == 15 && n.CreateTime < nowDate).Select(n => n.InterfaceId); if (status.Any()) { select = select.Where(n => !status.Contains(n.InterfaceOrderId)); } if (query.OrderStatus.HasValue) { select = select.Where(n => n.InterfaceOrderStatus == query.OrderStatus.Value); } if (!string.IsNullOrEmpty(query.Coid))//订单号 { select = select.Where(n => n.Coid.Contains(query.Coid)); } if (query.OrderBeginTime.HasValue)//订单开始时间 { select = select.Where(n => n.CreateTime >= query.OrderBeginTime.Value); } if (query.OrderEndTime.HasValue)//订单结束时间 { DateTime dd = query.OrderEndTime.Value.AddDays(1); select = select.Where(n => n.CreateTime < dd); } if (query.TravelBeginTime.HasValue)//行程开始时间 { select = select.Where(n => db.TraModDetail.Where(m => m.SendTime.Value >= query.TravelBeginTime.Value) .Select(m => m.CorderId).Contains(n.CorderId)); } if (query.TravelEndTime.HasValue)//行程结束时间 { DateTime dd = query.TravelEndTime.Value.AddDays(1); select = select.Where(n => db.TraModDetail.Where(m => m.EndTime.Value < dd) .Select(m => m.CorderId).Contains(n.CorderId)); } if (!string.IsNullOrEmpty(query.PassengerName))//乘机人 { var p = db.TraPassenger.Where(k => k.Name.Contains(query.PassengerName)).Select(k => k.Pid.ToString()); select = select.Where( n => db.TraModDetail.Where(m => p.Contains(m.Pid)) .Select(m => m.CorderId) .Contains(n.CorderId)); } //判断是否显示全部订单 if ((query.IsShowAllOrder ?? 0) == 1) { //判断用户是否有显示全部订单权限 CustomerInfoEntity customer = db.CustomerInfo.Where(x => x.Cid == query.Cid).FirstOrDefault(); if (customer != null && (customer.IsShowAllOrder ?? 0) == 1) { select = select.Where(n => n.Corpid.ToUpper() == query.CorpId.ToUpper()); } else { if (query.Cid.HasValue && !string.IsNullOrEmpty(query.UserId) && query.UserId.ToLower() != "administrator") { select = select.Where(n => n.Cid == query.Cid.Value); } if (!string.IsNullOrEmpty(query.UserId) && query.UserId.ToLower() == "administrator" && !string.IsNullOrEmpty(query.CorpId)) { select = select.Where(n => n.Corpid.ToUpper() == query.CorpId.ToUpper()); } } } else { if (query.Cid.HasValue && !string.IsNullOrEmpty(query.UserId) && query.UserId.ToLower() != "administrator") { select = select.Where(n => n.Cid == query.Cid.Value); } if (!string.IsNullOrEmpty(query.UserId) && query.UserId.ToLower() == "administrator" && !string.IsNullOrEmpty(query.CorpId)) { select = select.Where(n => n.Corpid.ToUpper() == query.CorpId.ToUpper()); } } totalCount = select.Count(); if ((query.IsExport ?? 0) == 0) { select = select.OrderByDescending(n => n.CorderId).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize); } else { select = select.OrderByDescending(n => n.CorderId); } return(select.ToList()); } }