Forráskód Böngészése

作者:张哲
时间:2023/08/25
类型:优化
描述:分类sort变更问题

zizg 1 éve
szülő
commit
99216db94a

+ 2 - 0
src/main/java/com/redxun/knowledge/album/mapper/AlbumCategoryMapper.java

@@ -95,4 +95,6 @@ public interface AlbumCategoryMapper extends BaseDao<AlbumCategory> {
     void swapSort(@Param("pkId") String pkId, @Param("sort") int sort);
 
     List<AlbumCategory> findAllAlbumCategoryByParent(@Param("pkId") String pkId,@Param("userId") String userId);
+
+    List<AlbumCategory> visibleAlbumCategory(@Param("parent") String parent, @Param("userId") String userId);
 }

+ 11 - 8
src/main/java/com/redxun/knowledge/album/service/AlbumCategoryServiceImpl.java

@@ -279,15 +279,17 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
      * @param direction
      */
     public void adjustDirection(String pkId, Integer direction) {
+        String userId = userService.queryLoginUser();
         AlbumCategory category = this.get(pkId);
         Integer sort = category.getSort();
         String parent = category.getParent();
         if (direction == 1) {
             // 上升
-            QueryWrapper<AlbumCategory> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("PARENT", parent);
-            queryWrapper.orderByAsc("SORT");
-            List<AlbumCategory> albumCategoryList = albumCategoryMapper.selectList(queryWrapper);
+            //QueryWrapper<AlbumCategory> queryWrapper = new QueryWrapper<>();
+            //queryWrapper.eq("PARENT", parent);
+            //queryWrapper.orderByAsc("SORT");
+            //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);
             // 交换位置
@@ -296,10 +298,11 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
             albumCategoryMapper.swapSort(albumCategoryPre.getPkId(), temp);
         } else {
             // 下降
-            QueryWrapper<AlbumCategory> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("PARENT", parent);
-            queryWrapper.orderByAsc("SORT");
-            List<AlbumCategory> albumCategoryList = albumCategoryMapper.selectList(queryWrapper);
+            //QueryWrapper<AlbumCategory> queryWrapper = new QueryWrapper<>();
+            //queryWrapper.eq("PARENT", parent);
+            //queryWrapper.orderByAsc("SORT");
+            //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);
             // 交换位置

+ 2 - 0
src/main/java/com/redxun/knowledge/mapper/KnowledgeCategoryMapper.java

@@ -75,4 +75,6 @@ public interface KnowledgeCategoryMapper extends BaseDao<KnowledgeCategory> {
      * @param knowledgeCategories
      */
     void updateByList(@Param("parent") String parent, @Param("knowledgeCategoryList") List<String> knowledgeCategories);
+
+    List<KnowledgeCategory> visibleKnowledgeCategory(@Param("parent") String parent,@Param("userId") String userId);
 }

+ 1 - 0
src/main/java/com/redxun/knowledge/service/KnowledgeApprovalNodeServiceImpl.java

@@ -138,6 +138,7 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
         }
         KnowledgeApprovalNodeFlower knowledgeApprovalNodeFlower = new KnowledgeApprovalNodeFlower();
         knowledgeApprovalNodeFlower.setFlowerName(knowledgeApprovalNodeFlowerDto.getFlowerName());
+        knowledgeApprovalNodeFlower.setMaintainer(knowledgeApprovalNodeFlowerDto.getMaintainer());
         if (StringUtils.isEmpty(knowledgeApprovalNodeFlowerDto.getPkId())) {
             knowledgeApprovalNodeFlowerMapper.insert(knowledgeApprovalNodeFlower);
         } else {

+ 13 - 8
src/main/java/com/redxun/knowledge/service/KnowledgeCategoryServiceImpl.java

@@ -1,6 +1,7 @@
 
 package com.redxun.knowledge.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.base.db.BaseDao;
@@ -369,16 +370,19 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
      * @param status
      */
     @Transactional(rollbackFor = Exception.class)
+    @CacheEvict(value = {"knowledgeCategory","knowledgeCategoryPc"}, allEntries=true,cacheManager = "redisCacheManager")
     public void goUpOrDownUp(String knowledgeCategoryId, Boolean status) {
+        String userId = userService.queryLoginUser();
         KnowledgeCategory knowledgeCategory = this.get(knowledgeCategoryId);
         Integer sort = knowledgeCategory.getSort();
         String parent = knowledgeCategory.getParent();
         if (status) {
             // 上升
-            QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("PARENT", parent);
-            queryWrapper.orderByAsc("SORT");
-            List<KnowledgeCategory> knowledgeCategoryList = knowledgeCategoryMapper.selectList(queryWrapper);
+            //QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
+            //queryWrapper.eq("PARENT", parent);
+            //queryWrapper.orderByAsc("SORT");
+            //List<KnowledgeCategory> knowledgeCategoryList = knowledgeCategoryMapper.selectList(queryWrapper);
+            List<KnowledgeCategory> knowledgeCategoryList = knowledgeCategoryMapper.visibleKnowledgeCategory(parent, userId);
             List<KnowledgeCategory> collect = knowledgeCategoryList.stream().filter(e -> e.getSort() < sort).collect(Collectors.toList());
             KnowledgeCategory knowledgeCategoryPre = collect.get(collect.size() - 1);
             // 交换位置
@@ -387,10 +391,11 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
             knowledgeCategoryMapper.swapSort(knowledgeCategoryPre.getPkId(), temp);
         } else {
             // 下降
-            QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("PARENT", parent);
-            queryWrapper.orderByAsc("SORT");
-            List<KnowledgeCategory> knowledgeCategoryList = knowledgeCategoryMapper.selectList(queryWrapper);
+            //QueryWrapper<KnowledgeCategory> queryWrapper = new QueryWrapper<>();
+            //queryWrapper.eq("PARENT", parent);
+            //queryWrapper.orderByAsc("SORT");
+            //List<KnowledgeCategory> knowledgeCategoryList = knowledgeCategoryMapper.selectList(queryWrapper);
+            List<KnowledgeCategory> knowledgeCategoryList = knowledgeCategoryMapper.visibleKnowledgeCategory(parent, userId);
             List<KnowledgeCategory> collect = knowledgeCategoryList.stream().filter(e -> e.getSort() > sort).collect(Collectors.toList());
             KnowledgeCategory knowledgeCategoryNext = collect.get(0);
             // 交换位置

+ 26 - 13
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -1017,23 +1017,36 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
     private Integer isAllowDownload(String downloadUserId,String downloadDeptId){
         String userId = userService.queryLoginUser();
         String deptId = userService.queryLoginUserDeptId();
-        //可下载部门数组
-        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])) {
-                flag = true;
-                break;
+        boolean deptFlag = false;
+        //可下载部门情况
+        if (StringUtils.isNotEmpty(downloadDeptId)){
+            //可下载部门数组
+            List<String> deptAuthority = knowledgeApproveMapper.findAllDeptIdByParent(deptId);
+            String[] downloadDeptIdStr = downloadDeptId.split(",");
+            for (int i = 0; i < downloadDeptIdStr.length; i++) {
+                if (deptAuthority.contains(downloadDeptIdStr[i])) {
+                    deptFlag = true;
+                    break;
+                }
             }
+        } else {
+            deptFlag = true;
+
         }
-        List<String> approverIdList = Arrays.asList(downloadUserId.split(","));
-        // 如果有权限
-        if (!approverIdList.contains(userId) && !flag) {
-            // 不是该部门的人,不能查看
-            return 1;
+        //可下载人员情况
+        boolean userFlag = false;
+        if (StringUtils.isNotEmpty(downloadUserId)){
+            List<String> approverIdList = Arrays.asList(downloadUserId.split(","));
+            userFlag = approverIdList.contains(userId);
         } else {
+            userFlag = true;
+        }
+
+        // 如果有权限
+        if (userFlag || deptFlag) {
             return 0;
+        } else {
+            return 1;
         }
     }
 }

+ 11 - 0
src/main/resources/mapper/knowledge/KnowledgeCategoryMapper.xml

@@ -141,6 +141,17 @@
             </foreach>
         </where>
     </update>
+
+    <select id="visibleKnowledgeCategory" resultType="com.redxun.knowledge.entity.dao.KnowledgeCategory">
+        select * from KM_KNOWLEDGE_CATEGORY
+        <where>
+            PARENT = #{parent} and IS_DEL = 0
+            <if test="userId != null">
+                and (CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
+            </if>
+        </where>
+        order by sort
+    </select>
 </mapper>
 
 

+ 11 - 0
src/main/resources/mapper/knowledge/album/AlbumCategoryMapper.xml

@@ -129,6 +129,17 @@
         ORDER BY SORT
     </select>
 
+    <select id="visibleAlbumCategory" resultType="com.redxun.knowledge.album.entity.dao.AlbumCategory">
+        select * from KM_ALBUM_CATEGORY
+        <where>
+            PARENT = #{parent} and IS_DEL = 0
+            <if test="userId != null">
+                and (CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
+            </if>
+        </where>
+        order by sort
+    </select>
+
 </mapper>