Browse Source

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 year ago
parent
commit
5c88a55694

+ 39 - 1
service-website/service-website-biz/src/main/java/com/usky/website/service/impl/SiteArticleServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -53,7 +54,26 @@ public class SiteArticleServiceImpl extends AbstractCrudService<SiteArticleMappe
                     categoryidList.add(list.get(i).getId());
                 }
             } else {
-                categoryidList.add(categoryid);
+                LambdaQueryWrapper<SiteCategory> queryWrapper = Wrappers.lambdaQuery();
+                queryWrapper.eq(SiteCategory::getStatus,1);
+                List<SiteCategory> siteCategoryList = siteCategoryMapper.selectList(queryWrapper);
+
+                List<Integer> childIds = new ArrayList<>();
+                List<Integer> finalCategoryidList = siteCategoryList.stream().filter(site -> site.getPid().equals(categoryid))
+                        .map(vo -> {
+                            List<Integer> ids = getChildrenData(vo,siteCategoryList);
+                            if(ids.size() > 0){
+                                ids.stream().forEach(s -> childIds.add(s));
+                            }
+                            return vo.getId();
+                        }).collect(Collectors.toList());
+                finalCategoryidList.add(categoryid);
+                if(childIds.size() > 0){
+                    childIds.stream().forEach(e -> finalCategoryidList.add(e));
+                }
+                for (int i = 0; i < finalCategoryidList.size(); i++) {
+                    categoryidList.add(finalCategoryidList.get(i));
+                }
             }
         }
 
@@ -116,4 +136,22 @@ public class SiteArticleServiceImpl extends AbstractCrudService<SiteArticleMappe
         this.update(updateWrapper);
 
     }
+
+    public List<Integer> getChildrenData(SiteCategory root,List<SiteCategory> all){
+        List<Integer> childIds = new ArrayList<>();
+        List<Integer> ids = all.stream().filter(list -> list.getPid().equals(root.getId()))
+                .map(list -> {
+                    List<Integer> childs = getChildrenData(list,all);
+                    if(childs.size() > 0){
+                        childs.stream().forEach(s ->childIds.add(s));
+                    }
+                    return list.getId();
+                })
+                .collect(Collectors.toList());
+        if(childIds.size() > 0){
+            childIds.stream().forEach(e -> ids.add(e));
+        }
+
+        return ids;
+    }
 }

+ 8 - 0
service-website/service-website-biz/src/main/java/com/usky/website/service/impl/SiteCategoryServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.website.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.exception.BusinessException;
@@ -102,6 +103,13 @@ public class SiteCategoryServiceImpl extends AbstractCrudService<SiteCategoryMap
         if (list.size() > 0) {
             throw new BusinessException("该栏目存在栏目内容不可删除");
         }
+        LambdaQueryWrapper<SiteCategory> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.eq(SiteCategory::getPid,id)
+                .eq(SiteCategory::getStatus,1);
+        List<SiteCategory> list1 = this.list(queryWrapper1);
+        if(list1.size() > 0){
+            throw new BusinessException("该栏目存在子栏目不可删除");
+        }
         this.removeById(id);
     }