您目前尚未登陆,请选择【登陆】或【注册
首页->电子商务->MyShop网络商城源码(mvc开发)>>BLL/Article.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:MyShop网络商城源码(mvc开发)
当前文件:文件类型 MyShop/BLL/Article.cs打开代码结构图
高亮显示
		            using System;
using System.Collections.Generic;
using System.Data;

using MyShop.DALFactory;
using MyShop.IDAL;
using MyShop.Model;

namespace MyShop.BLL
{
    public class Article
    {
        ConfigInfo configInfo = new ConfigInfo();
        Config config = new Config();

        private int _id;
        private IArticle dal = DataAccess.CreateArticle();

        public Article()
        {
            configInfo = config.GetModel();
        }


        private int _articleId;


        public Article(int articleId)
        {
            this._id = articleId;
        }

        #region  IArticle

        /// <summary>
        /// 
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        protected int Add(ArticleInfo model)
        {
            if (model == null)
            {
                return 0;
            }
            return dal.Add(model);
        }

        protected int Delete(string filter)
        {
            if (string.IsNullOrEmpty(filter))
                return 0;
            return dal.Delete(filter);
        }

        public bool Exist(string filter)
        {
            filter = filter.Trim();
            if (string.IsNullOrEmpty(filter))
                return false;
            return dal.Exist(filter);
        }
        public DataSet GetDataSet()
        {
            return dal.GetDataSet();
        }

        public DataSet GetDataSet(string filter)
        {
            filter = filter.Trim();
            if (string.IsNullOrEmpty(filter))
                return null;
            return dal.GetDataSet(filter);
        }

        public ArticleInfo GetModel(DataRow dr)
        {
            if (dr == null)
                return null;
            return dal.GetModel(dr);
        }

        private DataSet Query(string sql)
        {
            sql = sql.Trim();
            if (string.IsNullOrEmpty(sql))
                return null;
            return dal.Query(sql);
        }

        public int Update(ArticleInfo model, string filter)
        {
            if (model == null)
                return 0;
            filter = filter.Trim();
            if (string.IsNullOrEmpty(filter))
                return 0;
            return dal.Update(model, filter);
        }

        #endregion

        #region common

        /// <summary>
        /// 
        /// </summary>
        /// <param name="model"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public int Add(ArticleInfo model, out string msg)
        {
            msg = "";
            if (model == null)
            {
                msg = msg + "<li>数据不能为空</li>";
                return 0;
            }
            bool isErr = false;

            if (isErr)
                return 0;

            int count = 0;
            count = Add(model);
            if (count == 0)
                msg = "<li>系统发生错误,请重新添加!</li>";
            if (count == 1)
                msg = "<li>添加成功!</li>";
            return count;
        }

        /// <summary>
        /// 真正从数据库中删除,注意使用时要分清是不是只放到回收站
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns></returns>
        public int Delete(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return 0;

            string filer;
            filer = " articleId =" + articleId;
            return Delete(filer);
        }

        public int Update(ArticleInfo model)
        {

            if (model == null)
            {
                return 0;
            }
            string filter;
            filter = " articleId=" + model.ArticleID;
            return Update(model, filter);
        }

        public ArticleInfo GetModel(int articleId)
        {
            DataSet dataset = new DataSet();
            dataset = GetDataSet(" articleId=" + articleId);
            if (dataset != null && dataset.Tables[0].Rows.Count > 0)
                return GetModel(dataset.Tables[0].Rows[0]);
            return null;
        }
        public ArticleInfo GetModel(string title)
        {
            title = Utils.ReplaceBadSQL(title.Trim());
            if (string.IsNullOrEmpty(title.ToString()))
                return null;
            DataSet dataset = new DataSet();
            dataset = GetDataSet(" title='" + title + "'");
            if (dataset != null && dataset.Tables[0].Rows.Count > 0)
                return GetModel(dataset.Tables[0].Rows[0]);
            return null;
        }




        #endregion

        #region 得到文章列表



        /// <summary>
        /// 得到文章列表(前台用)
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="classId">栏目ID。如果是所有栏目,参数值应为-1</param>
        /// <returns></returns>
        public DataSet GetArticlList(int channelId, int classId)
        {
            bool status = true;
            bool deleted = false; 
            int isDeleted = deleted ? 1 : 0;
            int _status = (status == true) ? 1 : 0;

            string filter = "";
            filter = (channelId == -1) ? filter : filter + " and [channelId] = " + channelId;
            filter = (classId == -1) ? filter : filter + " and [classId] = " + classId;
            filter = filter + " and [Status] = " + _status + " and [deleted] =" + isDeleted;
            filter = " [articleId] > 0 " + filter + "  order by onTop desc,  articleId desc ";
            return GetDataSet(filter);
        }


       
        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="channelId">文章频道ID</param>
        /// <returns></returns>
        public DataSet GetDataSetByChannelId(int channelId)
        {
            return GetDataSet(channelId,-1);
        }


        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="classId">文章栏目ID</param>
        /// <returns></returns>
        public DataSet GetDataSetByClassId(int classId)
        {
            return GetDataSet(-1,classId);
        }

        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="classId">栏目ID。如果是所有栏目,参数值应为-1</param>
        /// <returns></returns>
        public DataSet GetDataSet(int channelId, int classId)
        {
            string filter = "";
            filter = (channelId == -1) ? filter : filter + " and [channelId] = " + channelId;
            filter = (classId == -1) ? filter : filter + " and [classId] = " + classId;
            filter = " [articleId] > 0 " + filter + "  order by  articleId desc ";
            return GetDataSet(filter);
        }

        //================================

        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="Status">是否审核通过</param>
        /// <param name="deleted">是否已删除</param>
        /// <returns></returns>
        public DataSet GetDataSet(bool status, bool deleted)
        {
            return GetDataSet(-1,-1,status,deleted);
        }

        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="status">是否审核通过</param>
        /// <param name="deleted">是否已删除</param>
        /// <returns></returns>
        public DataSet GetDataSetByChannelId(int channelId,bool status, bool deleted)
        {
            return GetDataSet(channelId,-1,status,deleted);
        }




        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="classId">栏目ID。如果是所有栏目,参数值应为-1</param>
        /// <param name="status">是否审核通过</param>
        /// <param name="deleted">是否已删除</param>
        /// <returns></returns>
        public DataSet GetDataSetByClassId(int classId,bool status, bool deleted)
        {
            return GetDataSet(-1,classId,status,deleted);
        }


        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="classId">栏目ID。如果是所有栏目,参数值应为-1</param>
        /// <param name="status">是否审核通过</param>
        /// <param name="deleted">是否已删除</param>
        /// <returns></returns>
        public DataSet GetDataSet(int channelId, int classId, bool status, bool deleted)
        {
            int isDeleted = deleted ? 1 : 0;
            int _status = (status == true) ? 1 : 0;

            string filter = "";
            filter = (channelId == -1) ? filter : filter + " and [channelId] = " + channelId;
            filter = (classId == -1) ? filter : filter + " and [classId] = " + classId;
            filter = filter +  " and [Status] = " + _status + " and [deleted] =" + isDeleted;
            filter = " [articleId] > 0 " + filter + "  order by  articleId desc ";            
            return GetDataSet(filter);
        }



       //=======================================

        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="deleted">是否已放入回收站</param> 
        /// <returns></returns>
        public DataSet GetDataSetByChannelId(int channelId, bool deleted)
        {
            return GetDataSet(channelId, -1, string.Empty, deleted);
        }

        /// <summary>
        /// 得到文章列表
        /// </summary>
        /// <param name="classId">栏目ID。如果是所有栏目,参数值应为-1</param>
        /// <param name="deleted">是否已放入回收站</param> 
        /// <returns></returns>
        public DataSet GetDataSetByClassId(int classId, bool deleted)
        {
            return GetDataSet(-1, classId, string.Empty, deleted);
        }


        /// <summary>
        /// 返回所有未放入回收站的文章
        /// </summary>
        /// <returns></returns>
        public DataSet GetDataSetUndeleted()
        {
            return GetDataSetUndeleted(-1);
        }


        /// <summary>
        /// 返回未放入回收站的文章
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <returns></returns>
        public DataSet GetDataSetUndeleted(int channelId)
        {
            return GetDataSetUndeleted(channelId, string.Empty);
        }

        /// <summary>
        /// 返回未放入回收站的文章
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="articlOptionFilter">文章选项。无选定项时值应为空</param>
        /// <returns></returns>
        public DataSet GetDataSetUndeleted(int channelId, string articlOptionFilter)
        {
            return GetDataSet(channelId, -1, articlOptionFilter, false);
        }

        /// <summary>
        /// 返回所有放入回收站的文章
        /// </summary>
        /// <returns></returns>
        public DataSet GetDataSetDeleted()
        {
            return GetDataSetDeleted(-1);
        }


        /// <summary>
        /// 返回放入回收站的文章
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <returns></returns>
        public DataSet GetDataSetDeleted(int channelId)
        {
            return GetDataSet(channelId, -1, string.Empty, true);
        }

        /// <summary>
        ///返回放入回收站的文章        
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="articlOptionFilter">文章选项。无选定项时值应为空</param>
        /// <returns></returns>
        public DataSet GetDataSetDeleted(int channelId, string articlOptionFilter)
        {
            return GetDataSet(channelId, -1, articlOptionFilter, true);
        }

        /// <summary>
        /// 返回文章列表
        /// </summary>
        /// <param name="channelId">频道ID。如果是所有频道,参数值应为-1</param>
        /// <param name="classId">栏目ID。如果是所有栏目,参数值应为-1</param>
        /// <param name="articlOptionFilter">文章选项。无选定项时值应为空</param>
        /// <param name="deleted">是否已放入回收站</param> 
        /// <returns></returns>
        public DataSet GetDataSet(int channelId, int classId, string articlOptionFilter, bool deleted)
        {
            int isDeleted = deleted ? 1 : 0;
            string filter = "";

            filter = (channelId == -1) ? filter : filter + " and [channelId] = " + channelId;
            filter = (classId == -1) ? filter : filter + " and [classId] = " + classId;
            filter = (string.IsNullOrEmpty(articlOptionFilter.Trim())) ? filter : filter + " and " + articlOptionFilter;
            filter = filter +  " and [Deleted] = " + isDeleted;
            filter = " [articleId] > 0 " + filter + "  order by  articleId desc ";
            return GetDataSet(filter);
        }

        #endregion

        #region 前台模块
        /// <summary>
        /// 最新文章
        /// </summary>
        /// <param name="count">返回文章个数</param>
        /// <returns></returns>
        public DataSet GetLastArticles( int count)
        {
            if (count == 0)
                return null;
            return dal.GetLastArticles(count);
        }

        /// <summary>
        /// 热点文章
        /// </summary>
        /// <param name="count">返回文章个数</param>
        /// <returns></returns>
        public DataSet GetHotArticles( int count)
        {
            if (count == 0)
                return null;
            return dal.GetHotArticles(count);
        }

        /// <summary>
        /// 推荐文章
        /// </summary>
        /// <param name="count">返回文章个数</param>
        /// <returns></returns>
        public DataSet GetRecommendedArticles( int count )
        {
            if (count == 0)
                return null;
            return dal.GetRecommendedArticles(count);
        }

        public DataSet GetDataSetByTitle(string title)
        {
            if (string.IsNullOrEmpty(title))
                return null;
            return GetDataSet(" title like '%" + Utils.ReplaceBadSQL(title) + "%'");
        }

        #endregion

        #region 以下过程要用Article article = new Article(id)实例化后才能进行调用


        /// <summary>
        /// 增加点击数
        /// </summary>
        /// <param name="num">要增加或减少的点击数,加用正数,减用负数</param>
        public void AddHit( int num)
        {
            ArticleInfo model = new ArticleInfo();
            model = Model;
            model.Hits += num;
            Model = model;
        }


        /// <summary>
        /// 增加评论数
        /// </summary>
        /// <param name="num">要增加或减少的点击数,加用正数,减用负数</param>
        public void AddCommentCount( int num)
        {
            ArticleInfo model = new ArticleInfo();
            model = Model;
            model.CommentCount += num;
            Model = model;
        }


        #region property

        /// <summary>
        /// 获取当前项目ID
        /// </summary>
        public int ID
        {
            get
            {
                return this._id;
            }
        }

        /// <summary>
        ///  获取调查项目的实体
        /// </summary>
        public ArticleInfo Model
        {
            get
            {
                return GetModel(this._id);
            }
            set
            {
                Update(value);
            }
        }

        /// <summary>
        /// 获取当前对象是否存在(数据库中有没有这条记录)
        /// </summary>
        public bool IsExist
        {
            get
            {
                return Model == null ? false : true;
            }
        }

        #endregion

        #endregion


        #region  后台管理

        /// <summary>
        ///  删除Article
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="classId"></param>
        /// <returns></returns>
        public int Delete(int channelId, int classId)
        {

            string filer;
            filer = " [channelId]=" + channelId + " and [classId] = " + classId;
            return Delete(filer);
        }



        /// <summary>
        ///  快速搜索
        /// </summary>
        /// <param name="channelId">文章频道ID</param>
        /// <param name="classId">文章栏目ID</param>
        /// <param name="articlOptionFilter">文章选项。无选定项时值应为空</param>
        /// <param name="deleted">true:返回放到回收站的文章;false:返回未放到回收站的文章</param>
        /// <returns></returns>
        public DataSet QuickSearch(int channelId, int classId, string articlOptionFilter, bool deleted)
        {
            return dal.QuickSearch(channelId, classId,articlOptionFilter, deleted);
        }


        /// <summary>
        /// 高级查询
        /// </summary>
        /// <param name="channelId">文章频道ID</param>
        /// <param name="classId">文章栏目ID</param>
        /// <param name="articlOptionFilter">文章选项。无选定项时值应为空</param>
        /// <param name="field"></param>
        /// <param name="keywords"></param>
        /// <param name="deleted">true:返回放到回收站的文章;false:返回未放到回收站的文章</param>
        /// <returns></returns>
        public DataSet KeywordsSearch(int channelId, int classId, string articlOptionFilter, string field, string keywords, bool deleted)
        {
            field = Utils.ReplaceBadSQL(field.Trim().ToLower());
            keywords = Utils.ReplaceBadSQL(keywords.ToLower().Trim());
            if (string.IsNullOrEmpty(field) || string.IsNullOrEmpty(keywords))
                return null;
            return dal.KeywordsSearch(channelId,classId,articlOptionFilter, field, keywords,deleted);
        }



        /// <summary>
        /// 判断该文章是不是热点
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns>无该文章时返回false</returns>
        public bool IsHot(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return false;

            if (model.IsHot == 1)
                return true;
            else
                return false;
        }


        /// <summary>
        /// 取消或设置该文章为热点
        /// </summary>
        /// <param name="articleId"></param>
        /// <param name="action">true  为设置  false为取消</param>
        /// <returns></returns>
        public int IsHot(int articleId, bool action)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return 0;

            if (action)
            {
                model.IsHot = 1;
            }
            else
            {
                model.IsHot = 0;
            }
            return Update(model);
        }

        /// <summary>
        /// 判断该文章是不是固顶
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns>无该文章时返回false</returns>
        public bool OnTop(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return false;

            if (model.OnTop == 1)
                return true;
            else
                return false;
        }


        /// <summary>
        /// 取消或设置该文章为固顶
        /// </summary>
        /// <param name="articleId"></param>
        /// <param name="action">true  为设置  false为取消</param>
        /// <returns></returns>
        public int OnTop(int articleId, bool action)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return 0;

            if (action )
            {
                model.OnTop = 1;
            }
            else
            {
                model.OnTop = 0;
            }
            return Update(model);
        }

        /// <summary>
        /// 判断该文章是不是推荐
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns>无该文章时返回false</returns>
        public bool IsElite(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return false;

            if (model.IsElite == 1)
                return true;
            else
                return false;
        }


        /// <summary>
        /// 取消或设置该文章为推荐
        /// </summary>
        /// <param name="articleId"></param>
        /// <param name="action">true  为设置  false为取消</param>
        /// <returns></returns>
        public int IsElite(int articleId, bool action)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return 0;

            if (action)
            {
                model.IsElite = 1;
            }
            else
            {
                model.IsElite = 0;
            }
            return Update(model);
        }

        /// <summary>
        /// 判断该文章是不是审核通过
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns>无该文章时返回false</returns>
        public bool Pass(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return false;

            if (model.Status == 1)
                return true;
            else
                return false;
        }

        /// <summary>
        /// 取消或设置该文章状态
        /// </summary>
        /// <param name="articleId"></param>
        /// <param name="action">true    false为取消审核通过</param>
        /// <returns></returns>
        public int Pass(int articleId, bool action)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return 0;

            if (action)
            {
                model.Status = 1; 
            }
            else
            {
                model.Status = 0;
            }
            return Update(model);
        }

        /// <summary>
        /// 判断该文章有没有首页图片
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns>无该文章时返回false</returns>
        public bool HasDefaultPic(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model == null)
                return false;

            if (model.DefaultPicUrl.Length >= 3)
                return true;
            else
                return false;
        }

        /// <summary>
        /// 判断该文章标题是不是已经存在
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        public bool ExistTitle(string title)
        {
            title = title.Trim();
             if(string.IsNullOrEmpty(title))
                 return false;
             return Exist(" title ='" + Utils.ReplaceBadSQL(title) + "'"); 
        }


        /// <summary>
        /// 将文章放到回收站
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns></returns>
        public int MoveToRecycle(int articleId)
        {
            ArticleInfo model = new ArticleInfo();

            model = GetModel(articleId);
            if (model != null)
            {

                model.Deleted = 1;
                return Update(model);
            }
            return 0;
        }


        /// <summary>
        /// 将文章从回收站还原
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns></returns>
        public int RestoreFromRecycle(int articleId)
        {
            ArticleInfo model = new ArticleInfo();
            model = GetModel(articleId);
            if (model != null)
            {
                model.Deleted = 0;
                return Update(model);
            }
            return 0;
        }

        /// <summary>
        /// 将文章从回收站清空
        /// </summary>
        /// <returns></returns>
        public int DeleteAllFromRecycle()
        {
            string filter = " Deleted = 1 ";
            return Delete(filter);
        }

        public int RestoreAllFromRecycle()
        {
            string filter = " Deleted = 1 ";
            DataSet dataset = new DataSet();
            dataset = GetDataSet(filter);

            ArticleInfo model = new ArticleInfo();
            int i = 0;
            foreach (DataRow dr in dataset.Tables[0].Rows)
            {
                model = GetModel(dr);
                if(model != null)
                    RestoreFromRecycle(model.ArticleID);
                i++;
            }
            return i;
        }
        #endregion

        /// <summary>
        /// 显示classId栏目的文章列表
        /// </summary>
        /// <param name="classId">栏目ID</param>
        /// <param name="count">要显示的数目</param>
        /// <param name="cssClass">样式类名</param>
        /// <param name="titleMaxLength">显示的最大长度</param>
        /// <returns></returns>
        public string ShowArticleList(int classId, int count, string cssClass, int titleMaxLength)
        {
            DataSet dataset = new DataSet();
            Class cls = new Class();
            ClassInfo clsModel = new ClassInfo();

            clsModel = cls.GetModel(classId);
            if (clsModel == null)
                return "";
            string classtitle = clsModel.ClassName;
            dataset = GetArticlList(-1, classId);
            ArticleInfo model = new ArticleInfo();
            string content = "";
            string title = "";

            int listCount = Math.Min(count, dataset.Tables[0].Rows.Count);
            for (int i = 0; i < listCount; i++)
            {
                model = GetModel(dataset.Tables[0].Rows[i]);
                title = (model.Title.Length > titleMaxLength) ? model.Title.Substring(0, titleMaxLength) + "…" : model.Title;
                content = content + "<li><A href=\"" + configInfo.InstallDir + "article/ShowArticle.aspx?articleId=" + model.ArticleID + "\" target=_blank>" + title + "</A></li>\r\n";
            }
            content = "<ul>\r\n" + content + "</ul>\r\n";
            return "<div class=\"" + cssClass + "\">\r\n" + "<span>" + classtitle + " >></span>\r\n" + content
                + "<P class=\"More\"><A href=\"" + configInfo.InstallDir + "news\" target=_blank>更多>></A></P></div>\r\n";
        }
    }
}


        
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:MyShop网络商城源码(mvc开发)
51Aspx.com 版权所有 CopyRight © 2000-2008. 京ICP备06046876号