From c020f31a67fc5aa5644511bddff075f7ecc85234 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期二, 27 五月 2025 15:35:27 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/ZhongHeLiTiKu --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 202 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs" new file mode 100644 index 0000000..82d9289 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs" @@ -0,0 +1,202 @@ +锘縰sing SqlSugar; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core; +using WIDESEA_Core.BaseRepository; +using WIDESEA_Core.BaseServices; +using WIDESEA_Core.Helper; +using WIDESEA_DTO.System; +using WIDESEA_ISystemRepository; +using WIDESEA_ISystemService; +using WIDESEA_Model; +using WIDESEA_Model.Models; + +namespace WIDESEA_SystemService +{ + public class Sys_MenuService : ServiceBase<Sys_Menu, ISys_MenuRepository>, ISys_MenuService + { + private readonly IUnitOfWorkManage _unitOfWorkManage; + + public ISys_MenuRepository Repository => BaseDal; + + public Sys_MenuService(ISys_MenuRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) + { + _unitOfWorkManage = unitOfWorkManage; + } + + /// <summary> + /// 鑾峰彇褰撳墠鐢ㄦ埛鎵�鏈夎彍鍗曚笌鏉冮檺 + /// </summary> + /// <returns></returns> + public object GetCurrentMenuActionList() + { + object obj = GetMenuActionList(App.User.RoleId); + if (obj is IEnumerable<object> list) + { + if (list.Any()) + { + return obj; + } + else + { + return WebResponseContent.Instance.Error("鏈幏鍙栧埌鑿滃崟淇℃伅"); + } + } + return obj; + } + + /// <summary> + /// 鏍规嵁瑙掕壊ID鑾峰彇鑿滃崟涓庢潈闄� + /// </summary> + /// <param name="roleId"></param> + /// <returns></returns> + public object GetMenuActionList(int roleId) + { + if (App.User.IsRoleIdSuperAdmin(roleId)) + { + return BaseDal.GetSuperAdminMenu(); + } + return BaseDal.GetMenuByRoleId(roleId); + } + + + public List<MenuDTO> GetUserMenuList(int roleId) + { + if (App.User.IsRoleIdSuperAdmin(roleId)) + { + return BaseDal.GetAllMenu(); + } + List<int> menuIds = BaseDal.GetPermissions(roleId).Select(x => x.MenuId).ToList(); + return BaseDal.GetAllMenu().Where(x => menuIds.Contains(x.MenuId)).ToList(); + } + + public List<MenuDTO> GetUserMenuListPDA(int roleId) + { + if (App.User.IsRoleIdSuperAdmin(roleId)) + { + return BaseDal.GetAllMenuPDA(); + } + List<int> menuIds = BaseDal.GetPermissions(roleId).Select(x => x.MenuId).ToList(); + return BaseDal.GetAllMenuPDA().Where(x => menuIds.Contains(x.MenuId)).ToList(); + } + + public List<ActionDTO> GetActions(int menuId, List<ActionDTO> menuActions, List<Permissions> permissions, int roleId) + { + if (App.User.IsRoleIdSuperAdmin(roleId)) + { + return menuActions; + } + + return menuActions.Where(p => permissions + .Exists(w => menuId == w.MenuId + && w.UserAuthArr.Contains(p.Value))) + .ToList(); + } + + /// <summary> + /// 缂栬緫淇敼鑿滃崟鏃�,鑾峰彇鎵�鏈夎彍鍗� + /// </summary> + /// <returns></returns> + public object GetMenu() + { + if (App.User.IsRoleIdSuperAdmin(App.User.RoleId)) + { + List<int> menuIds = BaseDal.QueryData().Select(x => x.MenuId).ToList(); + return BaseDal.GetMenu(menuIds); + } + else + { + List<int> menuIds = BaseDal.GetPermissions(App.User.RoleId).Select(x => x.MenuId).ToList(); + return BaseDal.GetMenu(menuIds); + } + } + + /// <summary> + /// 缂栬緫鑿滃崟鏃讹紝鑾峰彇鑿滃崟淇℃伅 + /// </summary> + /// <param name="menuId"></param> + /// <returns></returns> + public object GetTreeItem(int menuId) + { + return BaseDal.GetTreeItem(menuId); + } + + /// <summary> + /// 鏂板缓鎴栫紪杈戣彍鍗� + /// </summary> + /// <param name="menu"></param> + /// <returns></returns> + public WebResponseContent Save(Sys_Menu menu) + { + WebResponseContent webResponse = new WebResponseContent(); + if (menu == null) return webResponse.Error("娌℃湁鑾峰彇鍒版彁浜ょ殑鍙傛暟"); + if (menu.MenuId > 0 && menu.MenuId == menu.ParentId) return webResponse.Error("鐖剁骇ID涓嶈兘鏄綋鍓嶈彍鍗曠殑ID"); + try + { + //webResponse = menu.ValidationEntity(x => new { x.MenuName, x.TableName }); + //if (!webResponse.Status) return webResponse; + if (menu.TableName != "/" && menu.TableName != ".") + { + // 2022.03.26澧炵Щ鍔ㄧ鍔犺彍鍗曠被鍨嬪垽鏂� + Sys_Menu sysMenu = BaseDal.QueryFirst(x => x.TableName == menu.TableName); + if (sysMenu != null) + { + if (sysMenu.MenuType == menu.MenuType) + { + if ((menu.MenuId > 0 && sysMenu.MenuId != menu.MenuId) + || menu.MenuId <= 0) + { + return webResponse.Error($"瑙嗗浘/琛ㄥ悕銆恵menu.TableName}銆戝凡琚叾浠栬彍鍗曚娇鐢�"); + } + } + } + } + bool _changed = false; + if (menu.MenuId <= 0) + { + int id = BaseDal.AddData(menu); + menu.MenuId = id; + } + else + { + //2020.05.07鏂板绂佹閫夋嫨涓婄骇瑙掕壊涓鸿嚜宸� + if (menu.MenuId == menu.ParentId) + { + return webResponse.Error($"鐖剁骇id涓嶈兘涓鸿嚜宸�"); + } + if (BaseDal.QueryFirst(x => x.ParentId == menu.MenuId && menu.ParentId == x.MenuId) != null) + { + return webResponse.Error($"涓嶈兘閫夋嫨姝ょ埗绾d锛岄�夋嫨鐨勭埗绾d涓庡綋鍓嶈彍鍗曞舰鎴愪緷璧栧叧绯�"); + } + + _changed = BaseDal.QueryData(c => c.MenuId == menu.MenuId).Select(s => s.Auth).FirstOrDefault() != menu.Auth; + + BaseDal.UpdateData(menu); + } + webResponse.OK("淇濆瓨鎴愬姛", menu); + } + catch (Exception ex) + { + webResponse.Error(ex.Message); + } + return webResponse; + + } + + public WebResponseContent DelMenu(int menuId) + { + WebResponseContent webResponse = new WebResponseContent(); + if(BaseDal.QueryFirst(x=>x.ParentId == menuId) != null) + { + return webResponse = WebResponseContent.Instance.Error("褰撳墠鑿滃崟瀛樺湪瀛愯彍鍗�,璇峰厛鍒犻櫎瀛愯彍鍗�!"); + } + BaseDal.DeleteDataById(menuId); + + return webResponse = WebResponseContent.Instance.OK("鍒犻櫎鎴愬姛"); + } + } +} -- Gitblit v1.9.3