示例#1
0
        /// <summary>
        /// 订单分页列表
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public async Task <PageModelDto <OrderDto> > GetPagedAsync(OrderSearchDto search)
        {
            Expression <Func <Order, bool> > whereCondition = x => true;

            if (search.Id > 0)
            {
                whereCondition = whereCondition.And(x => x.Id == search.Id);
            }
            var pagedEntity = _orderRepo.PagedAsync(search.PageIndex, search.PageSize, whereCondition, x => x.Id);

            var pagedDto = _mapper.Map <PageModelDto <OrderDto> >(pagedEntity);

            if (pagedDto.Data.Count > 0)
            {
                //调用maint微服务获取字典,组合商品状态信息
                //var rpcReuslt = await _maintRpcSrv.GetDictAsync(10000);
                //if (rpcReuslt.IsSuccessStatusCode && rpcReuslt.Content.Children.Count > 0)
                //{
                //    var dicts = rpcReuslt.Content.Children;
                //    pagedDto.Data.ForEach(x =>
                //    {
                //        //x.Status.StatusDescription = dicts.FirstOrDefault(d => d.Name == x.Status.StatusCode.ToSafeString())?.Name;
                //    });
                //}
            }
            return(pagedDto);
        }
示例#2
0
        public List <OrderOutputModel> GetAllOrdersByCustomerId(int customerId)
        {
            var searchDto = new OrderSearchDto {
                CustomerId = customerId
            };
            var orders = _orderRepository.SearchOrder(searchDto);
            var output = _mapper.Map <List <OrderOutputModel> >(orders);

            return(output);
        }
示例#3
0
        private async Task <IEnumerable <Order> > SearchOrders(OrderSearchDto search)
        {
            using (var httpClient = new HttpClient())
            {
                var request = await httpClient
                              .AddQueryParameter("start", search.StartDate.GetValueOrDefault(DateTime.MinValue).ToString(_dateFormat))
                              .AddQueryParameter("end", search.EndDate.GetValueOrDefault(DateTime.MaxValue).ToString(_dateFormat))
                              .WithUrl(_apiUrl + "/orders/search/byDate")
                              .GetAsync <JToken>();

                var orders = _mapper.Map <List <Order> >(request["_embedded"]["orders"]);

                return(orders);
            }
        }
示例#4
0
        public async Task <IEnumerable <OrderDto> > Search(OrderSearchDto search)
        {
            var orders  = SearchOrders(search);
            var clients = _clientService.SearchClients(search);

            await Task.WhenAll(orders, clients);

            var result = orders.Result
                         .Where(order => clients.Result.Any(client => client.Id == order.ClientId))
                         .Select(
                order => CreateOrderDto(order, clients.Result)
                );

            return(result);
        }
 public List <OrderDto> SearchOrder(OrderSearchDto searchDto)
 {
     try
     {
         var result = DbConnection.Query <OrderDto>(
             "Search_Order",
             searchDto,
             commandType: CommandType.StoredProcedure
             ).ToList();
         return(result);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
示例#6
0
        public async Task <IEnumerable <Client> > SearchClients(OrderSearchDto search)
        {
            using (var httpClient = new HttpClient())
            {
                var json = await httpClient
                           .AddQueryParameter("name", search.ClientName)
                           .AddQueryParameter("phone", search.Phone)
                           .AddQueryParameter("email", search.Email)
                           .WithUrl(_apiUrl + $"/clients/search/findAllClients")
                           .GetAsync <JToken>();

                var clients = _mapper.Map <List <Client> >(json["_embedded"]["clients"]);

                return(clients);
            }
        }
示例#7
0
        public PaginationDto <OrderDto> GetOrders(OrderSearchDto dto)
        {
            var query = _dbContext.Orders
                        .Include(c => c.Details)
                        .ThenInclude(c => c.Product)
                        .AsQueryable()
                        .Where(c => c.IsPaid);

            IOrderedQueryable <Order> orderedQery =
                query.OrderByDescending(c => c.Id);

            var result = orderedQery.ToPaginated(dto).ToDto();

            var users = GetUsers(result.Data.Select(c => c.UserId).ToList());

            SetUsers(result, users);

            return(result);
        }
示例#8
0
        public async Task <ActionResult <IEnumerable <OrderDto> > > Search(
            [FromQuery] String name,
            [FromQuery] String phone,
            [FromQuery] String email,
            [FromQuery] DateTime?startDate,
            [FromQuery] DateTime?endDate
            )
        {
            var dto = new OrderSearchDto
            {
                ClientName = name,
                Email      = email,
                Phone      = phone,
                StartDate  = startDate,
                EndDate    = endDate
            };

            _logger.Log(LogLevel.Information, "Search", dto);

            return(Ok(await _orderService.Search(dto)));
        }
示例#9
0
        /// <summary>
        /// Az aktuális felhasználóhoz tartozó étteremhez leadott rendelések áttekintő adatainak
        /// lekérdezése a keresési feltétel alapján.
        /// </summary>
        /// <param name="search">A rendelésre vonatkozó keresési feltétel.</param>
        /// <returns>Az étteremhez beérkező rendelések.</returns>
        public async Task <PagedListDto <OrderOverviewDto> > GetMyRestaurantOrderOverviewList(OrderSearchDto search)
        {
            string userId            = httpContext.GetCurrentUserId();
            int    ownerRestaurantId = await userRepository.GetMyRestaurantId(userId);

            return(await orderRepository.GetRestaurantOrderOverviewList(ownerRestaurantId, search));
        }
示例#10
0
        /// <summary>
        /// Az aktuális vendéghez tartozó rendelések áttekintő adatainak lekérdezése a keresési feltétel alapján.
        /// </summary>
        /// <param name="search">A rendelésre vonatkozó keresési feltétel.</param>
        /// <returns>A bejelentkezett vendég rendelési.</returns>
        public async Task <PagedListDto <OrderOverviewDto> > GetGuestOrderOverviewList(OrderSearchDto search)
        {
            string userId = httpContext.GetCurrentUserId();

            return(await orderRepository.GetGuestOrderOverviewList(userId, search));
        }
示例#11
0
 /// <summary>
 /// A megadott étteremhez tartozó rendelések áttekintő adatainak lekérése a keresési feltétel alapján.
 /// </summary>
 /// <param name="restaurantId">Az étterem azonosítója.</param>
 /// <param name="search">A rendelésre vonatkozó keresési feltétel.</param>
 /// <returns>Az étterem rendeléseinek áttekintő adatai.</returns>
 public async Task <PagedListDto <OrderOverviewDto> > GetRestaurantOrderOverviewList(int restaurantId, OrderSearchDto search)
 {
     return(await dbContext.Orders
            .Where(o => o.OrderFoods.First().Food.RestaurantId == restaurantId &&
                   search.Statuses.Contains(o.Status) &&
                   o.Invoice.UserFullName.Contains(search.GuestName) &&
                   o.CreatedAt >= search.OrderMinDate &&
                   o.CreatedAt < search.OrderMaxDate)
            .SortBy(search.SortBy)
            .ToOrderOverviewDtoPagedList(search));
 }
示例#12
0
 /// <summary>
 /// A megadott vendéghez tartozó rendelések áttekintő adatainak lekérése a keresési feltétel alapján.
 /// </summary>
 /// <param name="guestId">A vendég azonosítója.</param>
 /// <param name="search">A rendelésre vonatkozó keresési feltétel.</param>
 /// <returns>A vendég rendeléseinek áttekintő adatai.</returns>
 public async Task <PagedListDto <OrderOverviewDto> > GetGuestOrderOverviewList(string guestId, OrderSearchDto search)
 {
     return(await dbContext.Orders
            .Where(o => o.UserId == guestId &&
                   search.Statuses.Contains(o.Status) &&
                   o.Invoice.RestaurantName.Contains(search.RestaurantName) &&
                   o.CreatedAt >= search.OrderMinDate &&
                   o.CreatedAt < search.OrderMaxDate)
            .SortBy(search.SortBy)
            .ToOrderOverviewDtoPagedList(search));
 }
示例#13
0
 public async Task <PagedListDto <OrderOverviewDto> > GetMyRestaurantOrderList([FromQuery] OrderSearchDto search)
 {
     return(await orderManager.GetMyRestaurantOrderOverviewList(search));
 }