From 5c40d83463c3db4455985f0302b10b79c63af23a Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期四, 22 八月 2024 09:14:22 +0800
Subject: [PATCH] Merge branch 'master' into Liudl
---
Wms/WMS.BLL/SysServer/MenuServer.cs | 71 +++++++++++++++++++++++++----------
1 files changed, 51 insertions(+), 20 deletions(-)
diff --git a/Wms/WMS.BLL/SysServer/MenuServer.cs b/Wms/WMS.BLL/SysServer/MenuServer.cs
index 6c4dfa5..4611e36 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,52 @@
//鍒ゆ柇鑿滃崟鍚嶇О鏄惁涓虹┖
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;
+ exp.And((a, b, c) => a.IsDel == "0");
+ return await queryAble.Where(exp.ToExpression()).OrderBy((a, b, c) => SqlFunc.ToInt32(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>
--
Gitblit v1.8.0