⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staff.cs

📁 除了具有传统OA的邮件、工作流、文档等功能外
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.IO;
using System.Configuration ;

namespace UDS.Components
{
	/// <summary>
	/// Staff 管理类
	/// </summary>
	public class Staff
	{

		#region 登陆验证
		/// <summary>
		/// 登陆验证
		/// </summary>
		/// <param name="userName">用户名</param>
		/// <param name="password">密码</param>
		/// <returns>返回用户ID</returns>
		public string Login(string userName, string password) 
		{
			string UserID,IsNeedKey;
			
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@username",    SqlDbType.VarChar, 25, userName),
									   data.MakeInParam("@password",    SqlDbType.VarChar, 25, password),
									   data.MakeOutParam("@UserID", SqlDbType.VarChar, 25),
									   data.MakeOutParam("@IsNeedKey", SqlDbType.Bit, 1)	
								   };
			data.RunProc("sp_StaffLogin", prams);   
			UserID = (string) prams[2].Value;   
			IsNeedKey = prams[3].Value.ToString();
			if (UserID == string.Empty)
				return null;
			else
				return UserID+"-"+IsNeedKey;
		}
		#endregion

		#region 用户退出
		/// <summary>
		/// 用户退出
		/// </summary>
		/// <param name="userName">用户名</param>
		public void Logout(string userName) 
		{
					
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@username",    SqlDbType.VarChar, 25, userName)
								   };
			data.RunProc("sp_StaffLogout", prams);   
		}
		#endregion

		#region 获取用户基本信息
		/// <summary>
		/// 获取用户基本信息
		/// </summary>
		/// <param name="StaffID">用户ID</param>
		/// <returns>返回DataReader</returns>
		public SqlDataReader GetStaffInfo(long StaffID) 
		{
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@StaffID",    SqlDbType.Int, 4, StaffID),
									   
								   };
			try 
			{
				// run the stored procedure
				data.RunProc("sp_GetStaffInfo",prams,out dataReader);
				return dataReader;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("人员信息读取出错!",ex);
			}
			
		}
		#endregion

		#region 获取用户基本信息
		/// <summary>
		/// 获取用户基本信息
		/// </summary>
		/// <param name="StaffID">用户ID</param>
		/// <returns>返回DataReader</returns>
		public SqlDataReader GetStaffInfo(string StaffIDs) 
		{
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@StaffIDs",    SqlDbType.VarChar, 10000, StaffIDs),
									   
			};
			try 
			{
				// run the stored procedure
				data.RunProc("sp_GetStaffInfoEx",prams,out dataReader);
				return dataReader;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("人员信息读取出错!",ex);
			}
			
		}
		#endregion
		#region 根据用户代号获取用户真实姓名
		/// <summary>
		/// 获取用户基本信息
		/// </summary>
		/// <param name="Username">用户代号</param>
		/// <returns>返回真实姓名</returns>
		public static string GetRealNameByUsername(string Username) 
		{
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@Username",    SqlDbType.NVarChar, 30, Username),
									   
			};
			try 
			{
				// run the stored procedure
				data.RunProc("sp_GetRealNameByUsername",prams,out dataReader);
				if(dataReader.Read())
				{
					
					return dataReader[0].ToString();
					
				}
				else
				{
					
					return "";
					
				}

			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("人员信息读取出错!",ex);
			}
			finally
			{
				dataReader.Close();
				data.Dispose();

			}
			
		}
		#endregion

		#region 根据用户代号字符串返回用户真实姓名字符串
		/// <summary>
		/// 根据用户代号字符串返回用户真实姓名字符串
		/// </summary>
		/// <param name="Username">用户代号字符串</param>
		/// <param name="Username">返回的个数</param>
		/// <returns>返回真实姓名字符串</returns>
		public static string GetRealNameStrByUsernameStr(string Username,int number) 
		{
			string RealNameStr = "";
			if(Username=="")
				return "";
			if(Username.EndsWith(","))
				Username = Username.Substring(0,Username.Length-1);
			string[] UnameAr = System.Text.RegularExpressions.Regex.Split(Username ,",");
			if(number==0)
			{
				number=UnameAr.Length;
			}
			if(number>UnameAr.Length)
				number = UnameAr.Length;
			try 
			{
				for(int k=0;k<number;k++)
				{
					RealNameStr+=GetRealNameByUsername(UnameAr[k].ToString())+",";
				}
				RealNameStr = RealNameStr.Substring(0,RealNameStr.Length-1);
				if(number<UnameAr.Length)
				{
					RealNameStr+="..";

				}
				return RealNameStr;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("根据用户代号字符串返回用户真实姓名字符串出错!",ex);
			}
			
		}
		#endregion

		#region 获取当前职位中的用户信息
		/// <summary>
		/// 获取当前部门中的用户信息
		/// </summary>
		/// <param name="Username">用户登陆名</param>
		/// <returns>返回DataReader</returns>
		public SqlDataReader GetStaffFromPosition(string Username) 
		{
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									   data.MakeInParam("@StaffName",    SqlDbType.NVarChar , 30, Username),
									   
			};
			try 
			{
				// run the stored procedure
				data.RunProc("sp_GetStaffFromPosition",prams,out dataReader);
				return dataReader;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("读取信息出错!",ex);
			}
			
		}

		/// <summary>
		/// 得到该成员职位中的成员信息
		/// </summary>
		/// <param name="Username">用户名</param>
		/// <param name="positionwidth">最低位1表示包含同级成员,最低第二位表示包含下级</param>
		/// <param name="postiondepth">下级的深度,最低位1表示直属下级成员,最低第二位1表示直属下级的下级成员</param>
		/// <returns></returns>
		public SqlDataReader GetStaffFromPosition(string Username,int positionwidth,int postiondepth) 
		{
			SqlDataReader dataReader = null;
			Database data = new Database();
			SqlParameter[] prams = {
									    data.MakeInParam("@StaffName",    SqlDbType.NVarChar , 30, Username),
										data.MakeInParam("@Inherit",    SqlDbType.Int , 4, postiondepth),
										data.MakeInParam("@Upsides",    SqlDbType.Int , 4, positionwidth),
									   
			};
			try 
			{
				// run the stored procedure
				data.RunProc("sp_GetStaffFromPosition",prams,out dataReader);
				return dataReader;
			}
			catch (Exception ex) 
			{
				Error.Log(ex.ToString());
				throw new Exception("读取信息出错!",ex);
			}
			
		}
		#endregion

		#region 检查用户是否在职位中有相关权力
		/// <summary>
		/// 检查用户是否在相关权限操作的部门中
		/// </summary>
		/// <param name="classid">树形图的节点值</param>
		/// <param name="username">用户名称</param>
		/// <param name="actid">权限造作id</param>
		/// <param name="inherit">继承父节点的权限</param>
		/// <returns>bool值表示是否有权限</returns>
		public bool GetRightInPosition(int classid,string username,int actid,bool inherit)
		{
			int intInherit;
			Database data = new Database();
			SqlDataReader dr;
			//将参数inherit转换成int以便于存储过程调用
			if (inherit)
				intInherit = 1;
			else
				intInherit = 0;

	
			SqlParameter[] prams = {
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
								   };
            data.RunProc("sp_GetRightInPositionToHandleClass",prams,out dr);
			return  dr.Read();
		}
		#endregion
		
		#region 检查用户个人是否在拥有相关权力
		/// <summary>
		/// 检查用户个人是否在拥有相关权力
		/// </summary>
		/// <param name="classid">树形图的节点值</param>
		/// <param name="username">用户名称</param>
		/// <param name="actid">权限造作</param>
		/// <param name="inherit">继承父节点的权限</param>
		/// <returns>bool值表示是否有权限</returns>
		public bool GetRightInPerson(int classid,string username,int actid,bool inherit)
		{
			int intInherit;
			Database data = new Database();
			SqlDataReader dr;
			//将参数inherit转换成int以便于存储过程调用
			if (inherit)
				intInherit = 1;
			else
				intInherit = 0;

	
			SqlParameter[] prams = {
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
								   };
			data.RunProc("sp_GetRightInPersonToHandleClass",prams,out dr);
			return  dr.Read();
		}
		#endregion
		
		#region 检查用户是否在角色中拥有相关权力
		/// <summary>
		/// 检查用户是否在拥有相关权限操作的角色中
		/// </summary>
		/// <param name="classid">树形图的节点值</param>
		/// <param name="username">用户名称</param>
		/// <param name="actid">权限造作</param>
		/// <param name="inherit">继承父节点的权限</param>
		/// <returns>bool值表示是否有权限</returns>
		public bool GetRightInRole(int classid,string username,int actid,bool inherit)
		{
			int intInherit;
			Database data = new Database();
			SqlDataReader dr;
			//将参数inherit转换成int以便于存储过程调用
			if (inherit)
				intInherit = 1;
			else
				intInherit = 0;

	
			SqlParameter[] prams = {
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
								   };
			data.RunProc("sp_GetRightInRoleToHandleClass",prams,out dr);
			return  dr.Read();
		}
		#endregion

		#region 检查用户是否在组中拥有相关力
		/// <summary>
		/// 检查用户是否在组中拥有相关力
		/// </summary>
		/// <param name="classid">树形图的节点值</param>
		/// <param name="username">用户名称</param>
		/// <param name="actid">权限造作</param>
		/// <param name="inherit">继承父节点的权限</param>
		/// <returns>bool值表示是否有权限</returns>
		public bool GetRightInTeam(int classid,string username,int actid,bool inherit)
		{
			int intInherit;
			Database data = new Database();
			SqlDataReader dr;
			//将参数inherit转换成int以便于存储过程调用
			if (inherit)
				intInherit = 1;
			else
				intInherit = 0;

	
			SqlParameter[] prams = {
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid),
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username),
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid),
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit)
								   };
			data.RunProc("sp_GetRightInTeamToHandleClass",prams,out dr);
			return  dr.Read();
		}
		#endregion

		#region 检查用户是否有相应操作的权力
		/// <summary>
		/// 检查用户是否有相应操作的权限
		/// </summary>
		/// <param name="classid">树形图的节点值</param>
		/// <param name="username">用户名称</param>
		/// <param name="actid">权限造作</param>
		/// <param name="inherit">继承父节点的权限</param>
		/// <returns>bool值表示是否有权限</returns>
		public bool CheckRight(int classid,string username,int actid,bool inherit)
		{
			if (GetRightInPosition(classid, username, actid, inherit))
				return true;
			else
				if (GetRightInPerson(classid, username, actid, inherit))
				return true;
			else
				if (GetRightInRole(classid, username, actid, inherit))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -