| | |
| | | return TenantConstants.NOT_PASS; |
| | | } |
| | | |
| | | /** |
| | | * 同步租户套餐 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Boolean syncTenantPackage(String tenantId, String packageId) { |
| | | TenantHelper.enableIgnore(); |
| | | SysTenantPackage tenantPackage = sysTenantPackageMapper.selectById(packageId); |
| | | List<SysRole> roles = sysRoleMapper.selectList( |
| | | new LambdaQueryWrapper<SysRole>().eq(SysRole::getTenantId, tenantId)); |
| | | List<Long> roleIds = new ArrayList<>(roles.size() - 1); |
| | | List<Long> menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong); |
| | | roles.forEach(item -> { |
| | | if (TenantConstants.TENANT_ADMIN_ROLE_KEY.equals(item.getRoleKey())) { |
| | | List<SysRoleMenu> roleMenus = new ArrayList<>(menuIds.size()); |
| | | menuIds.forEach(menuId -> { |
| | | SysRoleMenu roleMenu = new SysRoleMenu(); |
| | | roleMenu.setRoleId(item.getRoleId()); |
| | | roleMenu.setMenuId(menuId); |
| | | roleMenus.add(roleMenu); |
| | | }); |
| | | sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, item.getRoleId())); |
| | | sysRoleMenuMapper.insertBatch(roleMenus); |
| | | } else { |
| | | roleIds.add(item.getRoleId()); |
| | | } |
| | | }); |
| | | if (!roleIds.isEmpty()) { |
| | | sysRoleMenuMapper.delete( |
| | | new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, roleIds).notIn(!menuIds.isEmpty(), SysRoleMenu::getMenuId, menuIds)); |
| | | } |
| | | TenantHelper.disableIgnore(); |
| | | return true; |
| | | } |
| | | } |