File was renamed from FlexJobApi.User.Application/Auths/Queries/GetCurrentLogierMenuQueryHandler.cs |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace FlexJobApi.User.Application |
| | | namespace FlexJobApi.UserServer.Application |
| | | { |
| | | /// <summary> |
| | | /// 获取当前登录用户菜单详情 |
| | |
| | | public class GetCurrentLogierMenuQueryHandler( |
| | | IRepository<Menu> repMenu, |
| | | IRepository<RoleMenu> repRoleMenu, |
| | | IRepository<UserInfoRole> repUserInfoRole |
| | | IRepository<UserRole> repUserInfoRole |
| | | ) : IRequestHandler<GetCurrentLogierMenuQuery, GetMenuQueryResult> |
| | | { |
| | | private readonly IRepository<Menu> repMenu = repMenu; |
| | | private readonly IRepository<RoleMenu> repRoleMenu = repRoleMenu; |
| | | private readonly IRepository<UserInfoRole> repUserInfoRole = repUserInfoRole; |
| | | private readonly IRepository<UserRole> repUserInfoRole = repUserInfoRole; |
| | | |
| | | /// <inheritdoc/> |
| | | public async Task<GetMenuQueryResult> Handle(GetCurrentLogierMenuQuery request, CancellationToken cancellationToken) |
| | |
| | | if (logier.Level != 999) |
| | | { |
| | | var menuIds = await repRoleMenu.AsQueryable().AsNoTracking() |
| | | .Where(it => it.Role.UserInfoRoles.Any(ur => ur.UserInfoId == logier.UserInfoId)) |
| | | .Where(it => it.Role.UserRoles.Any(ur => ur.UserId == logier.Id)) |
| | | .Select(it => it.MenuId) |
| | | .ToListAsync(cancellationToken); |
| | | q = q.Where(it => menuIds.Contains(it.Id)); |