From dedefa06e62e001b69fa52bb18c759f5fe951c08 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 06 六月 2025 18:32:28 +0800
Subject: [PATCH] 替换百度key

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java |   93 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 72 insertions(+), 21 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
index a55aeb8..44109e2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.exceptions.ServiceException;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
 import com.panzhihua.sangeshenbian.model.entity.*;
@@ -51,6 +52,8 @@
     @Resource
     private IComActService comActService;
 
+
+
     @PostMapping("/data")
     @ApiOperation(value = "分析统计", tags = {"三个身边后台-分析统计"})
     public R<AnalyticStatisticsDataVo> data(@Valid @RequestBody AnalyticStatisticsQuery query){
@@ -58,50 +61,99 @@
         Integer id = loginUserInfoSanGeShenBian.getId();
         List<SystemUserLevel> listBySystemUsers = systemUserLevelService.getListBySystemUserId(id);
         if(listBySystemUsers.size()==0){
+            // 没有权限
             return R.ok(new AnalyticStatisticsDataVo());
         }
-
-        LambdaQueryWrapper<Complaint> wrapper = new LambdaQueryWrapper<Complaint>();
+        LambdaQueryWrapper<Complaint> wrapper = new LambdaQueryWrapper<>();
+        SystemUserLevel systemUserLevel = listBySystemUsers.stream().filter(e -> e.getLevel() == 1).findFirst().orElse(null);
         if(query.getCityCode()!=null){
+            // 判断是否有市级权限
+            if(systemUserLevel==null){
+                throw new ServiceException("没有市级权限");
+            }
             wrapper.eq(Complaint::getCityCode, query.getCityCode());
         }
         if(query.getDistrictCode()!=null){
+            // 判断是否有区县权限
+            List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2 && e.getDistrictsCode().equals(query.getDistrictCode().toString())).collect(Collectors.toList());
+            // 没有市权限 也没有该区权限
+            if(systemUserLevels2.size()==0 && systemUserLevel==null){
+                throw new ServiceException("没有该区县权限");
+            }
             wrapper.eq(Complaint::getDistrictsCode, query.getDistrictCode());
         }
         if(query.getStreetId()!=null){
+            // 获取街道上一级查看是否有上级权限
+            ComStreet comStreet = comStreetService.getById(query.getStreetId());
+            if(comStreet==null){
+                throw new ServiceException("没有该街道权限");
+            }
+            List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2 && e.getDistrictsCode().equals(comStreet.getAreaCode().toString())).collect(Collectors.toList());
+            // 判断是否有街道权限
+            List<SystemUserLevel> systemUserLevels3 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3 && e.getStreetId().equals(query.getStreetId().toString())).collect(Collectors.toList());
+            // 没有市级 上级区县  本级街道权限
+            if(systemUserLevels3.size()==0 && systemUserLevel==null && systemUserLevels2.size()==0){
+                throw new ServiceException("没有该街道权限");
+            }
             wrapper.eq(Complaint::getStreetId, query.getStreetId());
         }
         if(query.getCommunityId()!=null){
+
+            ComAct comAct = comActService.getById(query.getCommunityId());
+            if (comAct == null) {
+                throw new ServiceException("没有该社区权限");
+            }
+            // 查看是否有上级街道权限
+            List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3 && e.getStreetId().equals(comAct.getStreetId().toString())).collect(Collectors.toList());
+
+            // 查看是否有上级区权限
+            List<SystemUserLevel> systemUserLevels3 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2 && e.getDistrictsCode().equals(comAct.getAreaCode())).collect(Collectors.toList());
+
+            // 查看是否有本级权限
+            List<SystemUserLevel> systemUserLevels4 = listBySystemUsers.stream().filter(e -> e.getLevel() == 4 && e.getCommunityId().equals(query.getCommunityId())).collect(Collectors.toList());
+
+            // 判断是否有上面的4个权限
+            if(systemUserLevels4.size()==0 && systemUserLevels3.size()==0 && systemUserLevels2.size()==0 && systemUserLevel==null){
+                throw new ServiceException("没有该社区权限");
+            }
             wrapper.eq(Complaint::getCommunityId, query.getCommunityId());
         }
         // 都为空 查他有的
         if(query.getCityCode()==null && query.getDistrictCode()==null && query.getStreetId()==null && query.getCommunityId()==null){
             // 看是否直接是市级账号
-            SystemUserLevel systemUserLevel = listBySystemUsers.stream().filter(e -> e.getLevel() == 1).findFirst().orElse(null);
             if(systemUserLevel==null){
                 List<String> districtsCodes=new ArrayList<>();
                 List<String> streetIds=new ArrayList<>();
                 List<Long> communityIds=new ArrayList<>();
                 // 不是市级 查看是否是区县账号
                 List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2).collect(Collectors.toList());
-                if(systemUserLevels2.size()>0){
+                if(!systemUserLevels2.isEmpty()){
+                    // 区县账号 找出code
                     districtsCodes = systemUserLevels2.stream().map(SystemUserLevel::getDistrictsCode).collect(Collectors.toList());
                 }else {
-                    districtsCodes.add("0");
+                    districtsCodes.add("-1");
                 }
 
                 List<SystemUserLevel> systemUserLevels3 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3).collect(Collectors.toList());
-                if(systemUserLevels3.size()>0){
-                    streetIds = systemUserLevels3.stream().filter(e -> !systemUserLevels2.contains(e.getDistrictsCode())).map(SystemUserLevel::getStreetId).collect(Collectors.toList());
+                if(!systemUserLevels3.isEmpty()){
+                    // 街道账号 找出id 且不在上面的区县下的街道
+                    List<String> finalDistrictsCodes1 = districtsCodes;
+                    streetIds = systemUserLevels3.stream().filter(e -> !finalDistrictsCodes1.contains(e.getDistrictsCode())).map(SystemUserLevel::getStreetId).collect(Collectors.toList());
+                    if(streetIds.isEmpty()){
+                        streetIds.add("-1");
+                    }
                 }else {
-                    streetIds.add("0");
+                    streetIds.add("-1");
                 }
 
                 List<SystemUserLevel> systemUserLevels4 = listBySystemUsers.stream().filter(e -> e.getLevel() == 4).collect(Collectors.toList());
-                if(systemUserLevels4.size()>0){
-                    communityIds = systemUserLevels4.stream().filter(e -> !systemUserLevels3.contains(e.getStreetId()) && !systemUserLevels2.contains(e.getDistrictsCode())).map(SystemUserLevel::getCommunityId).collect(Collectors.toList());
+                if(!systemUserLevels4.isEmpty()){
+                    // community账号 找出id 且不在上面的街道下的社区
+                    List<String> finalStreetIds1 = streetIds;
+                    List<String> finalDistrictsCodes2 = districtsCodes;
+                    communityIds = systemUserLevels4.stream().filter(e -> !finalStreetIds1.contains(e.getStreetId()) && !finalDistrictsCodes2.contains(e.getDistrictsCode())).map(SystemUserLevel::getCommunityId).collect(Collectors.toList());
                 }else {
-                    communityIds.add(0L);
+                    communityIds.add(-1L);
                 }
                 List<String> finalDistrictsCodes = districtsCodes;
                 List<String> finalStreetIds = streetIds;
@@ -119,14 +171,13 @@
         AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat);
 
         // 第二部分数据
-        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query,complaints,simpleDateFormat);
+        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat);
 
         // 第三部分数据
-        List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query,complaints);
+        List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query.getRank(), complaints);
 
         // 第四部分数据
         AnalyticStatisticsFourVo analyticStatisticsFourVos =complaintService.analyticStatisticsFour(complaints);
-
 
         AnalyticStatisticsDataVo analyticStatisticsDataVo = new AnalyticStatisticsDataVo();
         analyticStatisticsDataVo.setAnalyticStatisticsOneVo(analyticStatisticsOneVo);
@@ -154,12 +205,13 @@
             // 查询所有的县 街道 社区
             List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>().eq(BcRegion::getParentId, 510400));
 
-            List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getAreaCode, 510400));
+            List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getCityCode, 510400));
 
-            List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getState,0).eq(ComAct::getAreaCode, 510400));
+            List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getState,0).eq(ComAct::getCityCode, 510400));
             analyticStatisticsRegionVo.setBcRegions(list);
             analyticStatisticsRegionVo.setComStreets(list1);
             analyticStatisticsRegionVo.setComActs(list2);
+
             return R.ok(analyticStatisticsRegionVo);
         }
 
@@ -168,24 +220,23 @@
         // 拥有的区县code
         List<String> collect = systemUserLevels.stream().map(SystemUserLevel::getDistrictsCode).collect(Collectors.toList());
         if(collect.size()==0){
-            collect.add("0");
+            collect.add("-1");
         }
         // 找出这个区县的
         List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>().eq(BcRegion::getParentId, 510400).in(BcRegion::getRegionCode, collect));
-
         // 区县街道
         List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().in(ComStreet::getAreaCode, collect));
 
         // 区县社区
         List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().in(ComAct::getAreaCode, collect).eq(ComAct::getState,0));
 
-
         // 有街道权限 排除上个查询出来的
         List<SystemUserLevel> systemUserLevels1 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3 && !collect.contains(e.getDistrictsCode())).collect(Collectors.toList());
         List<String> collect1 = systemUserLevels1.stream().map(SystemUserLevel::getStreetId).collect(Collectors.toList());
         if(collect1.size()==0){
-            collect1.add("0");
+            collect1.add("-1");
         }
+
         // 区县街道
         List<ComStreet> list3 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().in(ComStreet::getStreetId, collect1));
 
@@ -199,7 +250,7 @@
         List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 4 && !collect.contains(e.getDistrictsCode()) && !collect1.contains(e.getStreetId())).collect(Collectors.toList());
         List<Long> collect2 = systemUserLevels2.stream().map(SystemUserLevel::getCommunityId).collect(Collectors.toList());
         if(collect2.size()==0){
-            collect2.add(0l);
+            collect2.add(-1l);
         }
 
         // 区县社区

--
Gitblit v1.7.1