public ActionResult <object> GetOrderPageList([FromQuery] CrmOrderSearch search, int pageIndex = 1, int pageSize = 10) { var totalCount = 0; var data = _repository.GetOrderPageList(search, ref totalCount, pageIndex, pageSize); return(data.ResponseSuccess("", totalCount)); }
/// <summary> /// 获取订单列表 包含OrderItem /// </summary> /// <param name="search"></param> /// <param name="totalCount"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public IList <CrmOrderView> FindOrderPageList(CrmOrderSearch search, ref int totalCount, int pageIndex = 1, int pageSize = 10) { //处理时间 if (search.CreateDate?.Count > 0) { search.CreateDate[0] = search.CreateDate[0].Date; } if (search.CreateDate?.Count > 1) { search.CreateDate[1] = search.CreateDate[1].AddDays(1).Date; } var orderList = GetInstance().Queryable <CrmOrderEntity, CrmClientEntity, CrmOrderItemEntity>((t1, t2, t3) => new object[] { JoinType.Left, t1.ClientId == t2.ClientId, JoinType.Left, t1.OrderId == t3.OrderId }) .WhereIF(!search.ClientName.IsNullOrWhiteSpace(), (t1, t2, t3) => t2.ClientName.Contains(search.ClientName)) .WhereIF(!search.Mobile.IsNullOrWhiteSpace(), (t1, t2, t3) => t2.Mobile.Contains(search.Mobile)) .WhereIF(!search.ProductName.IsNullOrWhiteSpace(), (t1, t2, t3) => t3.ProductFullName.Contains(search.ProductName)) .WhereIF(search.CreateDate?.Count > 0, (t1, t2, t3) => t1.CreateTime >= search.CreateDate[0]) .WhereIF(search.CreateDate?.Count > 1, (t1, t2, t3) => t1.CreateTime < search.CreateDate[1]) .WhereIF(search.OrderStatus != null, (t1, t2, t3) => t1.Status == search.OrderStatus) .GroupBy((t1, t2, t3) => t1.OrderId) .OrderBy((t1, t2, t3) => t1.OrderId, OrderByType.Desc) .Select((t1, t2, t3) => new CrmOrderView { ClientName = t2.ClientName, Order = t1 }) .ToPageList(pageIndex, pageSize, ref totalCount); if (orderList.Count > 0) { var orderIds = orderList.Select(t => t.Order.OrderId).ToList(); var orderItemList = GetInstance().Queryable <CrmOrderItemEntity>().Where(t => orderIds.Contains(t.OrderId)).ToList(); foreach (var order in orderList) { order.OrderItem = orderItemList.Where(t => t.OrderId == order.Order.OrderId).ToList(); } } return(orderList); }
/// <summary> /// 查询订单 包含OrderItem /// </summary> /// <param name="search"></param> /// <param name="totalCount"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public IList <CrmOrderView> GetOrderPageList(CrmOrderSearch search, ref int totalCount, int pageIndex = 1, int pageSize = 10) { return(_service.FindOrderPageList(search, ref totalCount, pageIndex, pageSize)); }