Преглед изворни кода

findListByName排除自己和子文件夹

lyhzzz пре 2 година
родитељ
комит
50f4492444

+ 1 - 1
src/main/java/com/fdkankan/ucenter/controller/FolderController.java

@@ -104,7 +104,7 @@ public class FolderController extends BaseController {
             throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
         }
 
-        List<Folder> list = folderService.findByUserIdAndType(user.getId(), param.getType(), param.getName(),param.getFolderId());
+        List<Folder> list = folderService.findByUserIdAndType(user.getId(), param.getType(), param.getName(),param.getFolderIds());
 
         return Result.success(list);
     }

+ 1 - 1
src/main/java/com/fdkankan/ucenter/service/IFolderService.java

@@ -32,5 +32,5 @@ public interface IFolderService extends IService<Folder> {
 
     List<Folder> getAllFolderIds(List<Long> folderIds);
 
-    List<Folder> findByUserIdAndType(Long userId, Integer type, String name,Long folderId);
+    List<Folder> findByUserIdAndType(Long userId, Integer type, String name,String folderIds);
 }

+ 26 - 18
src/main/java/com/fdkankan/ucenter/service/impl/FolderServiceImpl.java

@@ -202,21 +202,9 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
     private List<Folder> getByUserAndType(String folderIds,Long userId, Integer type) {
         LambdaQueryWrapper<Folder> wrapper = new LambdaQueryWrapper<>();
 
-        List<Long> folderIdList = new ArrayList<>();
-        if(StringUtils.isNotBlank(folderIds)){
-            if(folderIds.contains(",")){
-                String[] split = folderIds.split(",");
-                for (String s : split) {
-                    folderIdList.add(Long.valueOf(s));
-                }
-            }else {
-                folderIdList.add(Long.valueOf(folderIds));
-            }
-        }
+        List<Long> folderIdList = getByFolderIds(folderIds);
         if(folderIdList.size() >0){
-            List<Folder> allFolderIds = this.getAllFolderIds(folderIdList);
-            List<Long> ids = allFolderIds.stream().map(Folder::getId).collect(Collectors.toList());
-            wrapper.notIn(Folder::getId,ids);
+            wrapper.notIn(Folder::getId,folderIdList);
         }
 
         wrapper.eq(Folder::getUserId,userId)
@@ -265,11 +253,12 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
     }
 
     @Override
-    public List<Folder> findByUserIdAndType(Long userId, Integer type, String name,Long folderId) {
+    public List<Folder> findByUserIdAndType(Long userId, Integer type, String name,String folderIds) {
         LambdaQueryWrapper<Folder> wrapper = new LambdaQueryWrapper<>();
-        if(folderId != null){
-            wrapper.ne(Folder::getId,folderId);
-            wrapper.ne(Folder::getParentId,folderId);
+
+        List<Long> folderIdList = getByFolderIds(folderIds);
+        if(folderIdList.size() >0){
+            wrapper.notIn(Folder::getId,folderIdList);
         }
         wrapper.eq(Folder::getUserId,userId);
         wrapper.eq(Folder::getType,type);
@@ -278,4 +267,23 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
         }
         return this.list(wrapper);
     }
+
+    private List<Long> getByFolderIds(String folderIds){
+        List<Long> folderIdList = new ArrayList<>();
+        if(StringUtils.isNotBlank(folderIds)){
+            if(folderIds.contains(",")){
+                String[] split = folderIds.split(",");
+                for (String s : split) {
+                    folderIdList.add(Long.valueOf(s));
+                }
+            }else {
+                folderIdList.add(Long.valueOf(folderIds));
+            }
+        }
+        if(folderIdList.size() >0){
+            List<Folder> allFolderIds = this.getAllFolderIds(folderIdList);
+            return allFolderIds.stream().map(Folder::getId).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
 }