mitao
2025-03-18 5d566e491ab9510c57a5f64885d273c2d6948ffe
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;
    }