コード例 #1
0
        /// <summary>
        /// 获取DemandForecast的分页列表信息
        ///</summary>
        /// <param name="input"></param>
        /// <returns></returns>

        public async Task <PagedResultDto <DemandForecastListDto> > GetPaged(GetDemandForecastsInput input)
        {
            var query = _entityRepository.GetAll().WhereIf(!string.IsNullOrEmpty(input.Filter), v => v.Title.Contains(input.Filter));
            var count = await query.CountAsync();

            var entityList = await query
                             .OrderBy(v => v.IsPublish).ThenByDescending(v => v.Month).AsNoTracking()
                             .PageBy(input)
                             .ToListAsync();

            var entityListDtos = entityList.MapTo <List <DemandForecastListDto> >();

            return(new PagedResultDto <DemandForecastListDto>(count, entityListDtos));
        }
コード例 #2
0
        /// <summary>
        /// 获取零售户预测列表头部信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <RetailDemandHeadDto> GetRetailDemandHeadByIdAsync(GetDemandForecastsInput input)
        {
            string openId = await _wechatuserRepository.GetAll().Where(v => v.UserId == input.UserId).Select(v => v.OpenId).FirstOrDefaultAsync();

            string name = await _retailerRepository.GetAll().Where(v => v.Id == input.UserId).Select(v => v.Name).FirstOrDefaultAsync();

            DateTime completeTime = await _forecastRecordRepository.GetAll().Where(v => v.DemandForecastId == input.DemandForecastId && v.OpenId == openId).Select(v => v.CreationTime).OrderByDescending(v => v).FirstOrDefaultAsync();

            var result = await _entityRepository.GetAll().Where(v => v.Id == input.DemandForecastId).Select(v => new RetailDemandHeadDto()
            {
                Id           = v.Id,
                Title        = v.Title,
                Month        = v.Month,
                Name         = name,
                CompleteTime = completeTime
            }).FirstOrDefaultAsync();

            return(result);
        }
コード例 #3
0
        /// <summary>
        /// 查询当前零售户需求预测列表
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <RetailDemandForecastListDto> > GetRetailDemandListByIdAsync(GetDemandForecastsInput input)
        {
            string openId = await _wechatuserRepository.GetAll().Where(v => v.UserId == input.UserId).Select(v => v.OpenId).FirstOrDefaultAsync();

            Guid[] DemandIds = await _forecastRecordRepository.GetAll().Where(v => v.OpenId == openId).Select(v => v.DemandForecastId).Distinct().ToArrayAsync();

            var query = _entityRepository.GetAll().Where(v => DemandIds.Contains(v.Id)).WhereIf(!string.IsNullOrEmpty(input.Filter), v => v.Title.Contains(input.Filter));
            var list  = await(from q in query
                              select new RetailDemandForecastListDto()
            {
                Id    = q.Id,
                Title = q.Title,
                Month = q.Month
            }).OrderByDescending(v => v.Month).PageBy(input).ToListAsync();

            foreach (var item in list)
            {
                item.CompleteTime = await _forecastRecordRepository.GetAll().Where(v => v.DemandForecastId == item.Id).Select(v => v.CreationTime).OrderByDescending(v => v).FirstOrDefaultAsync();
            }
            int count = query.Count();

            return(new PagedResultDto <RetailDemandForecastListDto>(count, list));
        }