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 GetModelList() { List MenuListObj = new List(); 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 GetModelList_FSB(int RoleId) { List MenuListObj = new List(); 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 GetMenuRootList(int ParentId) { List MenuList = new List(); 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 GetMenuRootList(int RoleId, int ParentId) { List MenuList = new List(); 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 GetMenuRootListManage(int RoleId, string ParentId) { List MenuList = new List(); 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 GetMenuRootListManage(int RoleId) { List MenuList = new List(); 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 GetChildren(Menu Menu, int RoleId, int IsAll) { List children = new List(); 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); } } }