From 8652e69d17ab0c1a5884c662a9f3f950ddf57948 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 15 七月 2025 16:16:11 +0800
Subject: [PATCH] 优化 和修改bug

---
 springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java
index cc2991e..4020d90 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java
@@ -100,18 +100,20 @@
             }
             wrapper.eq(Complaint::getSuperiorId, query.getDistrictCode());
         }
-        if(query.getStreetId()!=null){
+        if(query.getStreetId()!=null && query.getCommunityId()==null){
             // 获取街道上一级查看是否有上级权限
             ComStreet comStreet = comStreetService.getById(query.getStreetId());
             if(comStreet==null){
                 throw new ServiceException("没有该街道权限");
             }
             // 没有市级 上级区县  本级街道权限
-            if(accountLevel==2 || (accountLevel==3 && systemUser.getDistrictsCode().equals(query.getDistrictCode().toString()))){
-                wrapper.eq(Complaint::getSuperiorId, query.getStreetId());
+            if(accountLevel==2 || (accountLevel==3 && systemUser.getStreetId().equals(query.getStreetId().toString()))){
+                List<Long> collect = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, comStreet.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
+                wrapper.eq(Complaint::getSuperiorId, query.getStreetId()).or().eq(Complaint::getLastSuperiorId,query.getStreetId()).or(w->w.in(Complaint::getSuperiorId,collect).eq(Complaint::getNowLevel,4)).or(w->w.in(Complaint::getLastSuperiorId,collect).eq(Complaint::getLastLevel,4));
             }else {
                 throw new ServiceException("没有该街道权限");
             }
+
         }
 
         if(query.getCommunityId()!=null){
@@ -122,7 +124,7 @@
             }
 
             // 判断是否有上面的4个权限
-            if(accountLevel==2 ||  (accountLevel==3 && systemUser.getDistrictsCode().equals(comAct.getStreetId().toString()) || accountLevel==4 && systemUser.getCommunityId().equals(comAct.getCommunityId()))){
+            if(accountLevel==2 ||  (accountLevel==3 && systemUser.getStreetId().equals(comAct.getStreetId().toString()) || accountLevel==4 && systemUser.getCommunityId().equals(comAct.getCommunityId()))){
                 wrapper.eq(Complaint::getSuperiorId, query.getCommunityId());
             }else {
                 throw new ServiceException("没有该社区权限");
@@ -133,15 +135,15 @@
         if(query.getCityCode()==null && query.getDistrictCode()==null && query.getStreetId()==null && query.getCommunityId()==null){
             if(systemUser.getSystemRoleId()==1 || systemUser.getSystemRoleId()==2){
                 if(systemUser.getSystemRoleId()==1){
-                    wrapper.ne(Complaint::getProblemType,"纪委").or(w->w.isNull(Complaint::getProblemType));
+                    wrapper.and(w->w.ne(Complaint::getProblemType,"检举控告").or().isNull(Complaint::getProblemType));
                 }
                 if(accountLevel==3){
                     String streetId = systemUser.getStreetId();
                     List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
-                    wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()).or(wrapper1 ->wrapper1.in(Complaint::getSuperiorId,ids).eq(Complaint::getNowLevel,4));
+                    wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()).eq(Complaint::getSuperiorId,streetId).or(wrapper1 ->wrapper1.in(Complaint::getSuperiorId,ids).eq(Complaint::getNowLevel,4));
                 }
                 if(accountLevel==4){
-                    wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel());
+                    wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()).eq(Complaint::getSuperiorId,systemUser.getCommunityId());
                 }
             }else {
                 wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel())

--
Gitblit v1.7.1