lyhzzz 9 meses atrás
pai
commit
bd21059bfb

+ 20 - 7
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -417,15 +417,28 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
             sceneAuthVo.setIsAuthor(true);
         }
         if(!sceneAuthVo.getViewAuth()){
-            List<JyUserShare> shareList = jyUserShareService.getByJyUserId(jyUser.getId());
-            List<Integer> jyUserIds = shareList.stream().map(JyUserShare::getMainJyUserId).collect(Collectors.toList());
-            HashMap<Integer, JyUser> userHashMap = jyUserService.getByIds(jyUserIds);
-            for (Integer jyUserId : userHashMap.keySet()) {
-                JyUser jyUser1 = userHashMap.get(jyUserId);
-                if(jyUser1.getUserId().equals(sceneUserId)){
-                    sceneAuthVo.setViewAuth(true);
+
+            List<JyUserShare> jyUserShares = jyUserShareService.getByJyUserId(jyUser.getId());
+            List<Integer> mainUserIds = jyUserShares.stream().map(JyUserShare::getMainJyUserId).collect(Collectors.toList());
+            HashMap<Integer,Long> roleMap = new HashMap<>();
+            if(!mainUserIds.isEmpty()){
+                List<JyUser> jyUsers = jyUserService.listByIds(mainUserIds);
+                Set<Long> sysIds = jyUsers.stream().map(JyUser::getSysUserId).collect(Collectors.toSet());
+                HashMap<Long, SysUser> byIds = sysUserService.getByIds(sysIds);
+                jyUsers.forEach( e-> roleMap.put(e.getId(),byIds.get(e.getSysUserId()).getRoleId()));
+
+                for (JyUser user : jyUsers) {
+                    Long roleId = roleMap.get(user.getId());
+                    if(user.getPlatformId() != null && (roleId == 45L || roleId == 48L)){
+                        sceneAuthVo.setViewAuth(true);
+                    }else if(user.getUserId().equals(sceneUserId)){
+                        sceneAuthVo.setViewAuth(true);
+                    }
                 }
             }
+
+
+
         }
         return sceneAuthVo;
     }