|
|
@@ -362,6 +362,35 @@ public class UserSpaceServiceImpl implements UserSpaceService {
|
|
|
}, page);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Userspace> searchSpaceFromOthers(final Long userUU, String key, String keyword) {
|
|
|
+ return userspaceDao.findAll(new Specification<Userspace>() {
|
|
|
+ @Override
|
|
|
+ public Predicate toPredicate(Root<Userspace> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
|
|
+ List<Predicate> predicates = new ArrayList<Predicate>();
|
|
|
+
|
|
|
+ if (userUU != null) {
|
|
|
+ Predicate predicate = cb.isNotMember(new User(userUU), root.get("users"));
|
|
|
+ predicates.add(predicate);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(key) && !StringUtils.isEmpty(keyword)) {
|
|
|
+ Predicate predicate = cb.equal(root.get(key), keyword);
|
|
|
+ predicates.add(predicate);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 移除无效条件表达式
|
|
|
+ predicates.removeAll(Collections.singletonList(null));
|
|
|
+
|
|
|
+ Predicate[] array = new Predicate[predicates.size()];
|
|
|
+ predicates.toArray(array);
|
|
|
+ Predicate predicate = cb.and(array);
|
|
|
+ query.where(predicate);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 业务逻辑校验-企业UU对应企业是否存在
|
|
|
*
|