using Hotline.Settings; using SqlSugar; using XF.Domain.Dependency; namespace Hotline.Repository.SqlSugar.System { public class SystemAuthorityRepository : BaseRepository, ISystemAuthorityRepository, IScopeDependency { public SystemAuthorityRepository(ISugarUnitOfWork uow) : base(uow) { } /// /// 获取当前用户所有菜单 /// /// /// public async Task> GetMyMenu(string[] roles) { var list = await Db.Queryable() .Where(x => roles.Contains(x.RoleCode)).ToListAsync(); var menuarr = new List(); foreach (var item in list) { menuarr.AddRange(item.SystemMenuArr); } var newmenu = menuarr.Distinct().ToList(); return await Db.Queryable().Where(x => menuarr.Contains(x.PermissionCode)).OrderBy(x => x.DisplayOrder).ToTreeAsync(x => x.children, it => it.ParentId, ""); } /// /// 获取当前用户的所有功能点 /// /// /// public async Task> GetMyButton(string[] roles) { var list = await Db.Queryable() .Where(x => roles.Contains(x.RoleCode)).ToListAsync(); var buttonarr = new List(); foreach (var item in list) { buttonarr.AddRange(item.SystemButtonArr); } return buttonarr.Distinct().ToList(); } /// /// 获取当前用户所有功能点(包含菜单和按钮) /// /// /// public IReadOnlyList GetPermission(List roles) { var list = Db.Queryable() .Where(x => roles.Contains(x.RoleCode)).ToList(); var permissionarr = new List(); foreach (var item in list) { permissionarr.AddRange(item.SystemMenuArr); permissionarr.AddRange(item.SystemButtonArr); } return permissionarr.Distinct().ToList(); } } }