|
@@ -2,15 +2,23 @@
|
|
|
package com.redxun.knowledge.service;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.redxun.common.base.db.BaseDao;
|
|
|
import com.redxun.common.base.db.BaseService;
|
|
|
+import com.redxun.common.base.db.PageHelper;
|
|
|
+import com.redxun.common.base.search.QueryFilter;
|
|
|
import com.redxun.common.service.impl.SuperServiceImpl;
|
|
|
import com.redxun.knowledge.entity.dao.KnowledgeCategory;
|
|
|
+import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
|
|
|
import com.redxun.knowledge.mapper.KnowledgeCategoryMapper;
|
|
|
+import org.springframework.cache.annotation.CacheEvict;
|
|
|
+import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* [业务--知识分类表]业务服务类
|
|
@@ -48,7 +56,31 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
|
|
|
return knowledgeCategory;
|
|
|
}
|
|
|
|
|
|
- // 查询孩子节点
|
|
|
+ /**
|
|
|
+ * 知识分类列表(可带条件,条件为知识分类名称)
|
|
|
+ * @param filter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ // @Cacheable(value = "knowledgeCategory",keyGenerator = "keyGenerator")
|
|
|
+ public IPage findAllKnowledgeCategory(QueryFilter filter) {
|
|
|
+ Map<String, Object> params = PageHelper.constructParams(filter);
|
|
|
+ IPage page = knowledgeCategoryMapper.findAllKnowledgeCategory(filter.getPage(), filter.getParams(), params);
|
|
|
+ List<KnowledgeCategory> knowledgeCategoryList = page.getRecords();
|
|
|
+ // 查询顶级记录的所有子集合(顶级记录id为0)
|
|
|
+ List<KnowledgeCategory> collect = knowledgeCategoryList.
|
|
|
+ stream().
|
|
|
+ filter(knowledgeCategory -> "0".equals(knowledgeCategory.getParent())).
|
|
|
+ collect(Collectors.toList());
|
|
|
+ collect.forEach(e -> {
|
|
|
+ List<KnowledgeCategory> childrens = findChildrens(e);
|
|
|
+ e.setChildren(childrens);
|
|
|
+ });
|
|
|
+ // 把数据放回到分页中,结果返回
|
|
|
+ page.setRecords(collect);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询孩子节点(非递归)
|
|
|
private List<KnowledgeCategory> findAllChildren(KnowledgeCategory knowledgeCategory) {
|
|
|
QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("PARENT", knowledgeCategory.getPkId());
|
|
@@ -56,6 +88,19 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
|
|
|
return knowledgeCategories;
|
|
|
}
|
|
|
|
|
|
+ // 查询孩子节点(递归)
|
|
|
+ private List<KnowledgeCategory> findChildrens(KnowledgeCategory knowledgeCategory){
|
|
|
+ QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("PARENT", knowledgeCategory.getPkId());
|
|
|
+ List<KnowledgeCategory> knowledgeCategories = knowledgeCategoryMapper.selectList(queryWrapper);
|
|
|
+ knowledgeCategory.setChildren(knowledgeCategories);
|
|
|
+ knowledgeCategories.forEach(e -> {
|
|
|
+ List<KnowledgeCategory> allChildren = findChildrens(e);
|
|
|
+ e.setChildren(allChildren);
|
|
|
+ });
|
|
|
+ return knowledgeCategories;
|
|
|
+ }
|
|
|
+
|
|
|
// 判断是否有孩子节点
|
|
|
private Boolean findHasChirld(KnowledgeCategory knowledgeCategory) {
|
|
|
QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
|
|
@@ -67,4 +112,6 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|