| @@ -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<MallRole> mallRoleList = mallRoleService.getList(q); | |||
| for(MallRole mallRole: mallRoleList) { | |||
| MallRolePermission qRP = new MallRolePermission(); | |||
| qRP.setRoleId(mallRole.getId()); | |||
| List<MallRolePermission> 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<Long> pList = new ArrayList<>(); | |||
| // 默认用户添加首页 | |||
| pList.add(Long.valueOf(EnumMenuType.PAGE_MAIN.getCode())); | |||
| // 添加原有子菜单 | |||
| for(MallRolePermission mRP: mallRolePermissionList) { | |||
| // 原有权限 | |||
| pList.add(mRP.getPermissionId()); | |||
| // 二级菜单 | |||
| List<MallPermission> subList2 = mallPermissionService.getByParentId(mRP.getPermissionId()); | |||
| for(MallPermission mp: subList2) { | |||
| pList.add(mp.getId()); | |||
| // 三级菜单 | |||
| List<MallPermission> 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<MallRole> mallRoleList = mallRoleService.getList(mrQ); | |||
| // 2. 获取全部permission | |||
| MallPermission mpQ = new MallPermission(); | |||
| mpQ.setAvailable("Y"); | |||
| List<MallPermission> mpList = mallPermissionService.getList(mpQ); | |||
| for(MallRole mallRole: mallRoleList) { | |||
| MallRolePermission qRP = new MallRolePermission(); | |||
| qRP.setRoleId(mallRole.getId()); | |||
| List<MallRolePermission> 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<Long> allList = new ArrayList<>(); | |||
| List<Long> 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); | |||