update:循环引用了 先去掉

This commit is contained in:
2021-06-29 10:29:53 +08:00
parent 097b2bb9e8
commit a0c98b5014
5 changed files with 32 additions and 20 deletions

View File

@@ -20,9 +20,10 @@ namespace Ewide.Core
private readonly IRepository<SysUserRole> _sysUserRoleRep;
private readonly IRepository<SysEmp> _sysEmpRep; // 员工表
private readonly IRepository<SysOrg> _sysOrgRep;
private readonly IRepository<SysRoleMenu> _sysRoleMenuRep;
private readonly IRepository<SysMenu> _sysMenuRep;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly ISysMenuService _sysMenuService;
private readonly ISysUserService _sysUserService;
private readonly ISysCacheService _sysCacheService;
public string UserId
{
@@ -55,9 +56,7 @@ namespace Ewide.Core
IRepository<SysUserRole> sysUserRoleRep,
IRepository<SysEmp> sysEmpRep,
IRepository<SysOrg> sysOrgRep,
IHttpContextAccessor httpContextAccessor,
ISysMenuService sysMenuService,
ISysUserService sysUserService)
IHttpContextAccessor httpContextAccessor, ISysCacheService sysCacheService, IRepository<SysRoleMenu> sysRoleMenuRep, IRepository<SysMenu> sysMenuRep)
{
_sysUserRep = sysUserRep;
_sysRoleRep = sysRoleRep;
@@ -65,8 +64,9 @@ namespace Ewide.Core
_sysEmpRep = sysEmpRep;
_sysOrgRep = sysOrgRep;
_httpContextAccessor = httpContextAccessor;
_sysMenuService = sysMenuService;
_sysUserService = sysUserService;
_sysCacheService = sysCacheService;
_sysRoleMenuRep = sysRoleMenuRep;
_sysMenuRep = sysMenuRep;
}
/// <summary>
@@ -171,13 +171,25 @@ namespace Ewide.Core
return await GetUserRoleList(UserId);
}
public Task<List<string>> GetLoginPermissionList()
public async Task<List<string>> GetLoginPermissionList()
{
return _sysMenuService.GetLoginPermissionList(UserId);
}
public Task<List<string>> GetUserDataScopeIdList()
{
return _sysUserService.GetUserDataScopeIdList(UserId);
var permissions = await _sysCacheService.GetPermission(UserId); // 先从缓存里面读取
if (permissions == null || permissions.Count < 1)
{
var roleIdList = await GetUserRoleIdList();
var menuIdList = await _sysRoleMenuRep.DetachedEntities
.Where(u => roleIdList.Contains(u.SysRoleId))
.Select(u => u.SysMenuId).ToListAsync();
permissions = await _sysMenuRep.DetachedEntities.Where(u => menuIdList.Contains(u.Id))
.Where(u => u.Type == (int)MenuType.FUNCTION)
.Where(u => u.Status == (int)CommonStatus.ENABLE)
.Select(u => u.Permission).ToListAsync();
#if DEBUG
#else
await _sysCacheService.SetPermission(userId, permissions); // 缓存结果
#endif
}
return permissions;
}
}
}