2022-08-23 21:12:59 +08:00

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);
}
}
}