📄 nodemanager.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using Component;
namespace JSXMLlTree
{
/// <summary>
/// NodeManager 的摘要说明。
/// </summary>
public class NodeManager
{
private static readonly string SQL_GetChildNode = "SELECT id,DeptParentId,DeptName,DeptCorpId,DeptType,DeptUrl,DeptUrlTarget "
+ "FROM Study_Department "
+ " WHERE DeptCorpid = @CorpId AND DeptParentId =@ParentId "
+ " ORDER BY DeptShowIndex ASC";
private static readonly string SQL_GetRsCount ="SELECT count(1) FROM Study_Department "
+ " WHERE DeptCorpid = @corpId AND DeptParentId =@parentId";
private static readonly string SQL_GetEmployeePower = "SELECT departmentId "
+ "FROM Study_EmployeePower "
+ " WHERE EmployeeId = @EmployeeId";
private static readonly string SQL_DeletePower = "DELETE "
+ "FROM Study_EmployeePower "
+ " WHERE EmployeeId = @EmployeeId";
private static readonly string SQL_InsertPower = "INSERT INTO Study_EmployeePower(employeeid, departmentId ) values "
+ "(@employeeId,@departmentId) ";
//using static ?????????????????????????????????????
private static ClassConn conn = new ClassConn(System.Configuration.ConfigurationSettings.AppSettings["ConnStudy"].ToString());
private static string strTreeXML ="";
private NodeManager()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 增加树节点,返回一个节点的XML格式.
/// </summary>
/// <param name="nodeParentId"></param>
/// <param name="nodeText"></param>
/// <param name="corpId"></param>
/// <param name="nodeUrl"></param>
/// <param name="nodeUrlTarger"></param>
/// <returns></returns>
public static string InsertNode(string nodeParentId,string nodeText,string corpId,string nodeUrl,string nodeUrlTarger)
{
string str = string.Empty;
SqlParameter parmParentId = conn.MakeParam("@ParentId",nodeParentId);
SqlParameter parmDeptName = conn.MakeParam("@NodeText",nodeText);
SqlParameter parmDeptCorpId = conn.MakeParam("@CorpId",corpId);
SqlParameter parmDeptType = conn.MakeParam("@NodeType",2);
SqlParameter parmDeptUrl = conn.MakeParam("@NodeUrl",nodeUrl);
SqlParameter parmDeptUrlTarget = conn.MakeParam("@NodeUrlTarget",NodeProperties.Target);
SqlParameter parmBaseUrl = conn.MakeParam("@BaseUrl",NodeProperties.BaseUrl);
SqlParameter [] parms = new SqlParameter[] {parmParentId,parmDeptName,parmDeptCorpId,parmDeptType,parmDeptUrl,
parmDeptUrlTarget,parmBaseUrl};
SqlDataReader reader = null;
conn.RunProc("up_InsertNode",parms,out reader);
while(reader.Read())
{
string isDept = reader["IsDept"].ToString();
string id = reader["id"].ToString();
string deptName = reader["DeptName"].ToString();
string deptUrl = reader["DeptUrl"].ToString();
string deptUrlTarget = reader["DeptUrlTarget"].ToString();
str = Common.GetNodeXml(isDept,id,deptName,deptUrl,deptUrlTarget);
}
if(!reader.IsClosed)
{
reader.Close();
}
return str;
}
/// <summary>
/// 递归返回树节点XML
/// </summary>
/// <param name="corpId"></param>
/// <param name="parentId"></param>
/// <returns></returns>
public static string GetAllNode(string corpId,string parentId)
{
SqlParameter parmCorpId = conn.MakeParam("@CorpId",corpId);
SqlParameter parmParentId = conn.MakeParam("@ParentId",parentId);
SqlParameter [] parms = new SqlParameter[]{parmCorpId,parmParentId};
DataTable dataTable = null;
conn.RunSql(SQL_GetChildNode,parms,out dataTable);
if(dataTable.Rows.Count>0)
{
for(int i= 0;i<dataTable.Rows.Count;i++)
{
DataRow row = dataTable.Rows[i];
strTreeXML += "<item id=\"" + row["id"].ToString()+"\" text=\"" + row["deptName"].ToString()+ "\" url=\""
+ row["deptUrl"].ToString()+"\" target=\""+ row["deptUrlTarget"].ToString()+"\">\n";
SqlParameter parmCorpId2 = conn.MakeParam("@corpId",corpId);
SqlParameter parmParentId2 = conn.MakeParam("@ParentId",row["id"].ToString());
SqlParameter [] parms2 = new SqlParameter[]{parmCorpId2,parmParentId2};
if(conn.GetRsCount(SQL_GetRsCount,parms2)>0)
{
GetAllNode(corpId,row["id"].ToString());
}
strTreeXML += "</item>\n";
}
//Response.Write("");
}
return strTreeXML;
}
/// <summary>
/// 清空树节点的所有XML,初始化数后必须调用次方法释放内容.
/// </summary>
public static void ClearTreeXML()
{
strTreeXML = string.Empty;
}
/// <summary>
/// @NodeId int,@CorpId int,@isOk int = 0 output
/// </summary>
/// <param name="nodeId"></param>
/// <param name="corpId"></param>
/// <returns></returns>
public static string DeleteNode(string nodeId,string corpId)
{
string str = string.Empty;
//输入参数
SqlParameter parmNodeId = conn.MakeParam("@NodeId",nodeId);
SqlParameter parmCorpId = conn.MakeParam("@CorpId",corpId);
//输出参数
SqlParameter parmIsOk = conn.MakeParam("@isOk",0,"out",0);
SqlParameter [] parms = new SqlParameter[] {parmNodeId,parmCorpId,parmIsOk};
conn.RunProc("up_DeleteNode",parms);
str = "<IsOk>" + parmIsOk.Value + "</IsOk>";
return str;
}
/// <summary>
/// 根据employeeId获得员工的部门/菜单权限信息.
/// </summary>
/// <param name="employeeId"></param>
/// <returns></returns>
public static string GetNodeIds(string employeeId)
{
string nodes = "";
SqlParameter parmEmployeeId = conn.MakeParam("@EmployeeId",employeeId);
SqlParameter [] parms = new SqlParameter[]{parmEmployeeId};
SqlDataReader reader = null;
conn.RunSql(SQL_GetEmployeePower,parms,out reader);
while(reader.Read())
{
if(nodes.Length == 0)
{
nodes = reader["DepartmentId"].ToString();
}
else
{
nodes += "," + reader["DepartmentId"].ToString();
}
}
if(!reader.IsClosed)
{
reader.Close();
}
return nodes;
}
/// <summary>
/// 保存员工的部门权限节点
/// </summary>
/// <param name="nodeIds"></param>
/// <param name="employeeId"></param>
/// <returns></returns>
public static string SaveNodeIds(string nodeIds,string employeeId)
{
string str = "";
string [] strArray = nodeIds.Split(',');
SqlCommand cmd = conn.TransBegin();
try
{
//删除原来权限
//SQL_DeletePower
SqlParameter parmEmployeeId = conn.MakeParam("@employeeId",employeeId);
SqlParameter [] parms = new SqlParameter[] {parmEmployeeId};
conn.TransRunSql(SQL_DeletePower,cmd,parms);
//增加权限
foreach(string nodeId in strArray)
{
//输入参数
//parmEmployeeId = conn.MakeParam("@employeeId",employeeId);
SqlParameter parmDepartmentId = conn.MakeParam("@DepartmentId",nodeId);
SqlParameter [] parms2 = new SqlParameter[] {parmEmployeeId,parmDepartmentId};
conn.TransRunSql(SQL_InsertPower,cmd,parms2);
}
conn.TransCommit(cmd);
str = "<IsOk>1</IsOk>";
}
catch(Exception ex)
{
conn.TransRollBack(cmd);
//System.Web.HttpContext.Current.Response.Write(ex.ToString());
//return "<IsOk>0</IsOk>";
return "<IsOk>"+ex.ToString()+"</IsOk>";
}
return str;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -