Пример #1
0
        /// <summary>
        /// 根据文章ID查询文章信息,用于从首页点击进入阅读文章页面,根据返回数据前端判断是否可以直接阅读或者需要遮罩付费
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryArticleByIdRes> QueryArticleById(M_QueryArticleByIdReq req)
        {
            var ptcp = new Ptcp <M_QueryArticleByIdRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.ArticleSysNo <= 0)
            {
                ptcp.DoResult = "文章ID错误";
                return(ptcp);
            }

            //获取当前文章信息
            var artciclInfo = DbSession.MLT.T_SelfMediaArticleRepository.QueryBy(new T_SelfMediaArticle()
            {
                SysNo    = req.ArticleSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (artciclInfo.IsNull() || artciclInfo.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到信息";
                return(ptcp);
            }

            //获取当前作者信息
            var authorInfo = DbSession.MLT.T_SelfMediaAuthorRepository.QueryBy(new T_SelfMediaAuthor()
            {
                SysNo    = artciclInfo.AuthorSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (authorInfo.IsNull() || authorInfo.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到作者信息";
                return(ptcp);
            }

            int payCount = 0;

            if (req.UserId > 0)
            {
                var payDbCount = DbSession.MLT.T_SelfMediaPayRecordRepository.QueryCountBy(new T_SelfMediaPayRecord()
                {
                    UserId       = req.UserId,
                    ArticleSysNo = artciclInfo.SysNo,
                    AuthorSysNo  = authorInfo.SysNo,
                    IsEnable     = true
                });

                payCount = Converter.ParseInt(payDbCount, 0);
            }

            var artciclCount = DbSession.MLT.T_SelfMediaArticleRepository.QueryCountBy(new T_SelfMediaArticle()
            {
                AuthorSysNo = authorInfo.SysNo,
                IsHot       = true,
                IsEnable    = true
            });

            M_ArticleEntity articleEntity = new M_ArticleEntity();

            if (payCount > 0)
            {
                articleEntity.IsRead = true;
            }

            articleEntity.ReadScore = artciclInfo.ReadScore.GetValueOrDefault();
            articleEntity.SysNo     = artciclInfo.SysNo.GetValueOrDefault();
            articleEntity.Title     = artciclInfo.Title;
            articleEntity.HeadPic   = artciclInfo.HeadPic;
            articleEntity.Subtitle  = artciclInfo.Subtitle;
            articleEntity.Content   = artciclInfo.Content;
            //articleEntity.StartDateTime = artciclInfo.StartDateTime.GetValueOrDefault();
            //articleEntity.EndDateTime = artciclInfo.EndDateTime.GetValueOrDefault();
            articleEntity.SortId          = artciclInfo.SortId.GetValueOrDefault();
            articleEntity.RowCeateDate    = artciclInfo.RowCeateDate.GetValueOrDefault();
            articleEntity.StrRowCeateDate = articleEntity.RowCeateDate.ToString("yyyy-MM-dd");

            M_AuthorEntity author = new M_AuthorEntity();

            author.AuthorSysNo     = authorInfo.SysNo.GetValueOrDefault();
            author.AuthorName      = authorInfo.AuthorName;
            author.Portrait        = authorInfo.Portrait;
            author.Describe        = authorInfo.Describe;
            author.HotArticleCount = Converter.ParseInt(artciclCount, 0);

            ptcp.ReturnValue = new M_QueryArticleByIdRes();
            ptcp.ReturnValue.ArticleEntity = articleEntity;
            ptcp.ReturnValue.AuthorEntity  = author;
            ptcp.DoFlag = PtcpState.Success;

            return(ptcp);
        }
Пример #2
0
        /// <summary>
        /// 查询作者下面所有的文章信息
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public Ptcp <M_QueryAuthorArticleRes> QueryAuthorArticle(M_QueryAuthorArticleReq req)
        {
            var ptcp = new Ptcp <M_QueryAuthorArticleRes>();

            if (req.IsNull())
            {
                ptcp.DoResult = "非法请求";
                return(ptcp);
            }

            if (req.AuthorSysNo <= 0)
            {
                ptcp.DoResult = "作者ID错误";
                return(ptcp);
            }

            if (req.PageIndex <= 0 || req.PageIndex > 10000)
            {
                req.PageIndex = 1;
            }

            if (req.PageSize <= 0 || req.PageSize > 100)
            {
                req.PageSize = 10;
            }

            //获取当前作者信息
            var authorInfo = DbSession.MLT.T_SelfMediaAuthorRepository.QueryBy(new T_SelfMediaAuthor()
            {
                SysNo    = req.AuthorSysNo,
                IsEnable = true
            }).FirstOrDefault();

            if (authorInfo.IsNull() || authorInfo.SysNo <= 0)
            {
                ptcp.DoResult = "未能获取到作者信息";
                return(ptcp);
            }

            //获取作者文章信息
            var artciclListCount = DbSession.MLT.T_SelfMediaArticleRepository.QueryCountBy(new T_SelfMediaArticle()
            {
                AuthorSysNo = req.AuthorSysNo,
                IsEnable    = true
            });
            var artciclList = DbSession.MLT.T_SelfMediaArticleRepository.QueryPageBy(req.PageIndex, req.PageSize, new T_SelfMediaArticle()
            {
                AuthorSysNo = req.AuthorSysNo,
                IsEnable    = true
            }, " ORDER BY SysNo DESC").ToList();

            int follow = 0;

            if (req.UserId > 0)
            {
                //是否关注
                var followDb = DbSession.MLT.T_SelfMediaFollowRecordRepository.QueryCountBy(new T_SelfMediaFollowRecord()
                {
                    UserId      = req.UserId,
                    AuthorSysNo = req.AuthorSysNo,
                    IsFollow    = true,
                    IsEnable    = true
                });

                follow = Converter.ParseInt(followDb, 0);
            }

            M_AuthorEntity author = new M_AuthorEntity();

            author.AuthorSysNo = authorInfo.SysNo.GetValueOrDefault();
            author.AuthorName  = authorInfo.AuthorName;
            author.Portrait    = authorInfo.Portrait;
            author.Describe    = authorInfo.Describe;

            if (follow > 0)
            {
                author.IsFollow = true;
            }

            List <M_ArticleEntity> articleEntities = new List <M_ArticleEntity>();

            if (artciclList.IsNotNull() && artciclList.IsHasRow())
            {
                foreach (var art in artciclList)
                {
                    M_ArticleEntity articleEntity = new M_ArticleEntity();

                    articleEntity.ReadScore       = art.ReadScore.GetValueOrDefault();
                    articleEntity.SysNo           = art.SysNo.GetValueOrDefault();
                    articleEntity.HeadPic         = art.HeadPic;
                    articleEntity.Title           = art.Title;
                    articleEntity.Subtitle        = art.Subtitle;
                    articleEntity.Content         = art.Content;
                    articleEntity.SortId          = art.SortId.GetValueOrDefault();
                    articleEntity.RowCeateDate    = art.RowCeateDate.GetValueOrDefault();
                    articleEntity.StrRowCeateDate = articleEntity.RowCeateDate.ToString("yyyy-MM-dd");

                    articleEntities.Add(articleEntity);
                }
            }

            ptcp.ReturnValue = new M_QueryAuthorArticleRes();
            ptcp.ReturnValue.ArticleEntities = articleEntities;
            ptcp.ReturnValue.AuthorEntity    = author;
            ptcp.ReturnValue.Total           = Converter.ParseInt(artciclListCount, 0);
            ptcp.DoFlag = PtcpState.Success;

            return(ptcp);
        }