java graph api 中将DirectoryObject转换为用户,以及用户过多时分页拉取

 可以用(com.microsoft.graph.models.User)来进行强制转型

List<DirectoryObject> objects = collection.getCurrentPage();
for (DirectoryObject directoryObject : objects) {
    if(directoryObject.oDataType.equals("#microsoft.graph.user"))
    {
        com.microsoft.graph.models.User O365user=(com.microsoft.graph.models.User)directoryObject;

        
    }
}

//分页请求

LinkedList<Option> requestOptions = new LinkedList<Option>();
requestOptions.add(new HeaderOption("ConsistencyLevel", "eventual"));
DirectoryObjectCollectionReferenceRequest request = graphServiceClient.groups( GROUP_ID).members()
           .buildRequest( requestOptions );
//每次请求时,最多返回100条记录
DirectoryObjectCollectionWithReferencesPage page = request.get();
List<DirectoryObject> objects = page.getCurrentPage();

//构造下一次请求,如果不为空则继续请求
DirectoryObjectCollectionWithReferencesRequestBuilder builder = page.getNextPage();
while (builder != null) {
    request = builder.buildRequest();
    page = request.get();
    objects.addAll(page.getCurrentPage());
    builder = page.getNextPage();
}
 LinkedList<Option> requestOptions = new LinkedList<Option>();
            requestOptions.add(new HeaderOption("ConsistencyLevel", "eventual"));
            DirectoryObjectCollectionReferenceRequest request = graphServiceClient.groups( GROUP_ID).members()
                       .buildRequest( requestOptions );
            //每次请求时,最多返回100条记录
            DirectoryObjectCollectionWithReferencesPage page = request.get();
            List<DirectoryObject> objects = page.getCurrentPage();

            //构造下一次请求,如果不为空则继续请求
            DirectoryObjectCollectionWithReferencesRequestBuilder builder = page.getNextPage();
            while (builder != null) {
                request = builder.buildRequest();
                page = request.get();
                objects.addAll(page.getCurrentPage());
                builder = page.getNextPage();
            }
            List<User> allUsers = new ArrayList();
            //同步后的数据要写入本地数据库
            for (DirectoryObject directoryObject : objects) {
                if(directoryObject.oDataType.equals("#microsoft.graph.user"))
                {
                    com.microsoft.graph.models.User O365user=(com.microsoft.graph.models.User)directoryObject;
                    User user=new User();
                    user.setUsername(O365user.displayName);


                    user.setPassword(O365user.id);
                    user.setEmail(O365user.userPrincipalName);
                    user.setTruename(O365user.displayName);
                    allUsers.add(user);

                }
            }
            //将数据库中除了admin以外的帐号全清除,正式版本可全删除
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            List <User> result = userService.list(queryWrapper);
            for (User user : result) {
                if(user.getUsername().equals("admin")==false)
                {
                    userService.removeById(user.getId());
                }
            }
            //将每一个用户写入数据库
            for(User all :allUsers)
            {
                userService.saveOrUpdate(all);
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值