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,10 +20,12 @@ namespace Ewide.Core.Controller
{
private readonly IAreaCodeService _areaCodeService;
private readonly IUserManager _userManager;
public AreaCodeController(IAreaCodeService areaCodeService, IUserManager userManager)
private readonly ISysUserService _sysUserService;
public AreaCodeController(IAreaCodeService areaCodeService, IUserManager userManager, ISysUserService sysUserService)
{
_areaCodeService = areaCodeService;
_userManager = userManager;
_sysUserService = sysUserService;
}
/// <summary>
/// 查询
@@ -86,7 +88,7 @@ namespace Ewide.Core.Controller
List<string> areaCodeList = null;
if (!_userManager.SuperAdmin)
{
var orgIdList = await _userManager.GetUserDataScopeIdList();
var orgIdList = await _sysUserService.GetUserDataScopeIdList();
areaCodeList = await _areaCodeService.GetAreaCodeListByOrgId(orgIdList);
}
return await _areaCodeService.GetAreaCodeTree(level, areaCodeList);

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -24,6 +23,5 @@ namespace Ewide.Core
Task<List<SysRole>> GetUserRoleList(string userId);
Task<List<SysRole>> GetUserRoleList();
Task<List<string>> GetLoginPermissionList();
Task<List<string>> GetUserDataScopeIdList();
}
}

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;
}
}
}