Browse Source

后台管理添加根据uu号,企业名称,企业营业执照号搜索企业的接口

wangmh 7 years ago
parent
commit
3dce763014

+ 11 - 0
sso-manage-console/src/main/java/com/uas/sso/sso/backend/api/UserSpaceManageController.java

@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * Api interface implementations for managing user space.
  *
@@ -100,4 +102,13 @@ public class UserSpaceManageController {
 
         return new ResultBean<>(spaceService.showUserSpaceByPagination(page, userUU));
     }
+
+
+    @RequestMapping(method = RequestMethod.GET, path = "//searchUserFromOthers",
+            produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public ResultBean<List<Userspace>> searchUserFromOthers(@RequestParam("userUU") Long userUU,
+                                                            String key, String keyword) {
+
+        return new ResultBean<>(spaceService.searchSpaceFromOthers(userUU, key, keyword));
+    }
 }

+ 11 - 0
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/UserSpaceService.java

@@ -8,6 +8,8 @@ import javax.validation.constraints.NotNull;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 
+import java.util.List;
+
 /**
  * Abstract class for operations of user space when admin operates.
  *
@@ -52,4 +54,13 @@ public interface UserSpaceService {
      * @return
      */
     Page<Userspace> showUserSpaceByPagination(Pageable page, Long userUU);
+
+    /**
+     * 根据关键字获取用户所在企业外的企业
+     * @param userUU
+     * @param key
+     * @param keyword
+     * @return
+     */
+    List<Userspace> searchSpaceFromOthers(Long userUU, String key, String keyword);
 }

+ 29 - 0
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/UserSpaceServiceImpl.java

@@ -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对应企业是否存在
      *