一个用户列表,一个会议-用户关系表。
将用户表中,所有已经参会的人员剔除,返回没有参会人员的列表。
使用lambda表达式,相对代码非常精简,且容易理解,还能提升效率。
值得尝试。
public List<User> notInMeetingUserList(Integer meetingId, Integer companyId) throws ErrorException {
List<YdReMeetingUser> ydReMeetingUserList = ydReMeetingUserMapper.selectByMeetingId(meetingId); // 会议-用户关系列表
List<User> userList = userMapper.selectByCompanyId(companyId); // 企业内部所有用户列表
if (ydReMeetingUserList == null) {
return userList;
}
if (userList == null) {
throw new ErrorException(ErrorException.CHECK_ERROR, "您好,没有找到该组织的成员信息!");
}
userList.removeIf(a -> {
return ydReMeetingUserList.stream().anyMatch(b -> {
if (b.getUserId() != null && b.getUserId().equals(a.getId())) {
return true;
} else {
return false;
}
});
});
return userList;
}
List<YdReMeetingUser> ydReMeetingUserList = ydReMeetingUserMapper.selectByMeetingId(meetingId); // 会议-用户关系列表
List<User> userList = userMapper.selectByCompanyId(companyId); // 企业内部所有用户列表
if (ydReMeetingUserList == null) {
return userList;
}
if (userList == null) {
throw new ErrorException(ErrorException.CHECK_ERROR, "您好,没有找到该组织的成员信息!");
}
userList.removeIf(a -> {
return ydReMeetingUserList.stream().anyMatch(b -> {
if (b.getUserId() != null && b.getUserId().equals(a.getId())) {
return true;
} else {
return false;
}
});
});
return userList;
}
Hello to all
In this difficult continuously, I disposition you all
Appreciate your family and friends
Thank you. The same to you.