From 56ac2992fddc5591254a9cdf945ea014f7d284d3 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期二, 09 七月 2024 16:52:54 +0800
Subject: [PATCH] 菜单
---
Wms/WMS.IBLL/ISysServer/IMenuServer.cs | 2
Wms/Wms/Controllers/SysController.cs | 4 +-
Wms/WMS.BLL/SysServer/RoleRightServer.cs | 1
Wms/WMS.BLL/SysServer/MenuServer.cs | 70 +++++++++++++++++++++++++----------
4 files changed, 54 insertions(+), 23 deletions(-)
diff --git a/Wms/WMS.BLL/SysServer/MenuServer.cs b/Wms/WMS.BLL/SysServer/MenuServer.cs
index 6c4dfa5..90a7cd3 100644
--- a/Wms/WMS.BLL/SysServer/MenuServer.cs
+++ b/Wms/WMS.BLL/SysServer/MenuServer.cs
@@ -19,7 +19,7 @@
/// <summary>
/// 鑿滃崟鏈嶅姟瀹炶返
/// </summary>
- public class MenuServer : DbHelper<SysFunctionMenu>,IMenuServer
+ public class MenuServer : DbHelper<SysFunctionMenu>, IMenuServer
{
private static readonly SqlSugarScope Db = DataContext.Db;
@@ -45,10 +45,13 @@
/// </summary>
/// <param name="menuDto">鑿滃崟Dto</param>
/// <returns></returns>
- public List<FunctionMenuVm> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level = "")
+ public async Task<List<FunctionMenuVm>> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level = "")
{
- string str = "select menu1.Id,menu1.MenuNo,menu1.MenuName,menu2.MenuName ParentName,menu1.ParentNo,menu1.Ord,menu1.Url,menu1.level,menu1.IsEnable,menu1.Demo,menu1.IsDel,menu1.CreateTime,menu1.CreateUser,menu1.UpdateTime,menu1.UpdateUser,user1.RealName CreateUserName from SysFunctionMenu menu1 left join sysfunctionmenu menu2 on menu1.parentNo = menu2.MenuNo join SysUserInfor user1 on menu1.CreateUser = user1.id where menu1.IsDel = '0' and menu1.IsEnable = '0' ";
-
+ //string str = "select menu1.Id,menu1.MenuNo,menu1.MenuName,menu2.MenuName ParentName,menu1.ParentNo,menu1.Ord,menu1.Url,menu1.level,menu1.IsEnable,menu1.Demo,menu1.IsDel,menu1.CreateTime,menu1.CreateUser,menu1.UpdateTime,menu1.UpdateUser,user1.RealName CreateUserName from SysFunctionMenu menu1 left join sysfunctionmenu menu2 on menu1.parentNo = menu2.MenuNo join SysUserInfor user1 on menu1.CreateUser = user1.id where menu1.IsDel = '0' and menu1.IsEnable = '0' ";
+ var queryAble = Db.Queryable<SysFunctionMenu>()
+ .LeftJoin<SysFunctionMenu>((a, b) => a.ParentNo == b.MenuNo)
+ .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id);
+ var exp = Expressionable.Create<SysFunctionMenu, SysFunctionMenu, SysUserInfor>();
//鍒ゆ柇椤甸潰鑿滃崟
if (!string.IsNullOrEmpty(MenuNo))
{
@@ -59,28 +62,33 @@
if (level == "1")
{
//椤甸潰
- str += $" and menu1.MenuNo = '{MenuNo}'";
+ exp.And((a, b, c) => a.MenuNo == MenuNo);
+ //str += $" and menu1.MenuNo = '{MenuNo}'";
}
if (level == "2")
{
//鎸夐挳
- str += $" and menu1.ParentNo = '{MenuNo}'";
+ exp.And((a, b, c) => a.ParentNo == MenuNo);
+ //str += $" and menu1.ParentNo = '{MenuNo}'";
}
if (level == "0")
{
//妯″潡
- str += $" and menu1.ParentNo = '{MenuNo}'";
+ exp.And((a, b, c) => a.ParentNo == MenuNo);
+ //str += $" and menu1.ParentNo = '{MenuNo}'";
}
}
else
{
if (!string.IsNullOrEmpty(MenuName))
{
- str += $" and menu1.ParentNo = '{MenuNo}'";
+ exp.And((a, b, c) => a.ParentNo == MenuNo);
+ //str += $" and menu1.ParentNo = '{MenuNo}'";
}
else
{
- str += $" and (menu1.ParentNo = '{MenuNo}' or menu1.MenuNo = '{MenuNo}')";
+ exp.And((a, b, c) => a.ParentNo == MenuNo || a.MenuNo == MenuNo);
+ //str += $" and (menu1.ParentNo = '{MenuNo}' or menu1.MenuNo = '{MenuNo}')";
}
}
@@ -95,17 +103,20 @@
if (level == "1")
{
//椤甸潰
- str += $" and menu1.ParentNo = '{pMenuNo}'";
+ exp.And((a, b, c) => a.ParentNo == pMenuNo);
+ //str += $" and menu1.ParentNo = '{pMenuNo}'";
}
if (level == "2")
{
//鎸夐挳
- str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
+ exp.And((a, b, c) => SqlFunc.Subqueryable<SysFunctionMenu>().Where(d => d.ParentNo == pMenuNo && a.ParentNo == d.MenuNo).Any());
+ //str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
}
if (level == "0")
{
//妯″潡
- str += $" and menu1.MenuNo= '{pMenuNo}'";
+ exp.And((a, b, c) => a.MenuNo == pMenuNo);
+ //str += $" and menu1.MenuNo= '{pMenuNo}'";
}
}
else
@@ -113,32 +124,51 @@
//鍒ゆ柇鑿滃崟鍚嶇О鏄惁涓虹┖
if (!string.IsNullOrEmpty(MenuName) && string.IsNullOrEmpty(MenuNo))
{
- str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
+ queryAble.Where(a => SqlFunc.Subqueryable<SysFunctionMenu>().Where(d => d.ParentNo == pMenuNo && a.ParentNo == d.MenuNo).Any());
+ //str += $" and menu1.ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = '{pMenuNo}')";
}
else
{
- str += $" and ( menu1.ParentNo = '{pMenuNo}' or menu1.MenuNo = '{pMenuNo}' or menu1.ParentNo in (select MenuNo from SysFunctionmenu where ParentNo = {pMenuNo}) )";
+ exp.And((a, b, c) => a.ParentNo == pMenuNo || a.MenuNo == pMenuNo || SqlFunc.Subqueryable<SysFunctionMenu>().Where(d => d.ParentNo == pMenuNo && a.ParentNo == d.MenuNo).Any());
+ //str += $" and ( menu1.ParentNo = '{pMenuNo}' or menu1.MenuNo = '{pMenuNo}' or menu1.ParentNo in (select MenuNo from SysFunctionmenu where ParentNo = {pMenuNo}) )";
}
}
}
//鍒ゆ柇鑿滃崟鍚嶇О涓庣紪鍙锋槸鍚︿负绌�
if (!string.IsNullOrEmpty(MenuName))
{
- str += $" and menu1.MenuName like '%{MenuName}%'";
+ exp.And((a, b, c) => a.MenuName.Contains(MenuName));
+ //str += $" and menu1.MenuName like '%{MenuName}%'";
//鍒ゆ柇鐖剁骇鑿滃崟鏄惁涓虹┖
if (!string.IsNullOrEmpty(pMenuNo) && string.IsNullOrEmpty(MenuNo))
{
- str += $" or menu1.MenuNo in (select MenuNo from SysFunctionMenu where ( ParentNo = '{pMenuNo}' or MenuNo='{pMenuNo}' ) and MenuName like '%{MenuName}%')";
+ exp.Or((a, b, c) => SqlFunc.Subqueryable<SysFunctionMenu>().Where(e => (e.ParentNo == pMenuNo || e.MenuNo == pMenuNo && MenuName.Contains(MenuName)) && e.MenuNo == a.MenuNo).Any());
+ //str += $" or menu1.MenuNo in (select MenuNo from SysFunctionMenu where ( ParentNo = '{pMenuNo}' or MenuNo='{pMenuNo}' ) and MenuName like '%{MenuName}%')";
}
}
//鍒ゆ柇鑿滃崟灞傜骇
if (!string.IsNullOrEmpty(level))
{
- str += $" and menu1.Level = '{level}'";
+ exp.And((a, b, c) => a.Level == level);
+ //str += $" and menu1.Level = '{level}'";
}
- str += " order by menu1.MenuNo,menu1.Ord";
- List<FunctionMenuVm> menulist = _menu.GetMenuList(str);
- return menulist;
+ return await queryAble.Where(exp.ToExpression()).OrderBy((a, b, c) => a.MenuNo).OrderBy((a, b, c) => a.Ord)
+ .Select<FunctionMenuVm>((a, b, c) => new FunctionMenuVm()
+ {
+ Id = a.Id,
+ MenuNo = a.MenuNo,
+ MenuName = a.MenuName,
+ ParentNo = a.ParentNo,
+ ParentName = b.MenuName,
+ Ord = a.Ord,
+ Url = a.Url,
+ Level = a.Level,
+ IsEnable = a.IsEnable,
+ Demo = a.Demo,
+ CreateTime = a.CreateTime,
+ CreateUser = a.CreateUser,
+ CreateUserName = c.RealName,
+ }, true).ToListAsync();
}
/// <summary>
diff --git a/Wms/WMS.BLL/SysServer/RoleRightServer.cs b/Wms/WMS.BLL/SysServer/RoleRightServer.cs
index 8579b02..c177d6b 100644
--- a/Wms/WMS.BLL/SysServer/RoleRightServer.cs
+++ b/Wms/WMS.BLL/SysServer/RoleRightServer.cs
@@ -57,6 +57,7 @@
.LeftJoin<SysRoles>((a, b, c) => a.RoleNo == c.RoleNo)
.Where((a, b, c) => a.IsDel == "0" && b.IsDel == "0" && c.IsDel == "0")
.Where((a, b, c) => a.RoleNo == modUser.RoleNo)
+ .OrderBy((a, b, c) => b.Ord)
.Select<RoleRightDto>()
.ToListAsync();
}
diff --git a/Wms/WMS.IBLL/ISysServer/IMenuServer.cs b/Wms/WMS.IBLL/ISysServer/IMenuServer.cs
index 2e055c4..6374840 100644
--- a/Wms/WMS.IBLL/ISysServer/IMenuServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IMenuServer.cs
@@ -18,7 +18,7 @@
/// </summary>
/// <param name="menuDto">鑿滃崟Dto</param>
/// <returns></returns>
- List<FunctionMenuVm> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level);
+ Task<List<FunctionMenuVm>> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level);
/// <summary>
/// 鏍规嵁灞傜骇鑾峰彇鑿滃崟鍒楄〃
diff --git a/Wms/Wms/Controllers/SysController.cs b/Wms/Wms/Controllers/SysController.cs
index 8c5ed2e..9ab5be7 100644
--- a/Wms/Wms/Controllers/SysController.cs
+++ b/Wms/Wms/Controllers/SysController.cs
@@ -98,10 +98,10 @@
/// <param name="level">灞傜骇</param>
/// <returns></returns>
[HttpPost]
- public IActionResult GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level)
+ public async Task<IActionResult> GetMenuList(string MenuName, string pMenuNo, string MenuNo, string level)
{
//鏌ヨ鑿滃崟淇℃伅鍒楄〃
- List<FunctionMenuVm> menulist = _menuSvc.GetMenuList(MenuName, pMenuNo, MenuNo, level);
+ List<FunctionMenuVm> menulist = await _menuSvc.GetMenuList(MenuName, pMenuNo, MenuNo, level);
return Ok(new
{
data = menulist,
--
Gitblit v1.8.0