fix: 用户角色授权变更后没有清理缓存

This commit is contained in:
许俊杰 2025-03-22 18:07:26 +08:00
parent d907507cd9
commit f60b6735fb

View File

@ -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>