Beispiel #1
0
        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));
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 /// <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));
 }