private BBSListViewModel GetQuestionList(HomeSortTypeEnum sortType) { string sortConfit = ConfigHelper.AppSettings("HomeSortConfig-{0}".FormatWith(sortType.ToString())); int count = ConfigHelper.AppSettings("HomeListCount").ToInt32(); BBSListViewModel model = new BBSListViewModel(); model.QuestionPage = InitPage(); model.QuestionList = QuestionBLL.Instance.GetListBySortType(sortType, count, sortConfit, model.QuestionPage); bool isVip = UserBaseBLL.Instance.IsVIP(UserID);//当前用户是否VIP用户 model.QuestionList?.Where(a => a.TopicID == 1037)?.ToList()?.ForEach(item => { if (IsLogin) { //是会员 或者 购买过了 则显示 item.HideForNoVipUserOrNotBuy = !isVip && DB.BuyOtherLog.FirstOrDefault(a => a.CreateUser == UserID && a.MainID == item.QuestionId) == null; } else { item.HideForNoVipUserOrNotBuy = true; } }); return(model); }
public List <_QuestionInfo> GetListBySortType(HomeSortTypeEnum sortType, int totalCount, string sortConfig, Paging page) { string sqlCondition = string.Empty; StringBuilder orderBy = new StringBuilder(); if (sortConfig.IsNullOrEmpty()) { orderBy.Append("a.IsTop desc,a.IsJinghua desc,a.PVCount desc,");//默认排序 } else { List <string> sortConfigs = sortConfig.Split('+').ToList(); string orderType = sortConfigs.Contains("7") ? "asc" : "desc"; sortConfigs.ForEach(sortItem => { switch (sortItem) { //1置顶 2热门 3精华 4浏览量 5创建时间 case "1": orderBy.AppendFormat(" a.IsTop {0},", orderType); break; case "2": orderBy.AppendFormat(" a.IsRemen {0},", orderType); break; case "3": orderBy.AppendFormat(" a.IsJinghua {0},", orderType); break; case "4": orderBy.AppendFormat(" a.PVCount {0},", orderType); break; case "5": orderBy.AppendFormat(" a.CreateTime {0},", orderType); break; } }); } orderBy.Remove(orderBy.Length - 1, 1); switch (sortType) { case HomeSortTypeEnum.Sort_JinHua: //--精华 sqlCondition = " and a.IsJinghua=1 "; break; case HomeSortTypeEnum.Sort_Hot: //--热门 sqlCondition = " and a.IsRemen=1 "; break; case HomeSortTypeEnum.Sort_Top: // --置顶 sqlCondition = " and a.IsTop=1 "; break; case HomeSortTypeEnum.Sort_New: //-- 新贴(7天内的所有帖子) sqlCondition = " and a.CreateTime>='{0}' ".FormatWith(DateTime.Now.AddDays(-ConfigHelper.AppSettings("NewTieZiDays").ToInt32()).ToString(1)); orderBy.Clear().Append(" a.CreateTime desc "); break; case HomeSortTypeEnum.Sort_NoComment: //--待回复(即评论数为0的) sqlCondition = " and (select count(1) from Comment where MainID=a.QuestionId and MainType=1 and IsDelete=0)=0 "; orderBy.Clear().Append(" a.CreateTime desc "); break; default: sqlCondition = " and 1=1 "; break; } DataSet ds = dal.GetListBySortType(orderBy.ToString(), sqlCondition, totalCount, page.StartIndex, page.EndIndex); page.RecordCount = ds.Tables[0].Rows[0][0].ToString().ToInt32(); return(ModelConvertHelper <_QuestionInfo> .ConvertToList(ds.Tables[1])); }