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