📄 staff.cs
字号:
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 + -