Exemplo n.º 1
0
        public async Task <OrderSearchResult> GetModelListAsync(string keyword, DateTime?startTime, DateTime?endTime, int pageIndex, int pageSize)
        {
            using (MyDbContext dbc = new MyDbContext())
            {
                OrderSearchResult result = new OrderSearchResult();
                var entities             = dbc.GetAll <OrderEntity>().AsNoTracking();
                if (!string.IsNullOrEmpty(keyword))
                {
                    entities = entities.Where(a => a.Code.Contains(keyword));
                }
                if (startTime != null)
                {
                    entities = entities.Where(a => a.CreateTime >= startTime);
                }
                if (endTime != null)
                {
                    entities = entities.Where(a => a.CreateTime.Year <= endTime.Value.Year && a.CreateTime.Month <= endTime.Value.Month && a.CreateTime.Day <= endTime.Value.Day);
                }
                result.PageCount = (int)Math.Ceiling((await entities.LongCountAsync()) * 1.0f / pageSize);
                var res = await entities.OrderByDescending(a => a.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();

                result.List = res.Select(a => ToDTO(a)).ToArray();
                return(result);
            }
        }
Exemplo n.º 2
0
        public async Task <OrderSearchResult> GetDeliverModelListAsync(long?buyerId, long?orderStateId, string keyword, DateTime?startTime, DateTime?endTime, int pageIndex, int pageSize)
        {
            using (MyDbContext dbc = new MyDbContext())
            {
                OrderSearchResult result = new OrderSearchResult();
                var entities             = dbc.GetAll <OrderEntity>().Include(o => o.OrderState).Include(o => o.PayType).Include(o => o.Address).Where(o => o.OrderState.Name == "待发货" || o.OrderState.Name == "退单审核" || o.OrderState.Name == "已发货" || o.Deliver == "无需物流" || o.Deliver == "同城自取");
                if (buyerId != null)
                {
                    entities = entities.Where(a => a.BuyerId == buyerId);
                }
                if (orderStateId != null)
                {
                    entities = entities.Where(a => a.OrderStateId == orderStateId);
                }
                if (!string.IsNullOrEmpty(keyword))
                {
                    entities = entities.Where(g => g.Code.Contains(keyword) || g.Buyer.Mobile.Contains(keyword));
                }
                if (startTime != null)
                {
                    entities = entities.Where(a => a.CreateTime >= startTime);
                }
                if (endTime != null)
                {
                    entities = entities.Where(a => SqlFunctions.DateDiff("day", endTime, a.CreateTime) <= 0);
                }
                result.PageCount = (int)Math.Ceiling((await entities.LongCountAsync()) * 1.0f / pageSize);
                var goodsTypesResult = await entities.OrderByDescending(a => a.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();

                result.Orders = goodsTypesResult.Select(a => ToDTO(a)).ToArray();
                return(result);
            }
        }
Exemplo n.º 3
0
        public async Task <OrderSearchViewResult> GetOrders(int pageNumber, OrderStatusViewEnum status)
        {
            var itemsPerPage = Convert.ToInt32(ConfigurationManager.AppSettings["AdminOrdersPerPage"]);
            var itemsToSkip  = (pageNumber - 1) * itemsPerPage;
            var dbStatus     = status.ToDbEnum();

            OrderSearchResult result = null;

            if (status == OrderStatusViewEnum.ALL)
            {
                result = await _iOrderRepository.GetAllOrders(itemsPerPage, itemsToSkip);
            }
            else
            {
                result = await _iOrderRepository.GetOrdersByStatus(itemsPerPage, itemsToSkip, dbStatus);
            }

            if (result != null)
            {
                var orderSearchViewResult = new OrderSearchViewResult
                {
                    TotalCount = result.TotalCount,
                    Orders     = result.Orders.Select(x => x.ToViewModel())
                };

                return(orderSearchViewResult);
            }

            return(null);
        }
Exemplo n.º 4
0
        public async Task <OrderSearchResult> GetOrdersByStatus(int itemsPerPage, int itemsToSkip, OrderStatus status)
        {
            var query = _dbset.Include(x => x.DeliveryAddress).Include(x => x.BillingAddress).Include(x => x.OrderItems);

            switch (status)
            {
            case OrderStatus.COMPLETE:
                query = query.Where(x => x.OrderStatus == OrderStatus.COMPLETE);
                break;

            case OrderStatus.CONFIRMED:
                query = query.Where(x => x.OrderStatus == OrderStatus.CONFIRMED);
                break;

            case OrderStatus.REGISTRED:
                query = query.Where(x => x.OrderStatus == OrderStatus.REGISTRED);
                break;

            case OrderStatus.SHIPPED:
                query = query.Where(x => x.OrderStatus == OrderStatus.SHIPPED);
                break;
            }

            var ordersResult = new OrderSearchResult
            {
                TotalCount = await query.CountAsync(),
                Orders     = await query.OrderByDescending(x => x.OrderRegistrationDate).Skip(itemsToSkip).Take(itemsPerPage).ToListAsync()
            };

            return(ordersResult);
        }
Exemplo n.º 5
0
        public async Task <OrderSearchResult> GetAllOrders(int itemsPerPage, int itemsToSkip)
        {
            var query = _dbset.Include(x => x.DeliveryAddress).Include(x => x.BillingAddress).Include(x => x.OrderItems);

            var ordersResult = new OrderSearchResult
            {
                TotalCount = await query.CountAsync(),
                Orders     = await query.OrderBy(x => x.OrderRegistrationDate).Skip(itemsToSkip).Take(itemsPerPage).ToListAsync()
            };

            return(ordersResult);
        }
Exemplo n.º 6
0
        public async Task <OrderSearchResult> GetUserOrders(int itemsPerPage, int itemsToSkip, string userId)
        {
            var query = _dbset.Include(x => x.DeliveryAddress).Include(x => x.BillingAddress).Include(x => x.OrderItems)
                        .Where(x => string.Equals(x.UserId, userId));

            var ordersResult = new OrderSearchResult
            {
                TotalCount = await query.CountAsync(),
                Orders     = await query.OrderByDescending(x => x.OrderRegistrationDate).Skip(itemsToSkip).Take(itemsPerPage).ToListAsync()
            };

            return(ordersResult);
        }
Exemplo n.º 7
0
        public async Task <ApiResult> List(OrderListModel model)
        {
            string parm = await settingService.GetParmByNameAsync("网站域名");

            User user = JwtHelper.JwtDecrypt <User>(ControllerContext);
            OrderSearchResult result = await orderService.GetModelListAsync(user.Id, model.OrderStateId, null, null, null, null, model.PageIndex, model.PageSize);

            OrderListApiModel res = new OrderListApiModel();

            res.PageCount = result.PageCount;
            res.Orders    = result.Orders.Where(o => o.IsRated == false).Select(o => new Order
            {
                amount          = o.Amount,
                code            = o.Code,
                createTime      = o.CreateTime,
                postFee         = o.PostFee,
                deliver         = o.Deliver,
                deliveryCode    = o.DeliverCode,
                deliveryName    = o.DeliverName,
                id              = o.Id,
                orderStateId    = o.OrderStateId,
                orderStateName  = o.OrderStateName,
                payTypeId       = o.PayTypeId,
                payTypeName     = o.PayTypeName,
                receiverName    = o.ReceiverName,
                receiverMobile  = o.ReceiverMobile,
                receiverAddress = o.ReceiverAddress,
                payTime         = o.PayTime,
                consignTime     = o.ConsignTime,
                endTime         = o.EndTime,
                closeTime       = o.CloseTime,
                discountAmount  = o.DiscountAmount,
                totalAmount     = orderListService.GetModelList(o.Id).Sum(ol => ol.TotalFee),
                OrderGoods      = orderListService.GetModelList(o.Id).Select(l => new OrderGoods {
                    name         = l.GoodsName,
                    number       = l.Number,
                    price        = l.Price,
                    realityPrice = l.RealityPrice,
                    totalFee     = l.TotalFee,
                    inventory    = l.Inventory,
                    imgUrl       = parm + l.ImgUrl
                }).ToList()
            }).ToList();
            return(new ApiResult {
                status = 1, data = res
            });
        }
Exemplo n.º 8
0
 /// <summary>
 /// Translate an OrderSearchResult object to OrderSearchResultBE type.
 /// </summary>
 /// <param name="searchResultDE"></param>
 /// <returns></returns>
 public OrderSearchResultBE TranslateToBE(OrderSearchResult searchResultDE)
 {
     if (searchResultDE != null)
     {
         OrderSearchResultBE searchResultBE = new OrderSearchResultBE()
         {
             OrderId      = searchResultDE.OrderId,
             CreatedDate  = searchResultDE.CreatedDate,
             CustomerName = searchResultDE.CustomerName,
             ProductName  = searchResultDE.ProductName,
             TotalPrice   = searchResultDE.TotalPrice
         };
         return(searchResultBE);
     }
     else
     {
         return(null);
     }
 }
Exemplo n.º 9
0
        private static IEnumerable <OrderModel> Order(IEnumerable <OrderModel> orders, OrderSearchResult input)
        {
            var type = typeof(OrderModel);
            Func <OrderModel, object> func = o => type.GetProperty(input.OrderBy).GetValue(o);

            switch (input.Direction)
            {
            case OrderDirection.Ascending:
                return(orders.OrderBy(func));

            default:
                return(orders.OrderByDescending(func));
            }
        }