可以用(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);
}