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); } }
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); } }
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); }
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); }
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); }
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); }
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 }); }
/// <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); } }
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)); } }