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 成员方法
}
}