From 209a6eea44ff0cf6bb035af83c5ca55ab229dda9 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Sun, 7 Apr 2024 16:23:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E9=A1=B9=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zzsfw/controller/NdKqZzsfwMenuController.java | 25 +++++++ .../kqapi/zzsfw/manage/MatterManage.java | 81 +++++++++++++++++++++- 2 files changed, 105 insertions(+), 1 deletion(-) diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/controller/NdKqZzsfwMenuController.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/controller/NdKqZzsfwMenuController.java index fe03b1b..60916aa 100644 --- a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/controller/NdKqZzsfwMenuController.java +++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/controller/NdKqZzsfwMenuController.java @@ -5,6 +5,7 @@ import com.ningdatech.kqapi.common.exception.BizException; import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMattersDeduplicateDTO; import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMenuDTO; import com.ningdatech.kqapi.zzsfw.entity.vo.MatterTopVO; +import com.ningdatech.kqapi.zzsfw.entity.vo.MattersVO; import com.ningdatech.kqapi.zzsfw.entity.vo.TreeVO; import com.ningdatech.kqapi.zzsfw.manage.MatterManage; import lombok.RequiredArgsConstructor; @@ -38,6 +39,30 @@ public class NdKqZzsfwMenuController { return matterManage.getMatters(); } + @GetMapping("/zones") + public List getZones() { + return matterManage.getZones(); + } + + @GetMapping("/windows") + public List getWindows(@RequestParam(required = false) String zoneName) { + return matterManage.getWindows(zoneName); + } + + @GetMapping("/departments") + public List getDepartments(@RequestParam(required = false) String windowName, + @RequestParam(required = false) String zoneName) { + return matterManage.getDepartments(zoneName,windowName); + } + + @GetMapping("/matter-list") + public List matterList(@RequestParam(required = false) String windowName, + @RequestParam(required = false) String zoneName, + @RequestParam(required = false) String department, + @RequestParam(required = false) Integer type) { + return matterManage.matterList(zoneName,windowName,department,type); + } + @GetMapping("/top10") public List topTen() { return matterManage.topTen(); diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java index d67bc5f..f9e9b51 100644 --- a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java +++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java @@ -13,6 +13,7 @@ import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMenuDTO; import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate; import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMenu; import com.ningdatech.kqapi.zzsfw.entity.vo.MatterTopVO; +import com.ningdatech.kqapi.zzsfw.entity.vo.MattersVO; import com.ningdatech.kqapi.zzsfw.entity.vo.TreeVO; import com.ningdatech.kqapi.zzsfw.enumeration.ItemTypeEnum; import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMatterDeduplicateService; @@ -75,7 +76,7 @@ public class MatterManage { (!m.getType().equals(ItemTypeEnum.GOV.getCode()) || Objects.nonNull(m.getWebapplyurl()))) .collect(Collectors.toList()); Set zoneSet = new HashSet<>(); - List res = matters.stream().filter(m -> zoneSet.add(m.getZoneName())).map(m -> { + List res = finalMatters.stream().filter(m -> zoneSet.add(m.getZoneName())).map(m -> { TreeVO zone = new TreeVO(); zone.setName(m.getZoneName()); zone.setChilren(generateWindows(m, finalMatters)); @@ -85,6 +86,84 @@ public class MatterManage { return res; } + /** + * 查询社区 + * @return + */ + public List getZones() { + List matters = menuService.list(Wrappers.lambdaQuery(NdKqZzsfwMenu.class) + .orderByAsc(NdKqZzsfwMenu::getSort)); + if(CollUtil.isEmpty(matters)){ + return Collections.emptyList(); + } + + //如果是政府类型的 就隐藏 没有链接的 + List finalMatters = matters.stream().filter(m -> Objects.nonNull(m.getType()) && + (!m.getType().equals(ItemTypeEnum.GOV.getCode()) || Objects.nonNull(m.getWebapplyurl()))) + .collect(Collectors.toList()); + Set zoneSet = new HashSet<>(); + List res = finalMatters.stream().filter(m -> zoneSet.add(m.getZoneName())).map(m -> { + TreeVO zone = new TreeVO(); + zone.setName(m.getZoneName()); + zone.setType(ZzsfwMenuConstant.MENU_TYPE_ZONE); + return zone; + }).collect(Collectors.toList()); + return res; + } + + public List getWindows(String zoneName) { + List matters = menuService.list(Wrappers.lambdaQuery(NdKqZzsfwMenu.class) + .eq(StringUtils.isNotBlank(zoneName),NdKqZzsfwMenu::getZoneName,zoneName) + .orderByAsc(NdKqZzsfwMenu::getSort)); + if(CollUtil.isEmpty(matters)){ + return Collections.emptyList(); + } + + Set windowSet = new HashSet<>(); + return matters.stream().filter(m -> windowSet.add(m.getWindow())) + .map(m -> { + TreeVO window = new TreeVO(); + window.setName(m.getWindow()); + window.setType(ZzsfwMenuConstant.MENU_TYPE_WINDOW); + return window; + }).collect(Collectors.toList()); + } + + public List getDepartments(String zoneName,String windowName) { + List matters = menuService.list(Wrappers.lambdaQuery(NdKqZzsfwMenu.class) + .eq(StringUtils.isNotBlank(windowName),NdKqZzsfwMenu::getWindow,windowName) + .eq(StringUtils.isNotBlank(zoneName),NdKqZzsfwMenu::getZoneName,zoneName) + .orderByAsc(NdKqZzsfwMenu::getSort)); + if(CollUtil.isEmpty(matters)){ + return Collections.emptyList(); + } + + Set departMentSet = new HashSet<>(); + return matters.stream().filter(m -> departMentSet.add(m.getDepartment())) + .map(m -> { + TreeVO department = new TreeVO(); + department.setName(m.getDepartment()); + department.setType(ZzsfwMenuConstant.MENU_TYPE_DEPARTMENT); + return department; + }).collect(Collectors.toList()); + } + + public List matterList(String zoneName, String windowName, String department, Integer type) { + List matters = menuService.list(Wrappers.lambdaQuery(NdKqZzsfwMenu.class) + .eq(StringUtils.isNotBlank(windowName),NdKqZzsfwMenu::getWindow,windowName) + .eq(StringUtils.isNotBlank(zoneName),NdKqZzsfwMenu::getZoneName,zoneName) + .eq(StringUtils.isNotBlank(department),NdKqZzsfwMenu::getDepartment,department) + .eq(Objects.nonNull(type),NdKqZzsfwMenu::getType,type) + .orderByAsc(NdKqZzsfwMenu::getSort)); + if(CollUtil.isEmpty(matters)){ + return Collections.emptyList(); + } + + return matters.stream() + .map(m -> BeanUtil.copyProperties(m,MattersVO.class)) + .collect(Collectors.toList()); + } + private List generateWindows(NdKqZzsfwMenu menu, List matters) { Set windowSet = new HashSet<>(); return matters.stream().filter(m -> StringUtils.isNotBlank(m.getZoneName()) && m.getZoneName().equals(menu.getZoneName())