You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

254 lines
12 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
/// <summary>
/// 处理菜单模块的业务数据
/// </summary>
public class NoticeDal : BaseApp
{
public NoticeDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
#region 成员方法
/// <summary>
/// 根据传入条件获得菜单列表数据
/// </summary>
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);
}
}
/// <summary>
/// 根据登录账号获取菜单列表
/// </summary>
/// <param name="empId"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 根据登录账号获取首页菜单列表
/// </summary>
/// <param name="empId"></param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 根据登录账号获取Main页主菜单列表
/// </summary>
/// <param name="empId"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere)
{
lock (_remotingProxy)
{
Hashtable result = new Hashtable();
List<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
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;
}
}
/// <summary>
/// 获取下拉框菜单数据
/// </summary>
/// <returns></returns>
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());
}
}
/// <summary>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 删除菜单数据
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
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 成员方法
}
}