fix: 用户角色授权变更后没有清理缓存
This commit is contained in:
parent
d907507cd9
commit
f60b6735fb
@ -12,10 +12,13 @@ namespace Admin.NET.Core.Service;
|
||||
public class SysUserRoleService : ITransient
|
||||
{
|
||||
private readonly SqlSugarRepository<SysUserRole> _sysUserRoleRep;
|
||||
private readonly SysCacheService _sysCacheService;
|
||||
|
||||
public SysUserRoleService(SqlSugarRepository<SysUserRole> sysUserRoleRep)
|
||||
public SysUserRoleService(SqlSugarRepository<SysUserRole> sysUserRoleRep,
|
||||
SysCacheService sysCacheService)
|
||||
{
|
||||
_sysUserRoleRep = sysUserRoleRep;
|
||||
_sysCacheService = sysCacheService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -34,6 +37,9 @@ public class SysUserRoleService : ITransient
|
||||
RoleId = u
|
||||
}).ToList();
|
||||
await _sysUserRoleRep.InsertRangeAsync(userRoles);
|
||||
|
||||
// 清除缓存
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + input.UserId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -51,6 +57,12 @@ public class SysUserRoleService : ITransient
|
||||
RoleId = input.Id
|
||||
}).ToList();
|
||||
await _sysUserRoleRep.InsertRangeAsync(userRoles);
|
||||
|
||||
// 清除缓存
|
||||
foreach (var userId in input.UserIdList)
|
||||
{
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + userId);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -60,6 +72,17 @@ public class SysUserRoleService : ITransient
|
||||
/// <returns></returns>
|
||||
public async Task DeleteUserRoleByRoleId(long roleId)
|
||||
{
|
||||
var userIdList = await _sysUserRoleRep.AsQueryable()
|
||||
.Where(u => u.RoleId == roleId)
|
||||
.Select(u => u.UserId)
|
||||
.ToListAsync();
|
||||
|
||||
// 清除缓存
|
||||
foreach (var userId in userIdList)
|
||||
{
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + userId);
|
||||
}
|
||||
|
||||
await _sysUserRoleRep.DeleteAsync(u => u.RoleId == roleId);
|
||||
}
|
||||
|
||||
@ -71,6 +94,9 @@ public class SysUserRoleService : ITransient
|
||||
public async Task DeleteUserRoleByUserId(long userId)
|
||||
{
|
||||
await _sysUserRoleRep.DeleteAsync(u => u.UserId == userId);
|
||||
|
||||
// 清除缓存
|
||||
_sysCacheService.Remove(CacheConst.KeyUserApi + userId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user