public HttpResponseMessage Get([FromUri] ServiceOrderSearchCondition condition) { var currentUser = (UserBase)_workContext.CurrentUser; if (!currentUser.UserRoles.ToList() .Exists(c => c.Role.RoleName == "superAdmin" || c.Role.RoleName == "admin")) { condition.AddUsers = new[] { currentUser.Id } } ; var model = _serviceOrderService.GetServiceOrdersByCondition(condition).Select(c => new ServiceOrderModel { Id = c.Id, OrderNo = c.OrderNo, Addtime = c.AddTime, AddUser = c.AddUser, Flee = c.Flee, Address = c.Address.Address, Servicetime = c.Servicetime, Remark = c.Remark, Status = c.Status, UpdUser = c.UpdUser, UpdTime = c.UpdTime, UserName = c.AddMember.UserName, Details = c.Details.Select(d => new ServiceOrderDetailModel { Count = d.Count, Id = d.Id, MainImg = d.MainImg, Price = d.Price, ProductName = d.ProductName, Product = new ProductModel { Id = d.Product.Id, MainImg = d.Product.MainImg, Name = d.Product.Name, Price = d.Product.Price, OldPrice = d.Product.OldPrice }, }).ToList() }).ToList(); var totalPages = _serviceOrderService.GetServiceOrderCount(condition); return(PageHelper.toJson(new { List = model, Condition = condition, TotalPages = totalPages })); }
public IQueryable <ServiceOrderEntity> GetServiceOrdersByCondition(ServiceOrderSearchCondition condition) { var query = _serviceorderRepository.Table; try { if (condition.AddtimeBegin.HasValue) { query = query.Where(q => q.AddTime >= condition.AddtimeBegin.Value); } if (condition.AddtimeEnd.HasValue) { query = query.Where(q => q.AddTime < condition.AddtimeEnd.Value); } if (condition.FleeBegin.HasValue) { query = query.Where(q => q.Flee >= condition.FleeBegin.Value); } if (condition.FleeEnd.HasValue) { query = query.Where(q => q.Flee < condition.FleeEnd.Value); } if (condition.ServicetimeBegin.HasValue) { query = query.Where(q => q.Servicetime >= condition.ServicetimeBegin.Value); } if (condition.ServicetimeEnd.HasValue) { query = query.Where(q => q.Servicetime < condition.ServicetimeEnd.Value); } if (!string.IsNullOrEmpty(condition.OrderNo)) { query = query.Where(q => q.OrderNo == condition.OrderNo); } // if (!string.IsNullOrEmpty(condition.Address)) // { // query = query.Where(q => q.Address.Contains(condition.Address)); // } if (!string.IsNullOrEmpty(condition.Remark)) { query = query.Where(q => q.Remark.Contains(condition.Remark)); } if (condition.Ids != null && condition.Ids.Any()) { query = query.Where(q => condition.Ids.Contains(q.Id)); } if (condition.AddUsers != null && condition.AddUsers.Any()) { query = query.Where(q => condition.AddUsers.Contains(q.AddUser)); } if (condition.Status != null) { query = query.Where(c => c.Status == condition.Status); } if (condition.OrderBy.HasValue) { switch (condition.OrderBy.Value) { case EnumServiceOrderSearchOrderBy.OrderById: query = condition.IsDescending?query.OrderByDescending(q => q.Id):query.OrderBy(q => q.Id); break; case EnumServiceOrderSearchOrderBy.OrderByOrderNo: query = condition.IsDescending?query.OrderByDescending(q => q.OrderNo):query.OrderBy(q => q.OrderNo); break; } } else { query = query.OrderBy(q => q.Id); } if (condition.Page.HasValue && condition.PageCount.HasValue) { query = query.Skip((condition.Page.Value - 1) * condition.PageCount.Value).Take(condition.PageCount.Value); } return(query); } catch (Exception e) { _log.Error(e, "数据库操作出错"); return(null); } }
public int GetServiceOrderCount(ServiceOrderSearchCondition condition) { var query = _serviceorderRepository.Table; try { if (condition.AddtimeBegin.HasValue) { query = query.Where(q => q.AddTime >= condition.AddtimeBegin.Value); } if (condition.AddtimeEnd.HasValue) { query = query.Where(q => q.AddTime < condition.AddtimeEnd.Value); } if (condition.FleeBegin.HasValue) { query = query.Where(q => q.Flee >= condition.FleeBegin.Value); } if (condition.FleeEnd.HasValue) { query = query.Where(q => q.Flee < condition.FleeEnd.Value); } if (condition.ServicetimeBegin.HasValue) { query = query.Where(q => q.Servicetime >= condition.ServicetimeBegin.Value); } if (condition.ServicetimeEnd.HasValue) { query = query.Where(q => q.Servicetime < condition.ServicetimeEnd.Value); } if (!string.IsNullOrEmpty(condition.OrderNo)) { query = query.Where(q => q.OrderNo == condition.OrderNo); } // if (!string.IsNullOrEmpty(condition.Address)) // { // query = query.Where(q => q.Address.Contains(condition.Address)); // } if (!string.IsNullOrEmpty(condition.Remark)) { query = query.Where(q => q.Remark.Contains(condition.Remark)); } if (condition.Ids != null && condition.Ids.Any()) { query = query.Where(q => condition.Ids.Contains(q.Id)); } if (condition.AddUsers != null && condition.AddUsers.Any()) { query = query.Where(q => condition.AddUsers.Contains(q.AddUser)); } if (condition.Status != null) { query = query.Where(c => c.Status == condition.Status); } return(query.Count()); } catch (Exception e) { _log.Error(e, "数据库操作出错"); return(-1); } }