public async Task <APIResultDto> ExportExhibitionShopsExcel(GetExhibitionShopsInput input)
        {
            try
            {
                var exportData = await GetExhibitionShopsAsync(input);

                var result = new APIResultDto();
                result.Code = 0;
                result.Data = SaveExhibitionShopsAsyncsExcel("陈列店铺.xlsx", exportData);
                return(result);
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("ExportPostInfoExcel errormsg:{0} Exception:{1}", ex.Message, ex);
                return(new APIResultDto()
                {
                    Code = 901, Msg = "网络忙... 请待会重试!"
                });
            }
        }
        /// <summary>
        /// 获取ExhibitionShop的分页列表信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <ExhibitionShopListDto> > GetPagedExhibitionShops(GetExhibitionShopsInput input)
        {
            var query = _exhibitionshopRepository.GetAll();
            //TODO:根据传入的参数添加过滤条件

            var exhibitionshopCount = await query.CountAsync();

            var exhibitionshops = await query
                                  .OrderBy(input.Sorting).AsNoTracking()
                                  .PageBy(input)
                                  .ToListAsync();

            //var exhibitionshopListDtos = ObjectMapper.Map<List <ExhibitionShopListDto>>(exhibitionshops);
            var exhibitionshopListDtos = exhibitionshops.MapTo <List <ExhibitionShopListDto> >();

            return(new PagedResultDto <ExhibitionShopListDto>(
                       exhibitionshopCount,
                       exhibitionshopListDtos
                       ));
        }
        private async Task <List <ExhibitionShopListDto> > GetExhibitionShopsAsync(GetExhibitionShopsInput input)
        {
            var exhibitons = _exhibitionshopRepository.GetAll()
                             .WhereIf(!string.IsNullOrEmpty(input.ShopName), v => v.ShopName.Contains(input.ShopName));
            var retailer = _retailerRepository.GetAll();
            var shop     = _shopRepository.GetAll();
            var result   = (from e in exhibitons
                            join r in retailer on e.RetailerId equals r.Id
                            join s in shop on e.ShopId equals s.Id
                            select new ExhibitionShopListDto()
            {
                Id = e.Id,
                ShopName = e.ShopName,
                CustCode = r.Code,
                CustName = r.Name,
                Area = r.Area,
                ShopAddress = e.ShopAddress,
                Phone = s.Tel,
                Votes = e.Votes != null ? e.Votes : 0,
                FansNum = s.FansNum
            }).WhereIf(!string.IsNullOrEmpty(input.Phone), v => v.Phone.Contains(input.Phone))
                           .WhereIf(!string.IsNullOrEmpty(input.CustCode), v => v.CustCode.Contains(input.CustCode))
                           .WhereIf(!string.IsNullOrEmpty(input.CustName), v => v.CustName.Contains(input.CustName));

            if (input.SortFansTotal != null && input.SortFansTotal == "ascend")
            {
                var exhibitionshops = await result
                                      .OrderByDescending(v => v.FansNum).AsNoTracking()
                                      .PageBy(input)
                                      .ToListAsync();

                var exhibitionshopListDtos = exhibitionshops.MapTo <List <ExhibitionShopListDto> >();
                return(exhibitionshopListDtos);
            }
            else if (input.SortFansTotal != null && input.SortFansTotal == "descend")
            {
                var exhibitionshops = await result
                                      .OrderBy(v => v.FansNum).AsNoTracking()
                                      .PageBy(input)
                                      .ToListAsync();

                var exhibitionshopListDtos = exhibitionshops.MapTo <List <ExhibitionShopListDto> >();
                return(exhibitionshopListDtos);
            }
            else if (input.SortVotesTotal != null && input.SortVotesTotal == "ascend")
            {
                var exhibitionshops = await result
                                      .OrderByDescending(v => v.Votes).AsNoTracking()
                                      .PageBy(input)
                                      .ToListAsync();

                var exhibitionshopListDtos = exhibitionshops.MapTo <List <ExhibitionShopListDto> >();
                return(exhibitionshopListDtos);
            }
            else if (input.SortVotesTotal != null && input.SortVotesTotal == "descend")
            {
                var exhibitionshops = await result
                                      .OrderBy(v => v.Votes).AsNoTracking()
                                      .PageBy(input)
                                      .ToListAsync();

                var exhibitionshopListDtos = exhibitionshops.MapTo <List <ExhibitionShopListDto> >();
                return(exhibitionshopListDtos);
            }
            else
            {
                var exhibitionshops = await result
                                      .OrderByDescending(v => v.Votes).AsNoTracking()
                                      .PageBy(input)
                                      .ToListAsync();

                var exhibitionshopListDtos = exhibitionshops.MapTo <List <ExhibitionShopListDto> >();
                return(exhibitionshopListDtos);
            }
        }