From 2b3004b10225e522c09dbde9aa1e51c64e69bf07 Mon Sep 17 00:00:00 2001 From: wxz Date: Tue, 11 Apr 2023 19:09:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=81=B5=E5=B1=B1=E8=A1=97=E9=81=93?= =?UTF-8?q?=E3=80=91=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=96=87=E7=AB=A0=E6=A0=8F?= =?UTF-8?q?=E7=9B=AEcurd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-voice/gov-voice-server/pom.xml | 4 +- .../controller/CategoryDictController.java | 85 +++++++++++++++++++ .../epmet/service/CategoryDictService.java | 4 +- .../service/impl/CategoryDictServiceImpl.java | 27 +++++- 4 files changed, 116 insertions(+), 4 deletions(-) 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 +}