比较两个对象中是否包含相同数据,返回相同的数据
public List<RoleVo> rolesIdreturnTheSame(List<RoleVo> roles, List<Integer> rolesIds) {
if (roles != null && rolesIds != null) {
return roles.stream().map(
map -> rolesIds.stream().filter(
f -> Objects.equals(RolesEnum.getCodeOf(f), map.getGroupCode())
).findFirst().map(
m -> {
return map;
}
).orElse(null)
).filter(Objects::nonNull).collect(toList());
}
return null;
}
2、 校验List数据中是否包含了指定字符
public enum RolesEnum {
GENERAL_USER(0, "meeting_room:GENERAL_USER", "普通用户"),
SUPER_ADMIN(1,"meeting_room:SUPERADMIN","超级管理员"),
MEETING_ROOM_ADMIN(2,"meeting_room:HYS", "会议室管理员"),
BUILDING_ADMIN(3,"meeting_room:HYS", "楼宇管理员"),
MEETING_DOC_ADMIN(4,"meeting_room:HYWJ", "会议文件管理员"),
MEETING_YW_ADMIN(5,"meeting_room:HYS", "会议运维管管理员");
private Integer id;
private String code;
private String desc;
public static String getCodeOf(Integer key) {
return Stream.of(values()).filter(e -> Predicate.isEqual(e.id).test(key)).findAny()
.map(RolesEnum::getCode)
.orElse(GENERAL_USER.code);
}
}
public boolean isAdmin(List<RoleVo> roles, Integer id) {
return roles.stream().anyMatch(r -> r.getGroupCode().equals(RolesEnum.getCodeOf(id)));
}