From afb8ff7280890dd0b0662a2bb9d07230c6026ab7 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 17 三月 2025 22:24:44 +0800
Subject: [PATCH] 修改诉求列表按钮权限

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 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 4338215..1d92b49 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"));

--
Gitblit v1.7.1