4
0
Эх сурвалжийг харах

作者:张哲
时间:2023/08/25
类型:优化
描述:下载权限判断

zizg 1 жил өмнө
parent
commit
650386fcef

+ 14 - 10
src/main/java/com/redxun/knowledge/album/service/AlbumCategoryServiceImpl.java

@@ -291,11 +291,13 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
             //List<AlbumCategory> albumCategoryList = albumCategoryMapper.selectList(queryWrapper);
             List<AlbumCategory> albumCategoryList = albumCategoryMapper.visibleAlbumCategory(parent,userId);
             List<AlbumCategory> collect = albumCategoryList.stream().filter(e -> e.getSort() < sort).collect(Collectors.toList());
-            AlbumCategory albumCategoryPre = collect.get(collect.size() - 1);
-            // 交换位置
-            int temp = sort;
-            albumCategoryMapper.swapSort(pkId, albumCategoryPre.getSort());
-            albumCategoryMapper.swapSort(albumCategoryPre.getPkId(), temp);
+            if (CollectionUtils.isNotEmpty(collect)) {
+                AlbumCategory albumCategoryPre = collect.get(collect.size() - 1);
+                // 交换位置
+                int temp = sort;
+                albumCategoryMapper.swapSort(pkId, albumCategoryPre.getSort());
+                albumCategoryMapper.swapSort(albumCategoryPre.getPkId(), temp);
+            }
         } else {
             // 下降
             //QueryWrapper<AlbumCategory> queryWrapper = new QueryWrapper<>();
@@ -304,11 +306,13 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
             //List<AlbumCategory> albumCategoryList = albumCategoryMapper.selectList(queryWrapper);
             List<AlbumCategory> albumCategoryList = albumCategoryMapper.visibleAlbumCategory(parent,userId);
             List<AlbumCategory> collect = albumCategoryList.stream().filter(e -> e.getSort() > sort).collect(Collectors.toList());
-            AlbumCategory albumCategoryNext = collect.get(0);
-            // 交换位置
-            int temp = sort;
-            albumCategoryMapper.swapSort(pkId, albumCategoryNext.getSort());
-            albumCategoryMapper.swapSort(albumCategoryNext.getPkId(), temp);
+            if (CollectionUtils.isNotEmpty(collect)) {
+                AlbumCategory albumCategoryNext = collect.get(0);
+                // 交换位置
+                int temp = sort;
+                albumCategoryMapper.swapSort(pkId, albumCategoryNext.getSort());
+                albumCategoryMapper.swapSort(albumCategoryNext.getPkId(), temp);
+            }
         }
     }
 

+ 35 - 19
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -271,6 +271,8 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
                     List<String> fullNameList = knowledgeMapper.selectFullNameByDeptIds(knowledge.getDownloadDeptId().split(","));
                     knowledgeVo.setDownloadDeptName(fullNameList.stream().collect(Collectors.joining(",")));
                 }
+            } else {
+                knowledgeVo.setIsAllowDownload(0);
             }
             if (knowledge.getIsDraft() == 0){
                 return knowledgeVo;
@@ -1017,36 +1019,50 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
     private Integer isAllowDownload(String downloadUserId,String downloadDeptId){
         String userId = userService.queryLoginUser();
         String deptId = userService.queryLoginUserDeptId();
-        boolean deptFlag = false;
-        //可下载部门情况
-        if (StringUtils.isNotEmpty(downloadDeptId)){
+        //二者都不为空
+        if (StringUtils.isNotEmpty(downloadDeptId) && StringUtils.isNotEmpty(downloadUserId)){
             //可下载部门数组
             List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(deptId);
             String[] downloadDeptIdStr = downloadDeptId.split(",");
+            boolean flag = false;
             for (int i = 0; i < downloadDeptIdStr.length; i++) {
                 if (deptAuthority.contains(downloadDeptIdStr[i])) {
-                    deptFlag = true;
+                    flag = true;
                     break;
                 }
             }
-        } else {
-            deptFlag = true;
-
-        }
-        //可下载人员情况
-        boolean userFlag = false;
-        if (StringUtils.isNotEmpty(downloadUserId)){
             List<String> approverIdList = Arrays.asList(downloadUserId.split(","));
-            userFlag = approverIdList.contains(userId);
+            // 如果有权限
+            if (!approverIdList.contains(userId) && !flag) {
+                // 不是该部门的人,不能查看
+                return 1;
+            } else {
+                return 0;
+            }
         } else {
-            userFlag = true;
-        }
+            //可下载部门情况
+            if (StringUtils.isNotEmpty(downloadDeptId)){
+                //可下载部门数组
+                String[] downloadDeptIdStr = downloadDeptId.split(",");
+                for (String downloadDeptIds : downloadDeptIdStr) {
+                    List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(downloadDeptIds);
+                    if (deptAuthority.contains(deptId)){
+                        return 0;
+                    }
+                }
+            }
 
-        // 如果有权限
-        if (userFlag || deptFlag) {
-            return 0;
-        } else {
-            return 1;
+            //可下载人员情况
+            if (StringUtils.isNotEmpty(downloadUserId)){
+                List<String> approverIdList = Arrays.asList(downloadUserId.split(","));
+                if (approverIdList.contains(userId)){
+                    return 0;
+                } else {
+                    return 1;
+                }
+
+            }
         }
+        return 1;
     }
 }