Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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]));
        }