| @@ -154,60 +154,44 @@ public class SysMenuController extends BaseController { | |||||
| logger.debug("[" + getIpAddr() + "] MallPermissionController::upgradeMenus"); | logger.debug("[" + getIpAddr() + "] MallPermissionController::upgradeMenus"); | ||||
| MallUserInfo userInfo = getUser(); | MallUserInfo userInfo = getUser(); | ||||
| if(userInfo.isFmSuperAdmin()) { | 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("用户菜单迁移") | @ApiOperation("用户菜单迁移") | ||||
| @@ -222,9 +206,6 @@ public class SysMenuController extends BaseController { | |||||
| addMenusForContract(); | addMenusForContract(); | ||||
| // 3. 账单 | // 3. 账单 | ||||
| addMenusForBills(); | addMenusForBills(); | ||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| return new ResultData(ErrorCode.USER_NO_PERMISSION); | return new ResultData(ErrorCode.USER_NO_PERMISSION); | ||||