|
@@ -48,7 +48,7 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
|
|
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
|
|
roleMenu.setRoleId(roleId);
|
|
|
roleMenu.setMenuId(menuId);
|
|
|
- roleMenu.setSysId(sysId);
|
|
|
+ roleMenu.setSysId(sysId).createId();
|
|
|
return roleMenu;
|
|
|
}).collect(Collectors.toList());
|
|
|
//批量保存
|
|
@@ -56,9 +56,12 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<Long> getMenuIdsByRoleId(Long roleId) {
|
|
|
+ public List<Long> getMenuIdsByRoleId(Long roleId, Boolean isAdmin) {
|
|
|
List<Long> menuIds = new ArrayList<>(16);
|
|
|
- List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, roleId));
|
|
|
+ List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery()
|
|
|
+ .eq(SysRoleMenu::getRoleId, roleId)
|
|
|
+ .eq(isAdmin != null, SysRoleMenu::getSelectAdmin, isAdmin)
|
|
|
+ );
|
|
|
if (CollUtil.isEmpty(sysRoleMenus)) {
|
|
|
return menuIds;
|
|
|
}
|
|
@@ -72,7 +75,22 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
|
|
|
if (CollUtil.isEmpty(sysRoleMenuList)) {
|
|
|
return Boolean.TRUE;
|
|
|
}
|
|
|
+ SysRoleMenu reqSysRoleMenu = sysRoleMenuList.get(0);
|
|
|
+ //先将现有的管理员权限全部更新为false,因为前端只传全量的有管理员权限的菜单
|
|
|
+ List<SysRoleMenu> roleMenuList = this.list(
|
|
|
+ Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getSysId, reqSysRoleMenu.getSysId())
|
|
|
+ .eq(SysRoleMenu::getRoleId, reqSysRoleMenu.getRoleId()));
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(roleMenuList)) {
|
|
|
+ List<SysRoleMenu> updateRoleMenuList = roleMenuList.stream().map(sysRoleMenu -> {
|
|
|
+ sysRoleMenu.setSelectAdmin(Boolean.FALSE);
|
|
|
+ return sysRoleMenu;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ updateBatchById(updateRoleMenuList);
|
|
|
+ }
|
|
|
+
|
|
|
List<SysRoleMenu> updateList = new ArrayList<>(16);
|
|
|
+ List<SysRoleMenu> addList = new ArrayList<>(16);
|
|
|
sysRoleMenuList.forEach(sysRoleMenu -> {
|
|
|
SysRoleMenu roleMenu = this.getOne(Wrappers.<SysRoleMenu>lambdaQuery()
|
|
|
.eq(SysRoleMenu::getSysId, sysRoleMenu.getSysId())
|
|
@@ -80,12 +98,16 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
|
|
|
.eq(SysRoleMenu::getMenuId, sysRoleMenu.getMenuId())
|
|
|
);
|
|
|
if (roleMenu != null) {
|
|
|
- roleMenu.setSelectAdmin(sysRoleMenu.getSelectAdmin());
|
|
|
- updateList.add(roleMenu);
|
|
|
+ updateList.add(roleMenu.setSelectAdmin(Boolean.TRUE));
|
|
|
+ } else {
|
|
|
+ addList.add(sysRoleMenu.createId().setSelectAdmin(Boolean.TRUE));
|
|
|
}
|
|
|
});
|
|
|
if (CollUtil.isNotEmpty(updateList)) {
|
|
|
- saveOrUpdateBatch(updateList);
|
|
|
+ updateBatchById(updateList);
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(addList)) {
|
|
|
+ saveBatch(addList);
|
|
|
}
|
|
|
return Boolean.TRUE;
|
|
|
}
|