diff --git a/epmet-module/gov-voice/gov-voice-server/pom.xml b/epmet-module/gov-voice/gov-voice-server/pom.xml
index d52b79a73e..561b92a4d6 100644
--- a/epmet-module/gov-voice/gov-voice-server/pom.xml
+++ b/epmet-module/gov-voice/gov-voice-server/pom.xml
@@ -164,8 +164,8 @@
- epmet
- EpmEt_lsjd@@
+ root
+ root
0
192.168.1.140
diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/CategoryDictController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/CategoryDictController.java
index 40d67f975f..4bb60ce451 100644
--- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/CategoryDictController.java
+++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/CategoryDictController.java
@@ -10,10 +10,20 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.CategoryDictDTO;
import com.epmet.service.CategoryDictService;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
@@ -31,12 +41,87 @@ public class CategoryDictController {
@Autowired
private CategoryDictService categoryDictService;
+ @Data
+ @NoArgsConstructor
+ public static class TreeNode {
+
+ private String pid;
+ private String id;
+ private String categoryName;
+
+ private List children = new ArrayList<>();
+
+ public TreeNode(String pid, String id, String categoryName) {
+ this.pid = pid;
+ this.id = id;
+ this.categoryName = categoryName;
+ }
+ }
+
+ @GetMapping("tree")
+ public Result> tree() {
+ List treeNodes = buildTree(categoryDictService.list(1, 100));
+ return new Result().ok(treeNodes);
+ }
+
+ /**
+ * 树形结构输出
+ */
@RequestMapping("list")
public Result> list(@RequestParam Integer pageNo, @RequestParam Integer pageSize){
List list = categoryDictService.list(pageNo, pageSize);
return new Result>().ok(list);
}
+ /**
+ * @description: 根据父级栏目id查询子栏目列表
+ * @param parentCategoryId: 父级栏目id
+ * @return
+ * @author: WangXianZhang
+ * @date: 2023/4/25 3:33 PM
+ */
+ @GetMapping("subCategories")
+ public Result> listSubCategories(@RequestParam("parentCategoryId") String parentCategoryId) {
+ List list = categoryDictService.listSubCategories(parentCategoryId);
+ return new Result>().ok(list);
+ }
+
+ /**
+ * @description: 构建树状结构
+ * @param list:
+ * @return
+ * @author: WangXianZhang
+ * @date: 2023/4/25 3:38 PM
+ */
+ private List buildTree(List list) {
+
+ //总共2级,直接构建就行了。
+ List pNodes = new ArrayList<>();
+ List sNodes = new ArrayList<>();
+
+ // 过滤出一级和二级节点
+ for (CategoryDictDTO ele : list) {
+ if (StringUtils.isBlank(ele.getPid()) || "0".equals(ele.getPid())) {
+ // 是一级节点
+ pNodes.add(new TreeNode(ele.getPid(), ele.getId(), ele.getCategoryName()));
+ } else {
+ // 二级节点
+ sNodes.add(new TreeNode(ele.getPid(), ele.getId(), ele.getCategoryName()));
+ }
+ }
+
+ // 追加二级节点
+ for (TreeNode sNode : sNodes) {
+ for (TreeNode pNode : pNodes) {
+ if (pNode.getId().equals(sNode.getPid())) {
+ pNode.getChildren().add(sNode);
+ }
+ }
+ }
+
+ return pNodes;
+ }
+
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result get(@PathVariable("id") String id){
CategoryDictDTO data = categoryDictService.get(id);
diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/CategoryDictService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/CategoryDictService.java
index b070fd1c34..a2932c37b2 100644
--- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/CategoryDictService.java
+++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/CategoryDictService.java
@@ -85,4 +85,6 @@ public interface CategoryDictService extends BaseService {
* @date: 2023/4/11 7:06 PM
*/
List list(Integer pageNo, Integer pageSize);
-}
\ No newline at end of file
+
+ List listSubCategories(String parentCategoryId);
+}
diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/CategoryDictServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/CategoryDictServiceImpl.java
index e48f6fd893..8708e64250 100644
--- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/CategoryDictServiceImpl.java
+++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/CategoryDictServiceImpl.java
@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 文章栏目表
@@ -139,11 +140,35 @@ public class CategoryDictServiceImpl extends BaseServiceImpl idList = Arrays.asList(ids);
+
+ List idList2Del = idList.stream().map(id -> {
+ CategoryDictEntity dict = baseDao.selectById(id);
+ if (dict == null || StringUtils.isBlank(dict.getPid().trim()) || "0".equals(dict.getPid())) {
+ // 一级分类的情况下,不执行删除。一级分类的id已经被固定到了菜单中,要删除了,就对应不起来了
+ return false;
+ }
+ return true;
+ }).collect(Collectors.toList());
+
+ baseDao.deleteBatchIds(idList2Del);
}
@Override
public List list(Integer pageNo, Integer pageSize) {
List list = baseDao.selectList(null);
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(CategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId());
+ List list = baseDao.selectList(query);
+ return ConvertUtils.sourceToTarget(list, CategoryDictDTO.class);
+ }
+
+ @Override
+ public List listSubCategories(String parentCategoryId) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(CategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId());
+ query.eq(CategoryDictEntity::getPid, parentCategoryId);
+ List list = baseDao.selectList(query);
return ConvertUtils.sourceToTarget(list, CategoryDictDTO.class);
}
-}
\ No newline at end of file
+}