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