mybatis拦截器实现权限管理( 三 )

userDataPermissions = Optional.ofNullable(userDataPermissionMapper.selectByExample(example)).orElse(new ArrayList<>(16));List agentIds = userDataPermissions.stream().map(UserDataPermission::getRelatedId).collect(Collectors.toList());MybatisDataAuthority mybatisDataAuthority = MybatisDataAuthority.builder().superAdmin(loginUser.getUser().getSuperAdmin()).hasOperator(true).hasMedia(hasMedia).hasGame(hasGame).operatorAlias(operatorAlias).gameAlias(gameAlias).allGame(CollectionUtils.isEmpty(loginUser.getGameCodes()) ? 1 : 0).allMedia(CollectionUtils.isEmpty(loginUser.getMediaCodes()) ? 1 : 0).allOperator(allOperator).mediaAlias(mediaAlias).operators(userIds).games(loginUser.getGameCodes()).games(loginUser.getGameCodes()).mediaCodes(loginUser.getMediaCodes()).agentIds(agentIds).build();localDataPermission.set(mybatisDataAuthority);}public static void startDataPermission(Integer permissionId, Boolean hasGame, Boolean hasMedia, String operatorAlias, String gameAlias, String mediaAlias) {// 获取当前的用户boolean allOperator = false;LoginUser loginUser = SecurityUtils.getLoginUser();List userIds = new ArrayList<>(16);if (loginUser != null) {// 查询本人的当前页面的操作权限for (PermissionV2Vo permissionV2Vo : loginUser.getPermissionV2VoList()) {if (permissionV2Vo.getId().equals(permissionId)) {switch (permissionV2Vo.getDataAuthority()) {// 本人case 1:userIds.add(loginUser.getUserId());break;// 本部门case 2:// 获取部门的人员Example example = new Example(UserV2.class);example.createCriteria().andEqualTo("departmentId", loginUser.getUser().getDepartmentId());userIds = SpringUtil.getBeanByType(UserV2Mapper.class).selectByExample(example).stream().map(BaseEntity::getId).collect(Collectors.toList());break;// 公司case 3:allOperator = true;default:break;}}}}MybatisDataAuthority mybatisDataAuthority = MybatisDataAuthority.builder().superAdmin(loginUser.getUser().getSuperAdmin()).hasOperator(true).hasMedia(hasMedia).hasGame(hasGame).operatorAlias(operatorAlias).gameAlias(gameAlias).allOperator(allOperator).allGame(CollectionUtils.isEmpty(loginUser.getGameCodes()) ? 1 : 0).allMedia(CollectionUtils.isEmpty(loginUser.getMediaCodes()) ? 1 : 0).mediaAlias(mediaAlias).operators(userIds).games(loginUser.getGameCodes()).games(loginUser.getGameCodes()).mediaCodes(loginUser.getMediaCodes()).build();localDataPermission.set(mybatisDataAuthority);}public static void startOnlyGamePermission(String gameAlias) {// 获取当前的用户LoginUser loginUser = SecurityUtils.getLoginUser();MybatisDataAuthority mybatisDataAuthority = MybatisDataAuthority.builder().superAdmin(loginUser.getUser().getSuperAdmin()).hasOperator(false).hasMedia(false).gameAlias(gameAlias).hasGame(true).gameAlias(gameAlias).allGame(CollectionUtils.isEmpty(loginUser.getGameCodes()) ? 1 : 0).allMedia(CollectionUtils.isEmpty(loginUser.getMediaCodes()) ? 1 : 0).games(loginUser.getGameCodes()).build();localDataPermission.set(mybatisDataAuthority);}public static void startOnlyMediaPermission(String mediaAlias) {// 获取当前的用户LoginUser loginUser = SecurityUtils.getLoginUser();MybatisDataAuthority mybatisDataAuthority = MybatisDataAuthority.builder().superAdmin(loginUser.getUser().getSuperAdmin()).hasOperator(false).hasMedia(true).mediaAlias(mediaAlias).hasGame(false).allGame(CollectionUtils.isEmpty(loginUser.getGameCodes()) ? 1 : 0).allMedia(CollectionUtils.isEmpty(loginUser.getMediaCodes()) ? 1 : 0).mediaCodes(loginUser.getMediaCodes()).build();localDataPermission.set(mybatisDataAuthority);}public static void startOnlyMediaAndGamePermission(String mediaAlias, String gameAlias) {// 获取当前的用户LoginUser loginUser = SecurityUtils.getLoginUser();MybatisDataAuthority mybatisDataAuthority = MybatisDataAuthority.builder().superAdmin(loginUser.getUser().getSuperAdmin()).hasOperator(false).hasMedia(true).mediaAlias(mediaAlias).hasGame(true).gameAlias(gameAlias).allGame(CollectionUtils.isEmpty(loginUser.getGameCodes()) ? 1 : 0).allMedia(CollectionUtils.isEmpty(loginUser.getMediaCodes()) ? 1 : 0).mediaCodes(loginUser.getMediaCodes()).games(loginUser.getGameCodes()).build();localDataPermission.set(mybatisDataAuthority);}public static List