public async Task <PageBase <EntityListNews> > GetPageNewsInfoAsync(EntityNewQuery entityNewQuery) { var versionStatus = await VersionService.GetVersionStatus(entityNewQuery.VersionId); var result = new PageBase <EntityListNews> { CurrentPage = entityNewQuery.CurrentPage, PageSize = entityNewQuery.PageSize }; var strTotalSql = new StringBuilder(); var strSql = new StringBuilder(); //计算总数 strTotalSql.Append(@" SELECT COUNT(1) FROM T_News where 1=1 "); if (!entityNewQuery.IsAll) { strTotalSql.Append(" and isEnable = @isEnable "); strTotalSql.Append(" and NewsType = @versionStatus "); } if (!string.IsNullOrEmpty(entityNewQuery.Title)) { strTotalSql.Append(" and Title like @title "); } //分页信息 strSql.Append(@"; SELECT Id , NewsId , Title , ShortContent , NewsContent , HrefUrl , CreateTime , UpdateTime , Media, NewsType, IsEnable FROM T_News where 1=1 "); if (!entityNewQuery.IsAll) { strSql.Append(" and isEnable=@isEnable "); strSql.Append(" and NewsType = @versionStatus "); } if (!string.IsNullOrEmpty(entityNewQuery.Title)) { strSql.Append(" and Title like @title "); } strSql.Append(@" order by createTime desc "); strSql.Append(@" limit @startIndex,@pageSize "); var paras = new DynamicParameters(new { versionStatus = versionStatus != null ? ((bool)versionStatus ? 1 : 2) : 1, isEnable = entityNewQuery.IsEnable, title = "%" + entityNewQuery.Title + "%", startIndex = (entityNewQuery.CurrentPage - 1) * entityNewQuery.PageSize, pageSize = entityNewQuery.PageSize }); var newsRep = GetRepositoryInstance <TableNews>(); var sqlQuery = new SqlQuery(strSql.ToString(), paras); var listResult = await newsRep.FindAllAsync(sqlQuery); result.Items = Mapper.Map <List <TableNews>, List <EntityListNews> >(listResult.AsList()); result.TotalCounts = newsRep.Connection.ExecuteScalar <int>(strTotalSql.ToString(), paras); result.TotalPages = Convert.ToInt32(Math.Ceiling(result.TotalCounts / (entityNewQuery.PageSize * 1.0))); return(result); }
public async Task <ResponseModel> GetPageNewsAsync([FromQuery] EntityNewQuery entityNewQuery) { return(Success(await NewsService.GetPageNewsInfoAsync(entityNewQuery))); }