Просмотр исходного кода

解决搜索文件相关问题。

wukai 1 год назад
Родитель
Сommit
d7158cbe9c

+ 1 - 1
doc-biz/src/main/java/com/doc/biz/controller/DocDirController.java

@@ -306,7 +306,7 @@ public class DocDirController extends BaseController {
         //如果是部门目录,则需要插入成员
         String dept = "2";
         dirUserService.deleteDocDirUserByDirId(docDir.getDirId());
-        if (dept.equals(docDir.getDirType())) {
+        if (dept.equals(docDir.getDirType()) && docDir.getUsers() != null) {
             docDir.getUsers().forEach(u -> {
                 u.setDirId(docDir.getDirId());
                 dirUserService.insertDocDirUser(u);

+ 2 - 2
doc-biz/src/main/java/com/doc/biz/controller/DocInfoController.java

@@ -252,8 +252,8 @@ public class DocInfoController extends BaseController {
     @ApiOperation("文件搜索")
     //@PreAuthorize("@ss.hasPermi('biz:info:list')")
     @GetMapping("/search")
-    public TableDataInfo search(@ApiParam(value = "搜索关键字", required = true) @RequestParam String keyword) {
-        Map<String, Object> temp = dirService.selectDirByUser(SecurityUtils.getUserId());
+    public TableDataInfo search(@ApiParam(value = "搜索关键字", required = true) @RequestParam String keyword, @ApiParam(value = "空间类型(1.公共 2.部门 3.个人 不传该参数则为全部)") String type) {
+        Map<String, Object> temp = dirService.selectDirByUser(SecurityUtils.getUserId(), type);
         List<DocDir> dirList = (List<DocDir>) temp.get("dir");
         List<DocSpace> spaceList = (List<DocSpace>) temp.get("space");
         Map<Long, DocDir> dirMap = new HashMap<>(16);

+ 2 - 1
doc-biz/src/main/java/com/doc/biz/service/IDocDirService.java

@@ -81,9 +81,10 @@ public interface IDocDirService {
      * 查询当前用户下所有有权限的目录
      *
      * @param userId 用户ID
+     * @param type   空间类型
      * @return 结果集
      */
-    Map<String, Object> selectDirByUser(Long userId);
+    Map<String, Object> selectDirByUser(Long userId, String type);
 
     /**
      * 根据权限控制查询目录列表

+ 4 - 2
doc-biz/src/main/java/com/doc/biz/service/impl/DocDirServiceImpl.java

@@ -178,13 +178,15 @@ public class DocDirServiceImpl implements IDocDirService {
      * @return 结果集
      */
     @Override
-    public Map<String, Object> selectDirByUser(Long userId) {
+    public Map<String, Object> selectDirByUser(Long userId, String type) {
         Map<String, Object> result = new HashMap<>(4);
         List<DocSpace> spaceList = docSpaceService.getSpaceByUser(userId);
         result.put("space", spaceList);
         List<Long> spaceIds = new ArrayList<>();
         spaceList.forEach(space -> {
-            spaceIds.add(space.getSpaceId());
+            if (StringUtils.isEmpty(type) || type.equals(space.getSpaceType())) {
+                spaceIds.add(space.getSpaceId());
+            }
         });
         result.put("dir", docDirMapper.selectDirByUser(spaceIds, userId));
         return result;