Пример #1
0
        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);
        }
Пример #2
0
 public async Task <ResponseModel> GetPageNewsAsync([FromQuery] EntityNewQuery entityNewQuery)
 {
     return(Success(await NewsService.GetPageNewsInfoAsync(entityNewQuery)));
 }