using System; using System.Data; using System.Text; using System.Collections.Generic; using System.Data.SqlClient; using ApServerProvider; using DbCommon; using System.Collections; using Estsh.Web.Util; /*************************************************************************************************** * * 作者:贾文涛 * 创建时间:2013.03.19 * 描述:菜单模块数据库访问类 * 修改日志: * 1、2013.03.27 贾文涛 变更后台的菜单表,同步变更获取菜单数据的一些方法 * * *************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// 处理菜单模块的业务数据 /// public class NoticeDal : BaseApp { public NoticeDal(RemotingProxy remotingProxy) : base(remotingProxy) { } #region 成员方法 /// /// 根据传入条件获得菜单列表数据 /// public DataTable getList(string CONTENT_NO) { lock (_remotingProxy) { StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT * FROM dbo.TT_SPM_CONTENT WHERE CONTENT_NO=@CONTENT_NO "); Hashtable htParams = new Hashtable(); htParams.Add("@CONTENT_NO", CONTENT_NO); return this._remotingProxy.GetDataTable(strSql.ToString(), htParams); } } /// /// 根据登录账号获取菜单列表 /// /// /// public DataTable getListByUser(int empId) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT m.* "); SqlStringBuilder.Append("FROM sys_web_Notice m "); SqlStringBuilder.Append(" JOIN sys_role_privliege rp ON m.Notice_id = rp.fun_name AND rp.program = 'web' "); SqlStringBuilder.Append(" JOIN sys_role_emp re ON rp.role_id = re.role_id "); SqlStringBuilder.Append("WHERE re.emp_id = @emp_id AND m.enabled = 'Y' "); Hashtable htParams = new Hashtable(); htParams.Add("@emp_id", empId); return this._remotingProxy.GetDataTable(SqlStringBuilder.ToString(), htParams); } } /// /// 根据登录账号获取首页菜单列表 /// /// /// public Hashtable getHomeNoticeListByUser(int empId, string NoticeId) { lock (_remotingProxy) { Hashtable result = new Hashtable(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT m.* "); SqlStringBuilder.Append("FROM sys_web_Notice m "); SqlStringBuilder.Append(" JOIN sys_role_privliege rp ON m.Notice_id = rp.fun_name "); SqlStringBuilder.Append(" AND rp.program = 'web' "); SqlStringBuilder.Append(" JOIN sys_role_emp re ON rp.role_id = re.role_id "); SqlStringBuilder.Append("WHERE re.emp_id = @emp_id "); SqlStringBuilder.Append(" AND m.enabled = 'Y' "); SqlStringBuilder.Append(" AND m.parent_id = 0 "); SqlStringBuilder.Append(" AND m.Notice_id <> 0 "); SqlStringBuilder.Append(" AND m.Notice_id = @Notice_id "); Hashtable htParams = new Hashtable(); htParams.Add("@emp_id", empId); htParams.Add("@Notice_id", NoticeId); DataTable dt = this._remotingProxy.GetDataTable(SqlStringBuilder.ToString(), htParams); ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("dataList", dataList); return result; } } /// /// 根据登录账号获取Main页主菜单列表 /// /// /// public DataTable getMainNoticeListByUser(int empId, string NoticeId) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT m.* "); SqlStringBuilder.Append("FROM sys_web_Notice m "); SqlStringBuilder.Append(" JOIN sys_role_privliege rp ON m.Notice_id = rp.fun_name "); SqlStringBuilder.Append(" AND rp.program = 'web' "); SqlStringBuilder.Append(" JOIN sys_role_emp re ON rp.role_id = re.role_id "); SqlStringBuilder.Append("WHERE re.emp_id = @emp_id "); SqlStringBuilder.Append(" AND m.enabled = 'Y' "); SqlStringBuilder.Append(" AND m.parent_id = @Notice_id "); SqlStringBuilder.Append("ORDER BY m.sort_num "); Hashtable htParams = new Hashtable(); htParams.Add("@emp_id", empId); htParams.Add("@Notice_id", NoticeId == null || NoticeId.Trim().Equals("") ? "-1" : NoticeId); return this._remotingProxy.GetDataTable(SqlStringBuilder.ToString(), htParams); } } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere) { lock (_remotingProxy) { Hashtable result = new Hashtable(); List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", " dbo.TT_SPM_CONTENT AS a LEFT JOIN dbo.sys_emp AS b ON a.PUBLISHER=b.emp_id ")); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", " CONTENT_NO ,PLANT ,ASSEMBLY_LINE ,WORKSHOP ,PLANT_ZONE ,(CASE CONTENT_TYPE WHEN '1' THEN '公告' WHEN '2' THEN '通知' ELSE '' END) AS CONTENT_TYPE ,CONTENT_STATUS ,CLOSE_DATE ,START_EFFECTIVE_DATE ,CONVERT(varchar,EXPIRE_DATE,120) AS EXPIRE_DATE ,SUBJECT ,BODY ,DEPT_CODE , DEPT_NMAE ,SUPPLIER_NUM ,SUPPLIER_GROUP_ID , CUSTOM_NO ,PLANNER_CODE ,CONVERT(varchar,PUBLISH_TIME,120) AS PUBLISH_TIME ,b.emp_name AS PUBLISHER ,COMMENTS ,CREATE_USER ,CREATE_DATE ,UPDATE_USER ,UPDATE_DATE ")); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", " CREATE_DATE DESC ")); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", "")); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", PageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", PageIndex)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere)); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("dataList", dataList); result.Add("totalCount", values["@TotalCount"].ToString()); return result; } } /// /// 获取下拉框菜单数据 /// /// public DataTable getSelectNotice() { lock (_remotingProxy) { StringBuilder strSql = new StringBuilder(); strSql.Append("select Notice_id as [value],name as [key] from dbo.sys_web_Notice where parent_id < 100 AND enabled = 'Y' "); return _remotingProxy.GetDataTable(strSql.ToString()); } } /// /// 插入菜单数据 /// /// /// public int saveNotice(Hashtable htParams) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO TT_SPM_CONTENT (SUBJECT "); SqlStringBuilder.Append(" , EXPIRE_DATE "); SqlStringBuilder.Append(" , CONTENT_TYPE "); SqlStringBuilder.Append(" , BODY "); SqlStringBuilder.Append(" , PUBLISHER"); SqlStringBuilder.Append(" ,CREATE_USER "); SqlStringBuilder.Append(" ,PUBLISH_TIME) "); SqlStringBuilder.Append(" VALUES( @SUBJECT "); SqlStringBuilder.Append(" , @EXPIRE_DATE "); SqlStringBuilder.Append(" , @CONTENT_TYPE "); SqlStringBuilder.Append(" , @BODY "); SqlStringBuilder.Append(" , @create_userid "); SqlStringBuilder.Append(" , @create_userid "); SqlStringBuilder.Append(" , CONVERT(DATETIME,GETDATE(),120)) "); return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams); } } /// /// 更新菜单数据 /// /// /// public int updateNotice(Hashtable htParams) { lock (_remotingProxy) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("update sys_web_Notice "); SqlStringBuilder.Append("SET name=@name "); SqlStringBuilder.Append(" , description=@description "); SqlStringBuilder.Append(" , url=@url "); SqlStringBuilder.Append(" , parent_id=@parent_id "); SqlStringBuilder.Append(" , icon_url=@icon_url "); SqlStringBuilder.Append(" , icon_close_url=@icon_close_url "); SqlStringBuilder.Append(" , icon_open_url=@icon_open_url "); SqlStringBuilder.Append(" , icon_skin=@icon_skin "); SqlStringBuilder.Append(" , enabled=@enabled "); SqlStringBuilder.Append(" , sort_num=@sort_num "); SqlStringBuilder.Append(" ,update_userid=@update_userid "); SqlStringBuilder.Append(" ,create_ymd=CONVERT(VARCHAR(10),GETDATE(),23) "); SqlStringBuilder.Append(" ,create_hms=CONVERT(VARCHAR(10),GETDATE(),108) "); SqlStringBuilder.Append("WHERE Notice_id=@Notice_id "); return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams); } } /// /// 删除菜单数据 /// /// /// public int deleteNotice(String CONTENT_NO) { lock (_remotingProxy) { Hashtable htparams = new Hashtable(); String delStr = "DELETE dbo.TT_SPM_CONTENT WHERE CONTENT_NO=@CONTENT_NO"; htparams.Add("@CONTENT_NO", CONTENT_NO); return _remotingProxy.ExecuteNonQuery(delStr, htparams); } } #endregion 成员方法 } }