diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java index a59aa2ea5..2ac6edce3 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java @@ -154,60 +154,44 @@ public class SysMenuController extends BaseController { logger.debug("[" + getIpAddr() + "] MallPermissionController::upgradeMenus"); MallUserInfo userInfo = getUser(); if(userInfo.isFmSuperAdmin()) { - // 已有Role - MallRole q = new MallRole(); - List mallRoleList = mallRoleService.getList(q); - for(MallRole mallRole: mallRoleList) { - MallRolePermission qRP = new MallRolePermission(); - qRP.setRoleId(mallRole.getId()); - List mallRolePermissionList = mallRolePermissionService.getList(qRP); - boolean isOld = mallRolePermissionList.stream().allMatch( - (rolePermission-> - (rolePermission.getPermissionId().longValue() <= (long)EnumMenuType.PAGE_MAIN.getCode()) - ) - ); - if(mallRolePermissionList.size() == 1) { - MallRolePermission mRP = mallRolePermissionList.get(0); - if(mRP.getPermissionId().longValue() == (long)EnumMenuType.MOBILE_ADMIN.getCode()) { - isOld = false; - } - if(mRP.getPermissionId().longValue() == (long)EnumMenuType.PAGE_MAIN.getCode()) { - isOld = false; - } - } - if(isOld){ - // 添加子权限给此role - List pList = new ArrayList<>(); - // 默认用户添加首页 - pList.add(Long.valueOf(EnumMenuType.PAGE_MAIN.getCode())); - // 添加原有子菜单 - for(MallRolePermission mRP: mallRolePermissionList) { - // 原有权限 - pList.add(mRP.getPermissionId()); - // 二级菜单 - List subList2 = mallPermissionService.getByParentId(mRP.getPermissionId()); - for(MallPermission mp: subList2) { - pList.add(mp.getId()); - // 三级菜单 - List subList3 = mallPermissionService.getByParentId(mp.getId()); - if(subList3.size() > 0) { - subList3.stream().forEach(smp->{ - pList.add(smp.getId()); - }); - } - } + adminMenuUpgrade(); + return new ResultData(); + } + return new ResultData(ErrorCode.USER_NO_PERMISSION); + } + + private void adminMenuUpgrade() { + // 1. 获取已有管理员 + MallRole mrQ = new MallRole(); + mrQ.setName("系统管理员"); + mrQ.setAvailable("0"); + List mallRoleList = mallRoleService.getList(mrQ); + // 2. 获取全部permission + MallPermission mpQ = new MallPermission(); + mpQ.setAvailable("Y"); + List mpList = mallPermissionService.getList(mpQ); + for(MallRole mallRole: mallRoleList) { + MallRolePermission qRP = new MallRolePermission(); + qRP.setRoleId(mallRole.getId()); + List mallRolePermissionList = mallRolePermissionService.getList(qRP); + if (mpList.size() != mallRolePermissionList.size()) { + // 3. permission不一致, 添加到mall_role_permission + for(MallPermission mp: mpList) { + if (mallRolePermissionList.stream().anyMatch(mallRolePermission -> mp.getId().equals(mallRolePermission.getPermissionId()))) + continue; + // 3.1 添加到mall_role_permission + try { + mallRolePermissionService.saveOrUpdate(new MallRolePermission(){{ + setTenantId(mallRole.getTenantId()); + setPermissionId(mp.getId()); + setRoleId(mallRole.getId()); + }}); + } catch (Exception e) { + logger.error(e.getMessage()); } - List allList = new ArrayList<>(); - List dpList = pList.stream().distinct().collect(Collectors.toList()); - allList.addAll(dpList); - Long[] idArray = new Long[allList.size()]; - allList.toArray(idArray); - mallRolePermissionService.savePermissions(mallRole.getTenantId(), mallRole.getId(), idArray); } } - return new ResultData(); } - return new ResultData(ErrorCode.USER_NO_PERMISSION); } @ApiOperation("用户菜单迁移") @@ -222,9 +206,6 @@ public class SysMenuController extends BaseController { addMenusForContract(); // 3. 账单 addMenusForBills(); - - - return new ResultData(); } return new ResultData(ErrorCode.USER_NO_PERMISSION);