Esempio n. 1
0
        /// <summary>
        /// 分页获取新闻列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <IPageList <NewsResponse> > GetPageListAsync(QueryNewsRequest request)
        {
            var query = new SqlPageBuilder(request.PageIndex, request.PageSize);

            query.AddHeadSql(@"SELECT t.*");
            query.AddBodySql(@"
FROM
	(
	SELECT
		n.* 
	FROM
		pdd_t_news n
		JOIN pdd_t_news_publish np ON np.NewsId = n.id 
		AND np.NewsPublishType = 1
		JOIN pdd_t_users u ON u.CompanyID = np.ObjectId 
		AND u.ID = @UserId 
	WHERE
		n.`status` = 2 UNION
	SELECT
		n.* 
	FROM
		pdd_t_news n
		JOIN pdd_t_news_publish np ON np.NewsId = n.id 
		AND np.NewsPublishType = 2
		JOIN pdd_t_company_group_user cgu ON cgu.GroupId = np.ObjectId 
		AND cgu.UserId = @UserId 
	WHERE
		n.`status` = 2 UNION
	SELECT
		n.* 
	FROM
		pdd_t_news n
		JOIN pdd_t_news_publish np ON np.NewsId = n.id 
		AND np.NewsPublishType = 3
		JOIN pdd_t_users u ON u.ID = np.ObjectId 
		AND u.ID = @UserId 
	WHERE
	n.`status` = 2 
	) t
where 1=1
");
            if (request.KeyWord.HasVal())
            {
                query.AddBodySql("and t.Title like @Keyword");
                query.AddParam("Keyword", request.KeyWord);
            }
            if (request.Sort.HasVal())
            {
                query.AddOrderBySql($"order by t.{request.Sort.PropertyName} {(request.Sort.IsAsc?"ASC":"DESC")}");
            }
            else
            {
                query.AddOrderBySql($"order by t.publishTime desc");
            }
            query.AddParam("UserId", CurrentUser.Id);
            return(await DbHelper.QueryPageListAsync <NewsResponse>(query));
        }
 public Task <IPageList <NewsResponse> > GetPageListAsync(QueryNewsRequest request)
 {
     return(Service.GetPageListAsync(request));
 }
Esempio n. 3
0
 /// <summary>
 /// 获取分页列表
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async Task <IPageList <NewsResponse> > GetPageListAsync(QueryNewsRequest request)
 {
     return(await repository.GetPageListAsync(request));
 }