430 lines
19 KiB
C#
430 lines
19 KiB
C#
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<Model.Menu> GetModelList()
|
|
{
|
|
List<Model.Menu> MenuListObj = new List<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 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<Model.Menu> GetModelList_FSB(int RoleId)
|
|
{
|
|
List<Model.Menu> MenuListObj = new List<Model.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 = 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<Model.Menu> GetMenuRootList(int ParentId)
|
|
{
|
|
List<Model.Menu> MenuList = new List<Model.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++)
|
|
{
|
|
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<Model.Menu> GetMenuRootList(int RoleId, int ParentId)
|
|
{
|
|
List<Model.Menu> MenuList = new List<Model.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++)
|
|
{
|
|
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<Model.Menu> GetMenuRootListManage(int RoleId, string ParentId)
|
|
{
|
|
List<Model.Menu> MenuList = new List<Model.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++)
|
|
{
|
|
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<Model.Menu> GetMenuRootListManage(int RoleId)
|
|
{
|
|
List<Model.Menu> MenuList = new List<Model.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++)
|
|
{
|
|
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<Model.Menu> GetChildren(Model.Menu Menu, int RoleId, int IsAll)
|
|
{
|
|
List<Model.Menu> children = new List<Model.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++)
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
}
|