using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using HelperDB; namespace AIMS.PublicUI.DAL { public class MenuDB : DbHelperSQL { public void Add(Model.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 void Update(Model.Menu MenuObj) { StringBuilder strSql = new StringBuilder(); strSql.Append("update Menu set "); strSql.Append("Name='" + MenuObj.Name + "',"); strSql.Append("Path='" + MenuObj.Path + "',"); strSql.Append("ParentId=" + MenuObj.ParentId + ","); strSql.Append("IsValid=" + MenuObj.IsValid + ","); strSql.Append("MenuOrder=" + MenuObj.MenuOrder + ","); strSql.Append("IsAloneOpen=" + MenuObj.IsAloneOpen + ","); strSql.Append("ImgPath='" + MenuObj.ImgPath + "',"); strSql.Append("OperatorNo='" + MenuObj.OperatorNo + "',"); strSql.Append("OperatorName='" + MenuObj.OperatorName + "',"); strSql.Append("OperateDate='" + MenuObj.OperateDate + "'"); strSql.Append(" where Id=" + MenuObj.Id + " "); DbHelperSQL.ExecNonQuery(strSql.ToString()); } public void Delete(int Id) { StringBuilder strSql = new StringBuilder(); strSql.Append("delete Menu "); strSql.Append(" where Id=" + Id + ""); DbHelperSQL.ExecNonQuery(strSql.ToString()); } public Model.Menu GetModel(int Id) { Model.Menu MenuObj = new Model.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 = 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 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 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 = GetDataTable(strSql.ToString()); for (int i = 0; i < ds.Rows.Count; i++) { Model.Menu MenuObj = new Model.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 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 = GetDataTable(strSql.ToString()); for (int i = 0; i < ds.Rows.Count; i++) { Model.Menu MenuObj = new Model.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 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++) { Model.Menu Menu = new Model.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 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++) { Model.Menu Menu = new Model.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 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++) { Model.Menu Menu = new Model.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 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++) { Model.Menu Menu = new Model.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 Model.Menu GetMenuById(int Id, int RoleId, int IsAll) { Model.Menu Menu = new Model.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 = 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 Model.Menu GetMenuByName(string Name) { Model.Menu Menu = new Model.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 = 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 List GetChildren(Model.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++) { Model.Menu MenuObj = new Model.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 Model.Menu GetPathByName(string Name) { Model.Menu MenuObj = new Model.Menu(); string strSql = "select top 1 Path,IsAloneOpen from Menu where IsValid=1 and Name='" + Name + "'"; DataTable dt = 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 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); } } }