433 lines
18 KiB
C#
433 lines
18 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using AIMSModel;
|
|
using AIMSObjectQuery;
|
|
using HelperDB;
|
|
using System.Text;
|
|
|
|
namespace AIMSDAL
|
|
{
|
|
internal partial class DMenu
|
|
{
|
|
public static void Add(Menu MenuObj)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("insert into [Menu](");
|
|
strSql.Append("Name,Path,ParentId,IsValid,MenuOrder,IsAloneOpen,ImgPath,OperatorNo,OperatorName,OperateDate");
|
|
strSql.Append(")");
|
|
strSql.Append(" values (");
|
|
strSql.Append("'" + MenuObj.Name + "',");
|
|
strSql.Append("'" + MenuObj.Path + "',");
|
|
strSql.Append("" + MenuObj.ParentId + ",");
|
|
strSql.Append("" + MenuObj.IsValid + ",");
|
|
strSql.Append("" + MenuObj.MenuOrder + ",");
|
|
strSql.Append("" + MenuObj.IsAloneOpen + ",");
|
|
strSql.Append("'" + MenuObj.ImgPath + "',");
|
|
strSql.Append("'" + MenuObj.OperatorNo + "',");
|
|
strSql.Append("'" + MenuObj.OperatorName + "',");
|
|
strSql.Append("'" + MenuObj.OperateDate + "'");
|
|
strSql.Append(")");
|
|
strSql.Append(";select @@IDENTITY");
|
|
DbHelperSQL.ExecNonQuery(strSql.ToString());
|
|
}
|
|
public static void Delete(int Id)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("delete Menu ");
|
|
strSql.Append(" where Id=" + Id + "");
|
|
DbHelperSQL.ExecNonQuery(strSql.ToString());
|
|
}
|
|
public static Menu GetModel(int Id)
|
|
{
|
|
Menu MenuObj = new Menu();
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select ");
|
|
strSql.Append("Id,Name,Path,ParentId,IsValid,MenuOrder,IsAloneOpen,ImgPath,OperatorNo,OperatorName,OperateDate ");
|
|
strSql.Append(" from Menu ");
|
|
strSql.Append(" where Id=" + Id + "");
|
|
DataSet ds = DbHelperSQL.GetDataSet(strSql.ToString());
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
if (ds.Tables[0].Rows[0]["Id"].ToString() != "")
|
|
{
|
|
MenuObj.Id = int.Parse(ds.Tables[0].Rows[0]["Id"].ToString());
|
|
}
|
|
MenuObj.Name = ds.Tables[0].Rows[0]["Name"].ToString();
|
|
MenuObj.Path = ds.Tables[0].Rows[0]["Path"].ToString();
|
|
if (ds.Tables[0].Rows[0]["ParentId"].ToString() != "")
|
|
{
|
|
MenuObj.ParentId = int.Parse(ds.Tables[0].Rows[0]["ParentId"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["IsValid"].ToString() != "")
|
|
{
|
|
MenuObj.IsValid = int.Parse(ds.Tables[0].Rows[0]["IsValid"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["MenuOrder"].ToString() != "")
|
|
{
|
|
MenuObj.MenuOrder = int.Parse(ds.Tables[0].Rows[0]["MenuOrder"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["IsAloneOpen"].ToString() != "")
|
|
{
|
|
MenuObj.IsAloneOpen = int.Parse(ds.Tables[0].Rows[0]["IsAloneOpen"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ImgPath"].ToString() != "")
|
|
{
|
|
MenuObj.ImgPath = string.Format(ds.Tables[0].Rows[0]["ImgPath"].ToString());
|
|
}
|
|
MenuObj.OperatorNo = ds.Tables[0].Rows[0]["OperatorNo"].ToString();
|
|
MenuObj.OperatorName = ds.Tables[0].Rows[0]["OperatorName"].ToString();
|
|
if (ds.Tables[0].Rows[0]["OperateDate"].ToString() != "")
|
|
{
|
|
MenuObj.OperateDate = DateTime.Parse(ds.Tables[0].Rows[0]["OperateDate"].ToString());
|
|
}
|
|
}
|
|
return MenuObj;
|
|
}
|
|
|
|
public static DataTable GetDateTable(string strWhere)
|
|
{
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("SELECT Id, Name, [Path], ParentId, CASE IsValid WHEN 1 THEN '有效' WHEN 0 THEN '无效' END AS IsValid,");
|
|
strSql.Append("MenuOrder,CASE IsAloneOpen WHEN 1 THEN '是' WHEN 0 THEN '否' END AS IsAloneOpen,ImgPath FROM dbo.Menu ");
|
|
if (strWhere.Trim() != "")
|
|
{
|
|
|
|
strSql.Append(" where " + strWhere);
|
|
}
|
|
return DbHelperSQL.GetDataTable(strSql.ToString());
|
|
}
|
|
|
|
public static List<Menu> GetModelList()
|
|
{
|
|
List<Menu> MenuListObj = new List<Menu>();
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select ");
|
|
strSql.Append("Id,Name,Path,ParentId,IsValid,MenuOrder,IsAloneOpen,ImgPath,OperatorNo,OperatorName,OperateDate ");
|
|
strSql.Append(" from Menu where IsValid =1");
|
|
DataTable ds = DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < ds.Rows.Count; i++)
|
|
{
|
|
Menu MenuObj = new Menu();
|
|
if (ds.Rows[i]["Id"].ToString() != "")
|
|
{
|
|
MenuObj.Id = int.Parse(ds.Rows[i]["Id"].ToString());
|
|
}
|
|
MenuObj.Name = ds.Rows[i]["Name"].ToString();
|
|
MenuObj.Path = ds.Rows[i]["Path"].ToString();
|
|
if (ds.Rows[i]["ParentId"].ToString() != "")
|
|
{
|
|
MenuObj.ParentId = int.Parse(ds.Rows[i]["ParentId"].ToString());
|
|
}
|
|
if (ds.Rows[i]["IsValid"].ToString() != "")
|
|
{
|
|
MenuObj.IsValid = int.Parse(ds.Rows[i]["IsValid"].ToString());
|
|
}
|
|
if (ds.Rows[i]["MenuOrder"].ToString() != "")
|
|
{
|
|
MenuObj.MenuOrder = int.Parse(ds.Rows[i]["MenuOrder"].ToString());
|
|
}
|
|
if (ds.Rows[i]["IsAloneOpen"].ToString() != "")
|
|
{
|
|
MenuObj.IsAloneOpen = int.Parse(ds.Rows[i]["IsAloneOpen"].ToString());
|
|
}
|
|
if (ds.Rows[i]["ImgPath"].ToString() != "")
|
|
{
|
|
MenuObj.ImgPath = string.Format(ds.Rows[i]["ImgPath"].ToString());
|
|
}
|
|
MenuObj.OperatorNo = ds.Rows[i]["OperatorNo"].ToString();
|
|
MenuObj.OperatorName = ds.Rows[i]["OperatorName"].ToString();
|
|
if (ds.Rows[i]["OperateDate"].ToString() != "")
|
|
{
|
|
MenuObj.OperateDate = DateTime.Parse(ds.Rows[i]["OperateDate"].ToString());
|
|
}
|
|
MenuListObj.Add(MenuObj);
|
|
}
|
|
|
|
return MenuListObj;
|
|
}
|
|
|
|
|
|
public static List<Menu> GetModelList_FSB(int RoleId)
|
|
{
|
|
List<Menu> MenuListObj = new List<Menu>();
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select ");
|
|
strSql.Append("m.Id,m.Name,m.Path,m.ParentId,m.IsValid,m.MenuOrder,m.IsAloneOpen,m.ImgPath,m.OperatorNo,m.OperatorName,m.OperateDate ");
|
|
strSql.Append(" from Menu m ");
|
|
strSql.Append(" LEFT JOIN UserPurview up ON up.MenuId = m.Id where m.IsValid =1 AND up.RoleId=" + RoleId + " ");
|
|
DataTable ds = DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < ds.Rows.Count; i++)
|
|
{
|
|
Menu MenuObj = new Menu();
|
|
if (ds.Rows[i]["Id"].ToString() != "")
|
|
{
|
|
MenuObj.Id = int.Parse(ds.Rows[i]["Id"].ToString());
|
|
}
|
|
MenuObj.Name = ds.Rows[i]["Name"].ToString();
|
|
MenuObj.Path = ds.Rows[i]["Path"].ToString();
|
|
if (ds.Rows[i]["ParentId"].ToString() != "")
|
|
{
|
|
MenuObj.ParentId = int.Parse(ds.Rows[i]["ParentId"].ToString());
|
|
}
|
|
if (ds.Rows[i]["IsValid"].ToString() != "")
|
|
{
|
|
MenuObj.IsValid = int.Parse(ds.Rows[i]["IsValid"].ToString());
|
|
}
|
|
if (ds.Rows[i]["MenuOrder"].ToString() != "")
|
|
{
|
|
MenuObj.MenuOrder = int.Parse(ds.Rows[i]["MenuOrder"].ToString());
|
|
}
|
|
if (ds.Rows[i]["IsAloneOpen"].ToString() != "")
|
|
{
|
|
MenuObj.IsAloneOpen = int.Parse(ds.Rows[i]["IsAloneOpen"].ToString());
|
|
}
|
|
if (ds.Rows[i]["ImgPath"].ToString() != "")
|
|
{
|
|
MenuObj.ImgPath = string.Format(ds.Rows[i]["ImgPath"].ToString());
|
|
}
|
|
MenuObj.OperatorNo = ds.Rows[i]["OperatorNo"].ToString();
|
|
MenuObj.OperatorName = ds.Rows[i]["OperatorName"].ToString();
|
|
if (ds.Rows[i]["OperateDate"].ToString() != "")
|
|
{
|
|
MenuObj.OperateDate = DateTime.Parse(ds.Rows[i]["OperateDate"].ToString());
|
|
}
|
|
MenuListObj.Add(MenuObj);
|
|
}
|
|
|
|
return MenuListObj;
|
|
}
|
|
|
|
public static List<Menu> GetMenuRootList(int ParentId)
|
|
{
|
|
List<Menu> MenuList = new List<Menu>();
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select ");
|
|
strSql.Append("Id,Name,Path,ParentId,IsValid ");
|
|
strSql.Append(" from Menu ");
|
|
strSql.Append(" where ParentId=" + ParentId + " order by MenuOrder");
|
|
|
|
DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
Menu Menu = new Menu();
|
|
Menu.Id = int.Parse(dt.Rows[i]["Id"].ToString());
|
|
Menu.Name = dt.Rows[i]["Name"].ToString();
|
|
Menu.ParentId = int.Parse(dt.Rows[i]["ParentID"].ToString());
|
|
Menu.Path = dt.Rows[i]["Path"].ToString();
|
|
MenuList.Add(Menu);
|
|
}
|
|
return MenuList;
|
|
}
|
|
|
|
|
|
public static List<Menu> GetMenuRootList(int RoleId, int ParentId)
|
|
{
|
|
List<Menu> MenuList = new List<Menu>();
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select m.Id,m.Name,m.Path,m.ParentId,m.IsValid from Menu m ");
|
|
strSql.Append("INNER JOIN UserPurview up ON up.MenuId =m.Id ");
|
|
strSql.Append("WHERE m.IsValid=1 AND up.RoleId=" + RoleId + " AND m.ParentId=" + ParentId + " order by MenuOrder");
|
|
DataTable dt = HelperDB.DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
Menu Menu = new Menu();
|
|
Menu.Id = int.Parse(dt.Rows[i]["Id"].ToString());
|
|
Menu.Name = dt.Rows[i]["Name"].ToString();
|
|
Menu.ParentId = int.Parse(dt.Rows[i]["ParentID"].ToString());
|
|
Menu.Path = dt.Rows[i]["Path"].ToString();
|
|
MenuList.Add(Menu);
|
|
}
|
|
return MenuList;
|
|
}
|
|
public static List<Menu> GetMenuRootListManage(int RoleId, string ParentId)
|
|
{
|
|
List<Menu> MenuList = new List<Menu>();
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select m.Id,m.Name,m.Path,m.ParentId,m.IsValid from Menu m ");
|
|
strSql.Append("INNER JOIN UserPurview up ON up.MenuId =m.Id ");
|
|
strSql.Append("WHERE m.IsValid=1 AND m.ParentId in (" + ParentId + ") AND up.RoleId=" + RoleId + " order by MenuOrder");//
|
|
DataTable dt = HelperDB.DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
Menu Menu = new Menu();
|
|
Menu.Id = int.Parse(dt.Rows[i]["Id"].ToString());
|
|
Menu.Name = dt.Rows[i]["Name"].ToString();
|
|
Menu.ParentId = int.Parse(dt.Rows[i]["ParentID"].ToString());
|
|
Menu.Path = dt.Rows[i]["Path"].ToString();
|
|
MenuList.Add(Menu);
|
|
}
|
|
return MenuList;
|
|
}
|
|
public static List<string> GetMenuRootListManageStr(int RoleId, string ParentId)
|
|
{
|
|
List<string> MenuList = new List<string>();
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select m.Id,m.Name,m.Path,m.ParentId,m.IsValid from Menu m ");
|
|
strSql.Append("INNER JOIN UserPurview up ON up.MenuId =m.Id ");
|
|
strSql.Append("WHERE m.IsValid=1 AND m.ParentId =(select id from Menu where Name='"+ParentId+"') AND up.RoleId=" + RoleId + " order by MenuOrder");//
|
|
DataTable dt = HelperDB.DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
MenuList.Add(dt.Rows[i]["Name"].ToString());
|
|
}
|
|
return MenuList;
|
|
}
|
|
public static List<Menu> GetMenuRootListManage(int RoleId)
|
|
{
|
|
List<Menu> MenuList = new List<Menu>();
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select m.Id,m.Name,m.Path,m.ParentId,m.IsValid from Menu m ");
|
|
strSql.Append("INNER JOIN UserPurview up ON up.MenuId =m.Id ");
|
|
strSql.Append("WHERE m.IsValid=1 AND up.RoleId=" + RoleId + "order by MenuOrder");//
|
|
DataTable dt = HelperDB.DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
Menu Menu = new Menu();
|
|
Menu.Id = int.Parse(dt.Rows[i]["Id"].ToString());
|
|
Menu.Name = dt.Rows[i]["Name"].ToString();
|
|
Menu.ParentId = int.Parse(dt.Rows[i]["ParentID"].ToString());
|
|
Menu.Path = dt.Rows[i]["Path"].ToString();
|
|
MenuList.Add(Menu);
|
|
}
|
|
return MenuList;
|
|
}
|
|
|
|
public static Menu GetMenuById(int Id, int RoleId, int IsAll)
|
|
{
|
|
Menu Menu = new Menu();
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select ");
|
|
strSql.Append("Id,Name,Path,ParentId,IsValid ");
|
|
strSql.Append(" from Menu ");
|
|
strSql.Append(" where Id=" + Id + " order by MenuOrder");
|
|
|
|
DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
if (dt.Rows[0]["Id"].ToString() != "")
|
|
{
|
|
Menu.Id = int.Parse(dt.Rows[0]["Id"].ToString());
|
|
}
|
|
Menu.Name = dt.Rows[0]["Name"].ToString();
|
|
Menu.Path = dt.Rows[0]["Path"].ToString();
|
|
if (dt.Rows[0]["ParentId"].ToString() != "")
|
|
{
|
|
Menu.ParentId = int.Parse(dt.Rows[0]["ParentId"].ToString());
|
|
}
|
|
if (dt.Rows[0]["IsValid"].ToString() != "")
|
|
{
|
|
Menu.IsValid = int.Parse(dt.Rows[0]["IsValid"].ToString());
|
|
}
|
|
|
|
Menu.Children = GetChildren(Menu, RoleId, IsAll);
|
|
}
|
|
return Menu;
|
|
}
|
|
|
|
public static Menu GetMenuByName(string Name)
|
|
{
|
|
Menu Menu = new Menu();
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select ");
|
|
strSql.Append("Id,Name,Path,ParentId,IsValid ");
|
|
strSql.Append(" from Menu ");
|
|
strSql.Append(" where Name='" + Name + "' order by MenuOrder");
|
|
|
|
DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
if (dt.Rows[0]["Id"].ToString() != "")
|
|
{
|
|
Menu.Id = int.Parse(dt.Rows[0]["Id"].ToString());
|
|
}
|
|
Menu.Name = dt.Rows[0]["Name"].ToString();
|
|
Menu.Path = dt.Rows[0]["Path"].ToString();
|
|
if (dt.Rows[0]["ParentId"].ToString() != "")
|
|
{
|
|
Menu.ParentId = int.Parse(dt.Rows[0]["ParentId"].ToString());
|
|
}
|
|
if (dt.Rows[0]["IsValid"].ToString() != "")
|
|
{
|
|
Menu.IsValid = int.Parse(dt.Rows[0]["IsValid"].ToString());
|
|
}
|
|
|
|
}
|
|
return Menu;
|
|
}
|
|
public static List<Menu> GetChildren(Menu Menu, int RoleId, int IsAll)
|
|
{
|
|
List<Menu> children = new List<Menu>();
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
|
if (IsAll == 0)
|
|
{
|
|
strSql.Append("select m.Id,m.Name,m.Path,m.ParentId,m.IsValid from Menu m ");
|
|
strSql.Append("INNER JOIN UserPurview up ON up.MenuId =m.Id ");
|
|
strSql.Append("WHERE m.IsValid=1 AND up.RoleId=" + RoleId + " AND m.ParentId=" + Menu.Id + " and m.ParentId<>63 order by MenuOrder");
|
|
}
|
|
if (IsAll == 1)
|
|
{
|
|
strSql.Append("SELECT * FROM Menu WHERE ParentId='" + Menu.Id + "' order by MenuOrder");
|
|
}
|
|
|
|
DataTable dt = HelperDB.DbHelperSQL.GetDataTable(strSql.ToString());
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
Menu MenuObj = new Menu();
|
|
MenuObj.Id = int.Parse(dt.Rows[i]["Id"].ToString());
|
|
MenuObj.Name = dt.Rows[i]["Name"].ToString();
|
|
MenuObj.ParentId = int.Parse(dt.Rows[i]["ParentId"].ToString());
|
|
MenuObj.Path = dt.Rows[i]["Path"].ToString();
|
|
children.Add(MenuObj);
|
|
MenuObj.Children = GetChildren(MenuObj, RoleId, IsAll);
|
|
|
|
}
|
|
}
|
|
return children;
|
|
}
|
|
|
|
public static Menu GetPathByName(string Name)
|
|
{
|
|
Menu MenuObj = new Menu();
|
|
string strSql = "select top 1 Path,IsAloneOpen from Menu where IsValid=1 and Name='" + Name + "'";
|
|
|
|
DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString());
|
|
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
MenuObj.Path = dt.Rows[0]["Path"].ToString();
|
|
MenuObj.IsAloneOpen = int.Parse(dt.Rows[0]["IsAloneOpen"].ToString());
|
|
}
|
|
return MenuObj;
|
|
}
|
|
|
|
public static DataTable GetMenuDataTable(int ParentId, int RoleId)
|
|
{
|
|
string strSql = " SELECT m.Id, m.Name,m.[Path] FROM UserPurview up LEFT JOIN [Role] r ON r.Id =up.RoleId " +
|
|
" LEFT JOIN Menu m ON m.Id =up.MenuId" +
|
|
" WHERE m.ParentId=" + ParentId + " AND up.RoleId=" + RoleId + " and m.Path!=''";
|
|
return HelperDB.DbHelperSQL.GetDataTable(strSql);
|
|
}
|
|
}
|
|
}
|