From e955e44015d7dd9bce2bf932b28812045c908206 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期四, 13 十月 2022 13:31:17 +0800
Subject: [PATCH] 三说会堂事件流程处理

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
index 5bb6de4..10bf657 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
@@ -79,13 +79,14 @@
 
     @Override
     public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
+        log.info("=================当前登陆的用户信息,用户类型"+loginUserInfoVO.getType()+"社区id"+loginUserInfoVO.getCommunityId());
         Boolean isExpertCheck=false;
         Long expertId=null;
         if (nonNull(comEvent.getUserType())){
             if (comEvent.getUserType().equals(1)){
                 //个人账号权限
                 comEvent.setRequestUserId(loginUserInfoVO.getUserId());
-            }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(11)){
+            }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
                 ComSanshuoExpert expert=new ComSanshuoExpert();
                 //专家账号权限(小程序和后台)
                 if (nonNull(loginUserInfoVO.getPhone())){
@@ -114,9 +115,18 @@
                 comEvent.setCommunityId(loginUserInfoVO.getCommunityId());
             }
         }
+        if (nonNull(loginUserInfoVO.getAccount())){
+            if (loginUserInfoVO.getAccount().equals("admin")){
+                comEvent.setUserType(null);
+            }
+        }
         IPage<ComEvent> list=null;
+        log.info("=====================当前的userType"+comEvent.getUserType());
+        log.info("=====================是否专家账号查看"+isExpertCheck);
         if (isExpertCheck){
-            list = comEventMapper.pageByComEventExpert(comEventMapper.listEventIds(expertId), comEvent, pagination);
+            if (nonNull(comEventMapper.listEventIds(expertId))){
+                list = comEventMapper.pageByComEventExpert(comEventMapper.listEventIds(expertId), comEvent, pagination);
+            }
         }else{
             list = baseMapper.pageByComEvent(comEvent, pagination);
         }
@@ -139,10 +149,32 @@
             if(nonNull(archiveRecord)){
                 comEvent1.setIsArchive(0);
             }
+            comEvent1.setHasPerm(hasPermission(comEvent1,loginUserInfoVO ));
         });
         return R.ok(list);
     }
 
+    /**
+     * 当前账号是否有操作事件权限
+     * */
+    public Integer hasPermission(ComEvent comEvent,LoginUserInfoVO sysUser){
+        String account="";
+        Integer perm=1;
+        if (nonNull(sysUser.getAccount())){
+            account=sysUser.getAccount();
+        }
+        //上报级别是否匹配当前账号级别
+        if (sysUser.getType().equals(12) ){
+            if (!comEvent.getCurrentProcessType().equals(1)){
+                perm=0;
+            }
+        }else if (account.equals("admin")){
+            if (!comEvent.getCurrentProcessType().equals(4)){
+                perm=0;
+            }
+        }
+        return perm;
+    }
     @Override
     public List<ComEvent> listByComEvent(ComEvent comEvent,LoginUserInfoVO loginUserInfoVO) {
         List<ComEvent> list = baseMapper.listByComEvent(comEvent,null);
@@ -263,6 +295,8 @@
                     //上报到社区
                     //查询社区账号,由专家转交到社区
                     comEvent.setCurrentProcessType(2);
+                    comEvent.setSpecialistName("待分配");
+                    comEvent.setSpecialistId(99999L);
                     ComActDO comActDO = comActDAO.selectById(expert.getCommunityId());
                     comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
                     //生成一次流转记录
@@ -275,6 +309,8 @@
                     //上报到行业分中心
                     comEvent.setCurrentProcessType(1);
                     comEvent.setCurrentOrgId(expert.getIndustryCenterId().toString());
+                    comEvent.setSpecialistName("待分配");
+                    comEvent.setSpecialistId(99999L);
                     //生成一次流转记录
                     comEvent.setCurrentEventProcessResult("专家上报到行业分中心");
                     comEventTransferRecord.setFromId(comEvent.getSpecialistId());
@@ -310,8 +346,7 @@
                 comEvent.setCurrentOrgId("99999");
                 //生成一次流转记录
                 comEvent.setCurrentEventProcessResult("街道上报到区三说会堂");
-                comEventTransferRecord.setFromId(comEvent.getSpecialistId());
-                comEventTransferRecord.setToId(99999L);
+                comEventTransferRecord.setFromId(Long.parseLong(comEvent.getCurrentOrgId()));
                 comEventTransferRecord.setReportLevel(1);
                 comEvent.setReportLevel(1);
             }else {

--
Gitblit v1.7.1