moduleFactory1

moduleFactory1

 

using System;
using System.Collections.Generic;
using System.Text;
using Com.Csddt.BBS.Model;
using Com.Csddt.BBS.IDAL;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common;
using System.Data.Common;
using System.Data;
using Com.Csddt.Admin.Model;

namespace Com.Csddt.BBS.OracleDAL
{
    public class BBSModuleFactory : IBBSModule
    {

        /// <summary>
        /// 数据库连接字符串
        /// </summary>
        private Database db = DatabaseFactory.CreateDatabase("Com.Csddt.bbs.ConnectionString");

        /// <summary>
        /// 添加  
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool AddModule(BBSModuleEntity model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("  insert into bbs_module m   ");
            strSql.Append("  ( m.mid,");
            strSql.Append("  m.modulename, ");
            strSql.Append("  m.ISDel, ");
            strSql.Append("  m.description,");
            strSql.Append("  m.addtime,");
            strSql.Append("  m.img,");
            strSql.Append("  m.parentid,");
            strSql.Append("  m.sort, ");
            strSql.Append("  m.iscommon,");
            strSql.Append("  m.admuser_id,");
            strSql.Append("  m.level_id,   ");
            strSql.Append("  m.FUBANZHU,");
            strSql.Append("  m.AUDIT_STATE_ID,");
            strSql.Append("  m.UPDATETIME,");
            strSql.Append("  m.SYSTEM_TYPE,");
            strSql.Append("  m.SYSTEM_ID,");
            strSql.Append("  m.AUDIT_DATE,");
            strSql.Append("  m.AUDIT_USER)");
            strSql.Append("  values ");
            strSql.Append(" (:mid,");
            strSql.Append("  :moduleName, ");
            strSql.Append("  :isDel,  ");
            strSql.Append("  :description,");
            strSql.Append("  :addTime, ");
            strSql.Append("  :img, ");
            strSql.Append("  :parentId, ");
            strSql.Append("  :sort,     ");
            strSql.Append("  :isCommon, ");
            strSql.Append("  :admuserID, ");
            strSql.Append("  :levelID, ");
            strSql.Append("  :Fubanzhu,");
            strSql.Append("  :auditStateID,");
            strSql.Append("  :updateTime,");
            strSql.Append("  :systemType,");
            strSql.Append("  :systemId,");
            strSql.Append("  :auditData,");
            strSql.Append("  :auditUser)");

            DbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
            model.MID = GetCurrentBBSID() + 1;
            db.AddInParameter(cmd, "mid", DbType.Int32, model.MID);
            db.AddInParameter(cmd, "moduleName", DbType.String, model.MODULENAME);
            db.AddInParameter(cmd, "isDel", DbType.Int32, model.ISDEL);
            db.AddInParameter(cmd, "description", DbType.String, model.DESCRIPTION);
            db.AddInParameter(cmd, "addTime", DbType.DateTime, model.ADDTIME);
            db.AddInParameter(cmd, "img", DbType.String, model.IMG);
            db.AddInParameter(cmd, "parentId", DbType.Int32, model.PARENTID);
            db.AddInParameter(cmd, "sort", DbType.Int32, model.MID);//新添加的排序赋值为当前的模块id
            db.AddInParameter(cmd, "isCommon", DbType.Int32, model.ISCOMMON);
            db.AddInParameter(cmd, "admuserID", DbType.Int32, model.ADMUSER_ID);
            db.AddInParameter(cmd, "levelID", DbType.Int32, model.LevelId);
            db.AddInParameter(cmd, "updateTime", DbType.DateTime, model.UpdateTime);
            db.AddInParameter(cmd, "systemType", DbType.Int32, model.SystemType);
            db.AddInParameter(cmd, "systemId", DbType.Int32, model.SystemID);
            db.AddInParameter(cmd, "auditData", DbType.DateTime, model.AuditData);
            db.AddInParameter(cmd, "auditUser", DbType.Int32, model.AuditUser);
            db.AddInParameter(cmd, "Fubanzhu", DbType.String, model.Fubanzhu);
            db.AddInParameter(cmd, "auditStateID", DbType.Int32, model.AuditStateID);
            try
            {
                db.ExecuteNonQuery(cmd);
                return true;
            }
            catch
            {
                return false;
            }

        }



        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(BBSModuleEntity model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update bbs_module m ");
            strSql.Append(" set m.modulename = :moduleName,");
            strSql.Append(" m.isdel          = :isDel,");
            strSql.Append(" m.description    = :description,");
            strSql.Append(" m.addtime        = :addTime,");
            strSql.Append(" m.img            = :img,");
            strSql.Append(" m.parentid       = :parentId,");
            strSql.Append(" m.sort           = :sort,");
            strSql.Append(" m.iscommon       = :isCommon,");
            strSql.Append(" m.admuser_id     = :admuserID,");
            strSql.Append(" m.Level_Id       = :levelID,");
            strSql.Append(" m.fubanzhu       =:fubanzhu , ");
            strSql.Append(" m.AUDIT_STATE_ID =:auditStateID,");
            strSql.Append(" m.UPDATETIME     =:updateTime,");
            strSql.Append(" m.SYSTEM_TYPE    =:systemType, ");
            strSql.Append(" m.SYSTEM_ID      =:systemId, ");
            strSql.Append(" m.AUDIT_DATE     =:auditData, ");
            strSql.Append(" m.AUDIT_USER     =:auditUser ");
            strSql.Append("   where m.mid    = :mid");

            DbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
            db.AddInParameter(cmd, "moduleName", DbType.String, model.MODULENAME);
            db.AddInParameter(cmd, "isDel", DbType.Int32, model.ISDEL);
            db.AddInParameter(cmd, "description", DbType.String, model.DESCRIPTION);
            db.AddInParameter(cmd, "addTime", DbType.DateTime, model.ADDTIME);
            db.AddInParameter(cmd, "img", DbType.String, model.IMG);
            db.AddInParameter(cmd, "parentId", DbType.Int32, model.PARENTID);
            db.AddInParameter(cmd, "sort", DbType.Int32, model.SORT);
            db.AddInParameter(cmd, "isCommon", DbType.Int32, model.ISCOMMON);
            db.AddInParameter(cmd, "admuserID", DbType.Int32, model.ADMUSER_ID);
            db.AddInParameter(cmd, "levelID", DbType.Int32, model.LevelId);
            db.AddInParameter(cmd, "updateTime", DbType.DateTime, model.UpdateTime);
            db.AddInParameter(cmd, "fubanzhu", DbType.String, model.Fubanzhu);
            db.AddInParameter(cmd, "mid", DbType.Int32, model.MID);
            db.AddInParameter(cmd, "systemType", DbType.Int32, model.SystemType);
            db.AddInParameter(cmd, "systemId", DbType.Int32, model.SystemID);
            db.AddInParameter(cmd, "auditData", DbType.DateTime, model.AuditData);
            db.AddInParameter(cmd, "auditUser", DbType.Int32, model.AuditUser);
            db.AddInParameter(cmd, "auditStateID", DbType.Int32, model.AuditStateID);
            try
            {
                if (db.ExecuteNonQuery(cmd) > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }

        public bool modelUpdate(BBSModuleEntity model)
        {
            String strSql = "update bbs_module t  " +
                            "  set t.modulename    = :modulename," +
                           "  t.description = :description, " +
                            "  t.parentid = :parentid, " +
                             "  t.fubanzhu = :fubanzhu, " +
                             "  t.admuser_id = :admuser_id, " +
                           "t.img  = :img " +
                           " where t.mid = :mid";
            DbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
            db.AddInParameter(cmd, "modulename", DbType.String,model.MODULENAME);
            db.AddInParameter(cmd, "description", DbType.String, model.DESCRIPTION);
            db.AddInParameter(cmd, "parentid", DbType.Int32, model.PARENTID);
            db.AddInParameter(cmd, "fubanzhu", DbType.String, model.Fubanzhu);
            db.AddInParameter(cmd, "admuser_id", DbType.Int32, model.ADMUSER_ID);
            db.AddInParameter(cmd, "img", DbType.String,model.IMG);
            db.AddInParameter(cmd, "mid", DbType.Int32,model.MID);
            try
            {
                db.ExecuteNonQuery(cmd);
                return true;
            }
            catch
            {
                return false;
            }

        }
        /// <summary>
        /// 删除一条数据  mids:编号列表(如:1,2,3,20)
        /// </summary>
        public bool Delete(string mids)
        {
            string sql = @"update BBS_MODULE set ISDEL=1 where mid in(" + mids + ")";
            DbCommand cmd = db.GetSqlStringCommand(sql);
            if (db.ExecuteNonQuery(cmd) > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 更新排序
        /// </summary>
        /// <param name="mid">模块ID</param>
        /// <param name="sort">排序位置</param>
        /// <returns></returns>
        public bool UpdateSort(int mid, int sort)
        {
            string sql = @"update BBS_MODULE set sort=" + sort + " where mid =" + mid;
            DbCommand cmd = db.GetSqlStringCommand(sql);
            if (db.ExecuteNonQuery(cmd) > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 分页  
        /// </summary>
        /// <param name="pageSize">每页显示条数</param>
        /// <param name="pageIndex">页面索引</param>
        /// <param name="keys">名字关键字</param>
        /// <param name="parentID">父编号</param>
        /// <param name="refTotal"></param>
        /// <returns></returns>
        public List<BBSModuleEntity> GetPageList(int pageSize, int pageIndex, string keys, int parentID, ref int refTotal)
        {
            List<BBSModuleEntity> listModel = new List<BBSModuleEntity>();
            string sql = @"select row_number() over (order by t.mid desc) as rn, t.* from bbs_module t where isdel=0 ";
            string sql2 = "select count(*) from bbs_module t where isdel=0 ";
            string url = "";
            if (!string.IsNullOrEmpty(keys))
            {
                url += " and t.modulename like '%" + keys + "%'";
            }
            if (parentID > 0)
            {
                url += " and t.parentid=" + parentID;
            }
            DbCommand cmd = db.GetSqlStringCommand(sql2 + url);
            object temp = db.ExecuteScalar(cmd);
            if (temp == null)
            {
                return null;
            }
            else
            {
                refTotal = int.Parse(temp.ToString());//rn between {1} and {2}
            }
            DbCommand cmd2 = db.GetSqlStringCommand(string.Format("select * from ({0}) where rn>{1} and rn<= {2} ", sql + url, pageSize * (pageIndex - 1), pageSize * pageIndex));
            DataSet ds = db.ExecuteDataSet(cmd2);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                listModel.Add(GetModel(dr));
            }
            return listModel;
        }


        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="pageSize">每页显示条数</param>
        /// <param name="pageIndex">页面索引</param>
        /// <param name="keys">名字关键字</param>
        /// <param name="parentID">父编号</param>
        /// <param name="refTotal"></param>
        /// <returns></returns>
        public List<BBSModuleEntity> GetPageListBySort(int pageSize, int pageIndex, string keys, int parentID, ref int refTotal)
        {
            List<BBSModuleEntity> listModel = new List<BBSModuleEntity>();
            string sql = @"select row_number() over (order by t.Sort desc) as rn, t.* from bbs_module t where isdel=0 ";
            string sql2 = "select count(*) from bbs_module t where isdel=0 ";
            string url = "";
            if (!string.IsNullOrEmpty(keys))
            {
                url += " and t.modulename like '%" + keys + "%'";
            }
            if (parentID > 0)
            {
                url += " and t.parentid=" + parentID;
            }
            DbCommand cmd = db.GetSqlStringCommand(sql2 + url);
            object temp = db.ExecuteScalar(cmd);
            if (temp == null)
            {
                return null;
            }
            else
            {
                refTotal = int.Parse(temp.ToString());//rn between {1} and {2}
            }
            DbCommand cmd2 = db.GetSqlStringCommand(string.Format("select * from ({0}) where rn>{1} and rn<= {2} ", sql + url, pageSize * (pageIndex - 1), pageSize * pageIndex));
            DataSet ds = db.ExecuteDataSet(cmd2);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                listModel.Add(GetModel(dr));
            }
            return listModel;
        }
        /// <summary>
        /// 分页   
        /// </summary>
        /// <param name="pageSize">每页显示条数</param>
        /// <param name="pageIndex">页面索引</param>
        /// <param name="keys">名字关键字</param>
        /// <param name="parentID">父编号</param>
        /// <param name="refTotal"></param>
        /// <returns></returns>
        public List<BBSModuleEntity> GetIsCommonBySort(int pageSize, int pageIndex, int parentID, ref int refTotal)
        {
            List<BBSModuleEntity> listModel = new List<BBSModuleEntity>();
            string sql = @"select row_number() over (order by t.Sort desc) as rn, t.* from bbs_module t where isdel=0 and iscommon=1";
            string sql2 = "select count(*) from bbs_module t where isdel=0 and iscommon=1 ";
            string url = "";
            if (parentID > 0)
            {
                url += " and t.parentid=" + parentID;
            }
            DbCommand cmd = db.GetSqlStringCommand(sql2 + url);
            object temp = db.ExecuteScalar(cmd);
            if (temp == null)
            {
                return null;
            }
            else
            {
                refTotal = int.Parse(temp.ToString());
            }
            DbCommand cmd2 = db.GetSqlStringCommand(string.Format("select * from ({0}) where rn>{1} and rn<= {2} ", sql + url, pageSize * (pageIndex - 1), pageSize * pageIndex));
            DataSet ds = db.ExecuteDataSet(cmd2);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                listModel.Add(GetModel(dr));
            }
            return listModel;
        }
        public List<BBSModuleEntity> GetInfoOrderSort(int pageSize, int pageIndex, bool isCommom, int parentID, ref int refTotal)
        {
            List<BBSModuleEntity> listModel = new List<BBSModuleEntity>();
            string sql = @"select row_number() over (order by t.Sort desc) as rn, t.* from bbs_module t where isdel=0";
            string sql2 = "select count(*) from bbs_module t where isdel=0 ";
            string url = "";
            if (isCommom)
            {
                url += " and iscommon=1 ";
            }
            if (parentID > 0)
            {
                url += " and t.parentid=" + parentID;
            }
            DbCommand cmd = db.GetSqlStringCommand(sql2 + url);
            object temp = db.ExecuteScalar(cmd);
            if (temp == null)
            {
                return null;
            }
            else
            {
                refTotal = int.Parse(temp.ToString());//rn between {1} and {2}
            }
            DbCommand cmd2 = db.GetSqlStringCommand(string.Format("select * from ({0}) where rn>{1} and rn<= {2} ", sql + url, pageSize * (pageIndex - 1), pageSize * pageIndex));
            DataSet ds = db.ExecuteDataSet(cmd2);
            foreach (DataRow dr in ds.Tables[0 ].Rows)
            {
                listModel.Add(GetModel(dr));
            }
            return listModel;
        }

        /// <summary>
        /// 获得模块列表
        /// </summary>
        /// <param name="isCommon">是否通用的(0:是,1:不是)</param>
        /// <param name="parentID">父节点ID</param>
        /// <param name="isDisplay">是否被屏蔽(0:不是,1:是)</param>
        /// <param name="isClose">是否被关闭(0:不是,1:是)</param>
        /// <param name="shqId">属于莫个生活圈(生活圈ID列表)</param>
        /// <param name="keyword">关键字</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSieze"></param>
        /// <param name="refTotal"></param>
        /// <returns></returns>
        public List<BBSModuleEntity> GetModuleList(int? isCommon, int parentID, int? isDisplay, int? isClose, string shqId, string keyword, int pageIndex,
            int pageSieze, ref int refTotal)
        {
            int startIndex = pageSieze * (pageIndex - 1) + 1;
            int endIndex = pageIndex * pageSieze;

            StringBuilder strWhere = new StringBuilder();

            strWhere.Append( "where 1=1 ");

            //父节点ID
            strWhere.Append("  and b.parentid=" + parentID);

            //是否通用
            if (isCommon.HasValue)
            {
                strWhere.Append("  and b.iscommon=" + isCommon);
            }

            //是否被屏蔽
            if (isDisplay.HasValue)
            {
                strWhere.Append("  and b.ISDISPLAY=  " + isDisplay);
            }

            //是否被关闭
            if (isClose.HasValue)
            {
                strWhere.Append(" and b.AUDIT_STATE_ID= " + isClose);
            }

            //是否属于生活圈  
            if (!String.IsNullOrEmpty(shqId))
            {
                strWhere.AppendFormat(" and b.SHQ_ID in ({0})", shqId);
            }

            //板块名称
            if (!string.IsNullOrEmpty(keyword))
            {
                strWhere.AppendFormat(" and b.modulename like '%{0}%'", keyword);
            }

            //获得符号条件的总数
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" select count(*) from bbs_module b ");
            strSql.Append(strWhere);
            DbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
            try
            {
                Object objValue = db.ExecuteScalar(cmd);
                if (DBNull.Value != objValue)
                {
                    refTotal = Convert.ToInt32(objValue);
                }
                else
                {
                    refTotal = 0;
                    return null;
                }
            }
            catch
            {
                refTotal = 0;
                return null;
            }
             string orderStr = "order by  b.Sort desc";  //排序规律是按照排序倒序   
       
            string strJoin = " left join adm_user u on b.admuser_ID=u.user_id ";
            List<BBSModuleEntity> list = new List<BBSModuleEntity>();
            strSql = new StringBuilder();
            strSql.Append("select * from (");
            strSql.Append("select rownum as rowIndex ,c.* from (");
            strSql.Append("select b.*,u.login_name,u.user_name from bbs_module b ");
            strSql.Append(strJoin);
            strSql.Append(strWhere.ToString());
            strSql.Append(orderStr);
            strSql.Append(") c");
            strSql.Append(") t where t.rowIndex>=:startIndex and t.rowIndex<=:endIndex");
            cmd = db.GetSqlStringCommand(strSql.ToString());
            db.AddInParameter(cmd, "startIndex", DbType.Int32, startIndex);
            db.AddInParameter(cmd, "endIndex", DbType.Int32, endIndex);


            using (IDataReader reader = db.ExecuteReader(cmd))
            {
                list = BindData(reader);
                reader.Dispose();
            }
            return list;
        }





        /// <summary>
        /// 获得模块列表
        /// </summary>
        /// <param name="isCommon">是否通用(0:通用,1:不通用;2:通用并是兴趣小组板块) 3.通用并且是活动专区模块)</param>
        /// <param name="parentID">父节点ID</param>
        /// <param name="isClose">是否被关闭(0:不是,1:是)</param>
        /// <param name="keyword">关键字</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSieze"></param>
        /// <param name="refTotal"></param>
        /// <returns></returns>
        public List<BBSModuleEntity> GetModuleList(int? isCommon, int parentID,  int? isClose, string keyword, int pageIndex,
            int pageSieze, ref int refTotal)
        {
            int startIndex = pageSieze * (pageIndex - 1) + 1;
            int endIndex = pageIndex * pageSieze;

            StringBuilder strWhere = new StringBuilder();

            strWhere.Append("where 1=1 ");

            //父节点ID   
            strWhere.Append("  and b.parentid=" + parentID);

            //是否通用
            if (isCommon.HasValue)
            {
                strWhere.Append("  and b.iscommon=" + isCommon);
            }

            //是否被关闭
            if (isClose.HasValue)
            {
                strWhere.Append(" and b.AUDIT_STATE_ID= " + isClose);
            }


            //板块名称
            if (!string.IsNullOrEmpty(keyword))
            {
                strWhere.AppendFormat(" and b.modulename like '%{0}%'", keyword);
            }

            //获得符号条件的总数
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" select count(*) from bbs_module b ");
            strSql.Append(strWhere);
            DbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
            try
            {
                Object objValue = db.ExecuteScalar(cmd);
                if (DBNull.Value != objValue)
                {
                    refTotal = Convert.ToInt32(objValue);
                }
                else
                {
                    refTotal = 0;
                    return null;
                }
            }
            catch
            {
                refTotal = 0;
                return null;
            }
            string orderStr = "order by  b.Sort desc";  //排序规律是按照排序倒序   

            string strJoin = " left join adm_user u on b.admuser_ID=u.user_id ";
            List<BBSModuleEntity> list = new List<BBSModuleEntity>();
            strSql = new StringBuilder();
            strSql.Append("select * from (");
            strSql.Append("select rownum as rowIndex ,c.* from (");
            strSql.Append("select b.*,u.login_name,u.user_name from bbs_module b ");
            strSql.Append(strJoin);
            strSql.Append(strWhere.ToString());
            strSql.Append(orderStr);
            strSql.Append(") c");
            strSql.Append(") t where t.rowIndex>=:startIndex and t.rowIndex<=:endIndex");
            cmd = db.GetSqlStringCommand(strSql.ToString());
            db.AddInParameter(cmd, "startIndex", DbType.Int32, startIndex);
            db.AddInParameter(cmd, "endIndex", DbType.Int32, endIndex);


            using (IDataReader reader = db.ExecuteReader(cmd))
            {
                list = BindData(reader);
                reader.Dispose();
            }
            return list;
        }


        /// <summary>
        /// 获得模块列表
        /// </summary>
        /// <param name="isCommon">是否通用的类型[多个用,隔开](是否通用(0:通用,1:不通用;2:通用并是兴趣小组板块) 3.通用并且是活动专区模块)</param>
        /// <param name="parentID">父节点ID</param>
        /// <param name="isClose">是否被关闭(0:不是,1:是)</param>
        /// <param name="keyword">关键字</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSieze"></param>
        /// <param name="refTotal"></param>
        /// <returns></returns>
        public List<BBSModuleEntity> GetList(string iscommond, int parentID, int? isClose, string keyword, int pageIndex,
            int pageSieze, ref int refTotal)
        {
            int startIndex = pageSieze * (pageIndex - 1) + 1;
            int endIndex = pageIndex * pageSieze;

            StringBuilder strWhere = new StringBuilder();  

            strWhere.Append("where 1=1 ");

            //父节点ID   
            strWhere.Append("  and b.parentid=" + parentID);

            //是否通用
            if (!string.IsNullOrEmpty(iscommond))
            {
                strWhere.Append("  and b.iscommon in (" + iscommond + ")");
            }

            //是否被关闭
            if (isClose.HasValue)
            {
                strWhere.Append(" and b.AUDIT_STATE_ID= " + isClose);
            }

            //板块名称  
            if (!string.IsNullOrEmpty(keyword))
            {
                strWhere.AppendFormat(" and b.modulename like '%{0}%'", keyword);
            }

            //获得符号条件的总数
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" select count(*) from bbs_module b ");
            strSql.Append(strWhere);
            DbCommand cmd = db.GetSqlStringCommand(strSql.ToString());
            try
            {
                Object objValue = db.ExecuteScalar(cmd);
                if (DBNull.Value != objValue)
                {
                    refTotal = Convert.ToInt32(objValue);
                }
                else
                {
                    refTotal = 0;
                    return null;
                }
            }
            catch
            {
                refTotal = 0;
                return null;
            }
            string orderStr = "order by  b.Sort desc";  //排序规律是按照排序倒序   

            string strJoin = " left join adm_user u on b.admuser_ID=u.user_id ";
            List<BBSModuleEntity> list = new List<BBSModuleEntity>();
            strSql = new StringBuilder();
            strSql.Append("select * from (");
            strSql.Append("select rownum as rowIndex ,c.* from (");
            strSql.Append("select b.*,u.login_name,u.user_name from bbs_module b ");
            strSql.Append(strJoin);
            strSql.Append(strWhere.ToString());
            strSql.Append(orderStr);
            strSql.Append(") c");
            strSql.Append(") t where t.rowIndex>=:startIndex and t.rowIndex<=:endIndex");
            cmd = db.GetSqlStringCommand(strSql.ToString());
            db.AddInParameter(cmd, "startIndex", DbType.Int32, startIndex);
            db.AddInParameter(cmd, "endIndex", DbType.Int32, endIndex);


            using (IDataReader reader = db.ExecuteReader(cmd))
            {
                list = BindData(reader);
                reader.Dispose();
            }
            return list;
        }










        /// <summary>
        /// 通过父节点查询下面的一级子节点  
        /// </summary>
        /// <returns></returns>
        public List<BBSModuleEntity> GetModulelistByParentID(int parentId)
        {
            string strSql = "select m.*,u.login_name from bbs_module m " +
            "left join adm_user u on m.admuser_id=u.user_id where  m.parentid=" + parentId +
            " order by m.sort desc ";
            DbCommand cmd = db.GetSqlStringCommand(strSql);
            List<BBSModuleEntity> list = new List<BBSModuleEntity>();
            using (IDataReader reader = db.ExecuteReader(cmd))
            {
                list = BindData(reader);
                reader.Dispose();
            }
            return list;
        }

        /// <summary>
        /// 获得一个对象
        /// </summary>
        /// <param name="mid"></param>
        /// <returns></returns>
        public BBSModuleEntity GetModel(int mid)
        {
            BBSModuleEntity bssModuleEty = new BBSModuleEntity();
            string sql = "select * from bbs_module where mid=" + mid;
            DbCommand cmd = db.GetSqlStringCommand(sql);
            DataSet ds = db.ExecuteDataSet(cmd);
            if (ds != null)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                     bssModuleEty =GetModel(ds.Tables[0].Rows[0]);
                }
            }
            return bssModuleEty;
        }


        public BBSModuleEntity GetModuleById(int mid)
        {
            String sql = "select * from bbs_module where mid= "+mid;
            DbCommand cmd = db.GetSqlStringCommand(sql);
            IList<BBSModuleEntity> list = new List<BBSModuleEntity>();
            using (IDataReader reader = db.ExecuteReader(cmd))
            {
                list = BindData(reader);
                reader.Dispose();
            }

            if (list != null && list.Count > 0)
            {
                return list[0];
            }
            return null;

        }

        private BBSModuleEntity GetModel(DataRow dr)
        {
            BBSModuleEntity model = new BBSModuleEntity();
            if (dr["MID"] != null)
            {
                model.MID = Convert.ToInt32(dr["MID"]);
            }
            if (dr["MODULENAME"] != null)
            {
                model.MODULENAME = dr["MODULENAME"] as string;
            }

            if (dr["ISDEL"] != null)
            {
                model.ISDEL = Convert.ToInt32(dr["ISDEL"]);
            }

            if (dr["DESCRIPTION"] != null)
            {
                model.DESCRIPTION = dr["DESCRIPTION"].ToString();
            }

            if (dr["ADDTIME"] != null)
            {
                model.ADDTIME = Convert.ToDateTime(dr["ADDTIME"]);
            }
            if (dr["IMG"] != null)
            {
                model.IMG = Convert.ToString(dr["IMG"]);
            }
            if (dr["PARENTID"] != null)
            {
                model.PARENTID = Convert.ToInt32(dr["PARENTID"]);
            }
            if (dr["SORT"] != null)
            {
                model.SORT = Convert.ToInt32(dr["SORT"]);
            }

            if (dr["ISCOMMON"] != null)
            {
                model.ISCOMMON = Convert.ToInt32(dr["ISCOMMON"]);
            }

            if (dr["ADMUSER_ID"] != null)
            {
                model.ADMUSER_ID = Convert.ToInt32(dr["ADMUSER_ID"]);
            }

            if (dr["LEVEL_ID"] != null)
            {
                model.LevelId = Convert.ToInt32(dr["LEVEL_ID"]);
            }

            if (dr["FUBANZHU"] != null)
            {
                model.Fubanzhu = Convert.ToString(dr["FUBANZHU"]);
            }

            if (dr["UPDATETIME"] != null)
            {
                model.UpdateTime = Convert.ToDateTime(dr["UPDATETIME"]);
            }

            if (dr["AUDIT_STATE_ID"] != null)
            {
                model.AuditStateID = Convert.ToInt32(dr["AUDIT_STATE_ID"]);
            }

            if (dr["AUDIT_DATE"] != null)
            {
                model.AuditData = Convert.ToDateTime(dr["AUDIT_DATE"]);
            }

            if (dr["AUDIT_USER"]!=null)
            {
                model.AuditUser = Convert.ToInt32(dr["AUDIT_USER"]);
            }

            if (dr["SYSTEM_TYPE"] != null)
            {
                model.SystemType = Convert.ToInt32(dr["SYSTEM_TYPE"]);
            }

            if (dr["SYSTEM_ID"] != null)
            {
                model.SystemID = Convert.ToInt32(dr["SYSTEM_ID"]);
            }
            return model;
        }

        /// <summary>
        /// 获得树形结构  
        /// </summary>
        /// <returns></returns>
        public List<BBSModuleEntity> GetCategorys(int parentid)
        {
            List<BBSModuleEntity> listModel = new List<BBSModuleEntity>();
            string sql = "select * from bbs_module start with parentid=" + parentid + "and isdel=0 connect by prior mid = parentid  order siblings by sort desc";
            DbCommand cmd = db.GetSqlStringCommand(sql);
            DataSet ds = db.ExecuteDataSet(cmd);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                listModel.Add(GetModel(dr));
            }
            return listModel;
        }

        /// <summary>
        /// 获得某个分支下的编号
        /// </summary>
        /// <param name="parentid">分支编号</param>
        /// <returns>编号列表,如  23,223,234,24, </returns>
        public string GetIDs(string parentIDs)
        {
            string result = "";
            string sql = "select mid from bbs_module start with parentid in(" + parentIDs + ") and isdel=0 connect by prior mid = parentid  order siblings by mid";
            DbCommand cmd = db.GetSqlStringCommand(sql);
            DataSet ds = db.ExecuteDataSet(cmd);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                result += dr["mid"].ToString() + ",";
            }
            return result;
        }

posted on 2013-02-19 15:32  闪电光芒  阅读(182)  评论(0编辑  收藏  举报

导航