|
@@ -128,17 +128,16 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|
try {
|
|
try {
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
if (Objects.nonNull(role.getId())) {//编辑
|
|
if (Objects.nonNull(role.getId())) {//编辑
|
|
- QueryWrapper<SysRolePrivilege> sysRolePrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
- sysRolePrivilegeQueryWrapper.lambda().eq(SysRolePrivilege::getRoleId, role.getId())
|
|
|
|
- .eq(SysRolePrivilege::getEnable, true);
|
|
|
|
- List<SysRolePrivilege> sysRolePrivilegeList = sysRolePrivilegeService.list(sysRolePrivilegeQueryWrapper);
|
|
|
|
|
|
+ List<SysRolePrivilege> sysRolePrivilegeList = cacheService.rolePrivilegeCache(role.getId());
|
|
int count = (int) sysRolePrivilegeList.stream().filter(s -> Arrays.asList(role.getPrivilegeIds()).contains(s.getPrivilegeId())).count();
|
|
int count = (int) sysRolePrivilegeList.stream().filter(s -> Arrays.asList(role.getPrivilegeIds()).contains(s.getPrivilegeId())).count();
|
|
role.setUpdateId(sysUser.getId());
|
|
role.setUpdateId(sysUser.getId());
|
|
sysRoleService.updateById(role);
|
|
sysRoleService.updateById(role);
|
|
- if (count != sysRolePrivilegeList.size()) {
|
|
|
|
|
|
+ cacheService.updateRoleCache(role.getId());
|
|
|
|
+ if (count != sysRolePrivilegeList.size() || count != role.getPrivilegeIds().length) {
|
|
sysRolePrivilegeService.removeByRoleId(role.getId());
|
|
sysRolePrivilegeService.removeByRoleId(role.getId());
|
|
//角色权限
|
|
//角色权限
|
|
sysRolePrivilegeService.saveBatch(role);
|
|
sysRolePrivilegeService.saveBatch(role);
|
|
|
|
+ cacheService.updateRolePrivilegeCache(role.getId());
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
role.setCreateId(sysUser.getId());
|
|
role.setCreateId(sysUser.getId());
|