2022-10-08 22:25:30 +08:00

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