From 5d566e491ab9510c57a5f64885d273c2d6948ffe Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 18 三月 2025 10:08:45 +0800
Subject: [PATCH] Merge remote-tracking branch '喜望/dev-2.0' into dev-2.0

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |   79 ++++++++++++++++++++++++++++++++-------
 1 files changed, 64 insertions(+), 15 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
index 5482fe4..f22c644 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -249,6 +249,8 @@
     public void buttonPermission(ComplaintVO vo, Optional<SystemUser> systemUserByPhone){
         vo.setListControlsButtonStatus(1);
         vo.setEvaluateButtonStatus(1);
+        vo.setAuditButtonStatus(1);
+        
         ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
                 .ne(ComplaintAuditRecord::getAuditType, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1"));
         //没有审核数据,且正在办理,则按钮权限是添加人员的
@@ -284,6 +286,48 @@
                         }
                     }
                 }else{
+                    //审核状态为待审核,需要授权审核按钮
+                    if((one.getAuditStatus() == 5 || one.getAuditStatus() == 7) && systemUserByPhone.isPresent()){
+                        SystemUser systemUser = systemUserByPhone.get();
+                        String targetId = "";
+                        Integer accountLevel = 5;
+                        //获取当前身份,1=党员,2=管理员
+                        Integer identity = (Integer) redisUtils.get("identity:" + systemUser.getPhone());
+                        if(2 == identity){
+                            accountLevel = systemUser.getAccountLevel();
+                            switch (accountLevel) {
+                                case 1:
+                                    //市级
+                                    targetId = "510400";
+                                    break;
+                                case 2:
+                                    //区县级
+                                    targetId = systemUser.getDistrictsCode();
+                                    break;
+                                case 3:
+                                    //街道
+                                    targetId = systemUser.getStreetId().toString();
+                                    break;
+                                case 4:
+                                    //社区
+                                    targetId = systemUser.getCommunityId().toString();
+                                    break;
+                                case 5:
+                                    //党员
+                                    PartyMember partyMember = partyMemberService.getPartyMemberByPhone(systemUser.getPhone());
+                                    targetId = partyMember.getId().toString();
+                                    break;
+                            }
+    
+                            ComplaintAuditRecord one2 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
+                                    .eq(ComplaintAuditRecord::getLatestFlag, 1));
+                            Integer isAdmin = systemUserByPhone.get().getIsAdmin();
+                            if(one2.getReportType().equals(accountLevel) && one2.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){
+                                vo.setAuditButtonStatus(0);
+                            }
+                        }
+                    }
+                    
                     //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人
                     ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
                             .eq(ComplaintAuditRecord::getAuditType, 2).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1"));
@@ -455,21 +499,26 @@
                 detail.setAuditButtonStatus(0);
             }
         }
-        //已办结,显示评价按钮
-        int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, detail.getId()).eq(ComplaintComment::getDelFlag, 0));
-        if(detail.getStatus() == 3 && 0 == count){
-            if(systemUserByPhone.isPresent()){
-                SystemUser systemUser = systemUserByPhone.get();
-                Integer isAdmin = systemUser.getIsAdmin();
-                if(accountLevel.compareTo(detail.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){
-                    detail.setEvaluateButtonStatus(0);
-                }
-            }else{
-                if(detail.getReportType() == 5){
-                    detail.setEvaluateButtonStatus(0);
-                }
-            }
-        }
+    
+    
+        buttonPermission(detail, systemUserByPhone);
+        
+        
+//        //已办结,显示评价按钮
+//        int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, detail.getId()).eq(ComplaintComment::getDelFlag, 0));
+//        if(detail.getStatus() == 3 && 0 == count){
+//            if(systemUserByPhone.isPresent()){
+//                SystemUser systemUser = systemUserByPhone.get();
+//                Integer isAdmin = systemUser.getIsAdmin();
+//                if(accountLevel.compareTo(detail.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){
+//                    detail.setEvaluateButtonStatus(0);
+//                }
+//            }else{
+//                if(detail.getReportType() == 5){
+//                    detail.setEvaluateButtonStatus(0);
+//                }
+//            }
+//        }
         return detail;
     }
 

--
Gitblit v1.7.1