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