7 次代碼提交 e7a0621e94 ... 56295da736

作者 SHA1 備註 提交日期
  zizg 56295da736 作者:张哲 1 年之前
  zizg 49c6c3e285 作者:张哲 1 年之前
  zizg 40dc42462c 作者:张哲 1 年之前
  zizg bdc0e5c7bc 作者:张哲 1 年之前
  zizg 67d9a3e61c 作者:张哲 1 年之前
  zizg e7a9ed476b 作者:张哲 1 年之前
  zizg 3b8dcbd080 作者:张哲 1 年之前
共有 21 個文件被更改,包括 198 次插入34 次删除
  1. 9 1
      src/main/java/com/redxun/knowledge/album/service/AlbumApproveServiceImpl.java
  2. 9 1
      src/main/java/com/redxun/knowledge/album/service/AlbumYelpApproveServiceImpl.java
  3. 1 1
      src/main/java/com/redxun/knowledge/controller/KnowledgeLabelController.java
  4. 4 0
      src/main/java/com/redxun/knowledge/entity/dao/Knowledge.java
  5. 3 0
      src/main/java/com/redxun/knowledge/entity/dao/KnowledgeApprovalNodeFlower.java
  6. 3 0
      src/main/java/com/redxun/knowledge/entity/dao/KnowledgeCategory.java
  7. 2 0
      src/main/java/com/redxun/knowledge/entity/dto/KnowledgeApprovalNodeFlowerDto.java
  8. 3 0
      src/main/java/com/redxun/knowledge/entity/dto/KnowledgeDto.java
  9. 8 0
      src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalNodeFlowerVo.java
  10. 6 0
      src/main/java/com/redxun/knowledge/entity/vo/KnowledgeCategoryAdminVo.java
  11. 6 0
      src/main/java/com/redxun/knowledge/entity/vo/KnowledgeVo.java
  12. 1 1
      src/main/java/com/redxun/knowledge/mapper/KnowledgeApprovalNodeFlowerMapper.java
  13. 1 1
      src/main/java/com/redxun/knowledge/mapper/KnowledgeCategoryMapper.java
  14. 15 1
      src/main/java/com/redxun/knowledge/service/KnowledgeApprovalNodeServiceImpl.java
  15. 39 11
      src/main/java/com/redxun/knowledge/service/KnowledgeCategoryServiceImpl.java
  16. 9 10
      src/main/java/com/redxun/knowledge/service/KnowledgeLabelServiceImpl.java
  17. 65 0
      src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java
  18. 6 2
      src/main/resources/mapper/knowledge/KnowledgeApprovalNodeFlowerMapper.xml
  19. 6 3
      src/main/resources/mapper/knowledge/KnowledgeCategoryMapper.xml
  20. 1 1
      src/main/resources/mapper/knowledge/analysis/AnalysisAlbumMapper.xml
  21. 1 1
      src/main/resources/mapper/knowledge/analysis/AnalysisCommonMapper.xml

+ 9 - 1
src/main/java/com/redxun/knowledge/album/service/AlbumApproveServiceImpl.java

@@ -21,6 +21,7 @@ import com.redxun.knowledge.album.entity.vo.AlbumYelpApproveListVo;
 import com.redxun.knowledge.album.mapper.*;
 import com.redxun.knowledge.common.UserService;
 import com.redxun.knowledge.entity.dao.KnowledgeApprove;
+import com.redxun.knowledge.mapper.KnowledgeApproveMapper;
 import com.redxun.knowledge.utils.PageListUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +59,9 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
     @Autowired
     private AlbumApproveServiceImpl albumApproveService;
 
+    @Autowired
+    private KnowledgeApproveMapper knowledgeApproveMapper;
+
     @Override
     public BaseDao<AlbumApprove> getRepository() {
         return albumApproveMapper;
@@ -187,7 +191,11 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                 }
             }
         }
-        if ("1".equals(type)) {
+        //判断是否查看审核列表和知识管理员 是 查询全部数据 不是 只查看自己能审核的数据
+        //查询知识管理员
+        List<String> knowledgeManager = knowledgeApproveMapper.findKnowledgeManager();
+        String user = userService.queryLoginUser();
+        if ("1".equals(type) && knowledgeManager.contains(user)) {
             List<AlbumApprove> result = albumApproveVos.stream().
                     sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
             Page pageResult = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), result);

+ 9 - 1
src/main/java/com/redxun/knowledge/album/service/AlbumYelpApproveServiceImpl.java

@@ -23,6 +23,7 @@ import com.redxun.knowledge.album.entity.vo.AlbumYelpApproveListVo;
 import com.redxun.knowledge.album.mapper.*;
 import com.redxun.knowledge.common.MessageService;
 import com.redxun.knowledge.common.UserService;
+import com.redxun.knowledge.mapper.KnowledgeApproveMapper;
 import com.redxun.knowledge.qywexin.QYWechatUtils;
 import com.redxun.knowledge.utils.PageListUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -64,6 +65,9 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
     @Autowired
     private MessageService messageService;
 
+    @Autowired
+    private KnowledgeApproveMapper knowledgeApproveMapper;
+
     @Override
     public BaseDao<AlbumYelpApprove> getRepository() {
         return albumYelpApproveMapper;
@@ -110,7 +114,11 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
                 }
             }
         }
-        if ("1".equals(type)) {
+        //判断是否查看审核列表和知识管理员 是 查询全部数据 不是 只查看自己能审核的数据
+        //查询知识管理员
+        List<String> knowledgeManager = knowledgeApproveMapper.findKnowledgeManager();
+        String user = userService.queryLoginUser();
+        if ("1".equals(type) && knowledgeManager.contains(user)) {
             List<AlbumYelpApprove> result = albumYelpApproves.stream().
                     sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
             Page pageResult = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), result);

+ 1 - 1
src/main/java/com/redxun/knowledge/controller/KnowledgeLabelController.java

@@ -72,7 +72,7 @@ public class KnowledgeLabelController extends BaseController<KnowledgeLabel> {
         JsonResult jsonResult = JsonResult.getSuccessResult("");
 
         if (tops == null) {
-            tops = 24;
+            tops = 50;
         }
 
         try {

+ 4 - 0
src/main/java/com/redxun/knowledge/entity/dao/Knowledge.java

@@ -91,6 +91,10 @@ public class Knowledge extends BaseExtEntity<java.lang.String> {
     @TableField(exist = false)
     private OrganizationDto organizationIds;
 
+    //指定可下载附件的人员和组织
+    @TableField(value = "ALLOW_DOWNLOAD")
+    private String allowDownload;
+
 
     @Override
     public String getPkId() {

+ 3 - 0
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeApprovalNodeFlower.java

@@ -41,6 +41,9 @@ public class KnowledgeApprovalNodeFlower extends BaseExtEntity<String> {
     @TableField(value = "IS_DEL")
     @TableLogic
     private Integer isDel;
+    //维护人
+    @TableField(value = "MAINTAINER")
+    private String maintainer;
 
     @Override
     public String getPkId() {

+ 3 - 0
src/main/java/com/redxun/knowledge/entity/dao/KnowledgeCategory.java

@@ -51,6 +51,9 @@ public class KnowledgeCategory extends BaseExtEntity<java.lang.String> {
     @TableField(value = "IS_DEL")
     @TableLogic
     private Integer isDel;
+    //维护人
+    @TableField(value = "MAINTAINER")
+    private String maintainer;
 
     @Override
     public String getPkId() {

+ 2 - 0
src/main/java/com/redxun/knowledge/entity/dto/KnowledgeApprovalNodeFlowerDto.java

@@ -35,6 +35,8 @@ public class KnowledgeApprovalNodeFlowerDto {
     private Set<String> categoryId;
 
     private List<KnowledgeApprovalNodeDto> knowledgeApprovalNode;
+    //维护人
+    private String maintainer;
 }
 
 

+ 3 - 0
src/main/java/com/redxun/knowledge/entity/dto/KnowledgeDto.java

@@ -51,4 +51,7 @@ public class KnowledgeDto {
     private Integer isDraft;
 
     private OrganizationDto organizationIds;
+
+    //指定可下载附件的人员和组织
+    private String allowDownload;
 }

+ 8 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeApprovalNodeFlowerVo.java

@@ -26,4 +26,12 @@ public class KnowledgeApprovalNodeFlowerVo implements Serializable {
     private List<String> categoryName;
 
     private List<KnowledgeApprovalNodeVo> knowledgeApprovalNode;
+
+    private String createBy;
+
+    private String maintainer;
+
+    private String createByName;
+
+    private String maintainerName;
 }

+ 6 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeCategoryAdminVo.java

@@ -35,6 +35,8 @@ public class KnowledgeCategoryAdminVo implements Serializable {
     private Integer isSys;
     //操作人
     private String updateBy;
+    private String createBy;
+    private String maintainer;
     //操作时间
     @DateTimeFormat(
             pattern = "yyyy-MM-dd HH:mm:ss"
@@ -56,4 +58,8 @@ public class KnowledgeCategoryAdminVo implements Serializable {
 
     // 操作人姓名
     private String operatorName;
+
+    private String createByName;
+
+    private String maintainerName;
 }

+ 6 - 0
src/main/java/com/redxun/knowledge/entity/vo/KnowledgeVo.java

@@ -172,4 +172,10 @@ public class KnowledgeVo {
     private Date endTime;
 
     private Integer isWithdraw;
+
+    //可下载附件的人员或部门名称
+    private String allowDownload;
+
+    //是否可下载 可下载 返回0 不可下载 返回1
+    private Integer isAllowDownload;
 }

+ 1 - 1
src/main/java/com/redxun/knowledge/mapper/KnowledgeApprovalNodeFlowerMapper.java

@@ -27,7 +27,7 @@ public interface KnowledgeApprovalNodeFlowerMapper extends BaseMapper<KnowledgeA
      * 查询全部节点
      * @return
      */
-    List<KnowledgeApprovalNodeFlowerVo> findAllNodes();
+    List<KnowledgeApprovalNodeFlowerVo> findAllNodes(@Param("userId") String userId);
 
     /**
      * pc端查询审核流程

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

@@ -20,7 +20,7 @@ public interface KnowledgeCategoryMapper extends BaseDao<KnowledgeCategory> {
     IPage findAllKnowledgeCategory(IPage page, @Param("params") Map<String, Object> params, @Param("w") Map<String, Object> order);
 
     // 查询孩子节点,递归
-    List<KnowledgeCategoryAdminVo> selectKnowledgeCategoryByParent(String pkId);
+    List<KnowledgeCategoryAdminVo> selectKnowledgeCategoryByParent(@Param("pkId") String pkId,@Param("userId") String userId);
 
     KnowledgeCategoryAdminVo selectByCategoryId(String categoryId);
 

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

@@ -7,6 +7,7 @@ import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
 import com.redxun.common.base.db.PageHelper;
 import com.redxun.common.base.search.QueryFilter;
+import com.redxun.common.model.JPaasUser;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.StringUtils;
 import com.redxun.knowledge.common.UserService;
@@ -18,6 +19,7 @@ import com.redxun.knowledge.entity.vo.KnowledgeApprovalNodeFlowerVo;
 import com.redxun.knowledge.entity.vo.KnowledgeApprovalNodeVo;
 import com.redxun.knowledge.entity.vo.KnowledgeApprovalVo;
 import com.redxun.knowledge.mapper.*;
+import lombok.SneakyThrows;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -103,6 +105,12 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
     public String insertApprovalNodes(KnowledgeApprovalNodeFlowerDto knowledgeApprovalNodeFlowerDto) throws Exception {
         //修改(清除原本数据)
         if (StringUtils.isNotEmpty(knowledgeApprovalNodeFlowerDto.getPkId())) {
+            //判断是否能进行修改(创建人或维护人满足一个即可修改)
+            KnowledgeApprovalNodeFlower knowledgeApprovalNodeFlower = knowledgeApprovalNodeFlowerMapper.selectById(knowledgeApprovalNodeFlowerDto.getPkId());
+            String userId = userService.queryLoginUser();
+            if (!userId.equals(knowledgeApprovalNodeFlower.getCreateBy()) && !userId.equals(knowledgeApprovalNodeFlower.getMaintainer())){
+                throw new RuntimeException("您没有权限进行此操作");
+            }
             knowledgeApprovalNodeMapper.deleteByFlowerId(knowledgeApprovalNodeFlowerDto.getPkId());
             knowledgeApprovalNodeCategoryMapper.deleteByFlowerId(knowledgeApprovalNodeFlowerDto.getPkId());
         }
@@ -169,7 +177,8 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
      * @return
      */
     public List<KnowledgeApprovalNodeFlowerVo> findAllNodes() {
-        List<KnowledgeApprovalNodeFlowerVo> result = knowledgeApprovalNodeFlowerMapper.findAllNodes();
+        String userId = userService.queryLoginUser();
+        List<KnowledgeApprovalNodeFlowerVo> result = knowledgeApprovalNodeFlowerMapper.findAllNodes(userId);
         result.forEach(e -> {
             if (flowerName.equals(e.getFlowerName())) {
                 e.setCategory(new ArrayList<>());
@@ -181,6 +190,11 @@ public class KnowledgeApprovalNodeServiceImpl extends SuperServiceImpl<Knowledge
                     category.add(knowledgeCategory.getName());
                 }
             });
+            e.setCreateByName(userService.queryUser(e.getCreateBy()).getFullName());
+            JPaasUser jPaasUser = userService.queryUser(e.getMaintainer());
+            if (jPaasUser != null){
+                e.setMaintainerName(jPaasUser.getFullName());
+            }
             e.setCategoryName(category);
         });
         return result;

+ 39 - 11
src/main/java/com/redxun/knowledge/service/KnowledgeCategoryServiceImpl.java

@@ -7,6 +7,7 @@ import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
 import com.redxun.common.base.db.PageHelper;
 import com.redxun.common.base.search.QueryFilter;
+import com.redxun.common.model.JPaasUser;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.BeanUtil;
 import com.redxun.common.tool.IdGenerator;
@@ -82,7 +83,7 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
         if (knowledgeCategory != null) {
             BeanUtils.copyProperties(knowledgeCategory, knowledgeCategoryAdminVo);
         }
-        List<KnowledgeCategoryAdminVo> childrens = findChildrens(knowledgeCategoryAdminVo);
+        List<KnowledgeCategoryAdminVo> childrens = findChildrens(knowledgeCategoryAdminVo,null);
         knowledgeCategoryAdminVo.setChildren(childrens);
         return knowledgeCategoryAdminVo;
     }
@@ -95,6 +96,8 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
      */
     public IPage findAllKnowledgeCategory(QueryFilter filter) {
         Map<String, Object> params = PageHelper.constructParams(filter);
+        String userId = userService.queryLoginUser();
+        filter.getParams().put("userId",userId);
         IPage page = knowledgeCategoryMapper.findAllKnowledgeCategory(filter.getPage(), filter.getParams(), params);
         List<KnowledgeCategoryAdminVo> knowledgeCategoryList = page.getRecords();
         // 如果有name参数,特殊处理
@@ -105,13 +108,15 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
             knowledgeCategoryList.forEach(e -> {
                 e.setLevel(1);
                 e.setOperatorName(userService.queryUser(e.getUpdateBy()).getFullName());
-                List<KnowledgeCategoryAdminVo> childrens = findChildrens(e);
+                List<KnowledgeCategoryAdminVo> childrens = findChildrens(e,userId);
                 if (childrens.size() == 0) {
                     e.setChildren(null);
                 } else {
                     e.setChildren(childrens);
                     childrens.forEach(h -> {
-                        h.setOperatorName(userService.queryUser(h.getUpdateBy()).getFullName());
+                        //h.setOperatorName(userService.queryUser(h.getUpdateBy()).getFullName());
+                        //h.setCreateByName(userService.queryUser(h.getCreateBy()).getFullName());
+                        //h.setMaintainerName(userService.queryUser(h.getMaintainer()).getFullName());
                         // 把孩子节点放入集合中
                         childrenList.add(h.getPkId());
                     });
@@ -125,12 +130,21 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
             knowledgeCategoryList.forEach(e -> {
                 e.setLevel(1);
                 e.setOperatorName(userService.queryUser(e.getUpdateBy()).getFullName());
-                List<KnowledgeCategoryAdminVo> childrens = findChildrens(e);
+                e.setCreateByName(userService.queryUser(e.getCreateBy()).getFullName());
+                JPaasUser jPaasUser = userService.queryUser(e.getMaintainer());
+                if (jPaasUser != null){
+                    e.setMaintainerName(jPaasUser.getFullName());
+                }
+                List<KnowledgeCategoryAdminVo> childrens = findChildrens(e,userId);
                 if (childrens.size() == 0) {
                     e.setChildren(null);
                 } else {
                     e.setChildren(childrens);
-                    childrens.forEach(h -> h.setOperatorName(userService.queryUser(h.getUpdateBy()).getFullName()));
+                    //childrens.forEach(h -> {
+                    //    h.setOperatorName(userService.queryUser(h.getUpdateBy()).getFullName());
+                    //    h.setCreateByName(userService.queryUser(h.getCreateBy()).getFullName());
+                    //    h.setMaintainerName(userService.queryUser(h.getMaintainer()).getFullName());
+                    //});
                 }
             });
             page.setRecords(knowledgeCategoryList);
@@ -196,6 +210,11 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
     @CacheEvict(value = {"knowledgeCategory","knowledgeCategoryPc"}, allEntries=true,cacheManager = "redisCacheManager")
     public int update(KnowledgeCategory entity) {
         KnowledgeCategory knowledgeCategory = this.get(entity.getPkId());
+        //判断是否能进行修改(创建人或维护人满足一个即可修改)
+        String userId = userService.queryLoginUser();
+        if (!userId.equals(knowledgeCategory.getCreateBy()) && !userId.equals(knowledgeCategory.getMaintainer())){
+            throw new RuntimeException("您没有权限进行此操作");
+        }
         if (knowledgeCategory.getIsSys() == 1) {
             throw new RuntimeException("系统内置节点,无法修改");
         }
@@ -250,14 +269,18 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
     @Transactional(rollbackFor = Exception.class)
     @CacheEvict(value = {"knowledgeCategory","knowledgeCategoryPc"}, allEntries=true,cacheManager = "redisCacheManager")
     public Integer deleteKnowledgeCategory(String knowledgeCategoryId) {
-
+        KnowledgeCategory knowledgeCategory = this.baseMapper.selectById(knowledgeCategoryId);
+        //判断是否能进行修改(创建人或维护人满足一个即可修改)
+        String userId = userService.queryLoginUser();
+        if (!userId.equals(knowledgeCategory.getCreateBy()) && !userId.equals(knowledgeCategory.getMaintainer())){
+            throw new RuntimeException("您没有权限进行此操作");
+        }
         // 查询该分类下是否还有知识
         Boolean hasKnowledge = hasKnowledge(knowledgeCategoryId);
         if (hasKnowledge) {
             return 0;
         }
         // 查询该分类的下是否还有子分类
-        KnowledgeCategory knowledgeCategory = this.baseMapper.selectById(knowledgeCategoryId);
         Boolean hasChirld = findHasChirld(knowledgeCategory);
         if (hasChirld) {
             return 1;
@@ -282,19 +305,24 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
     }
 
     // 查询孩子节点(递归)
-    public List<KnowledgeCategoryAdminVo> findChildrens(KnowledgeCategoryAdminVo knowledgeCategoryAdminVo) {
-        List<KnowledgeCategoryAdminVo> knowledgeCategorieChild = knowledgeCategoryMapper.selectKnowledgeCategoryByParent(knowledgeCategoryAdminVo.getPkId());
+    public List<KnowledgeCategoryAdminVo> findChildrens(KnowledgeCategoryAdminVo knowledgeCategoryAdminVo,String userId) {
+        List<KnowledgeCategoryAdminVo> knowledgeCategorieChild = knowledgeCategoryMapper.selectKnowledgeCategoryByParent(knowledgeCategoryAdminVo.getPkId(),userId);
         List<KnowledgeCategoryAdminVo> knowledgeCategories = knowledgeCategorieChild.stream().
                 sorted(Comparator.comparingInt(KnowledgeCategoryAdminVo::getSort)).
                 map(e -> {
                     e.setOperatorName(userService.queryUser(e.getUpdateBy()).getFullName());
+                    e.setCreateByName(userService.queryUser(e.getCreateBy()).getFullName());
+                    JPaasUser jPaasUser = userService.queryUser(e.getMaintainer());
+                    if (jPaasUser != null){
+                        e.setMaintainerName(jPaasUser.getFullName());
+                    }
                     return e;
                 }).
                 collect(Collectors.toList());
         knowledgeCategoryAdminVo.setChildren(knowledgeCategories);
         knowledgeCategories.forEach(e -> {
             e.setLevel(knowledgeCategoryAdminVo.getLevel() + 1);
-            List<KnowledgeCategoryAdminVo> allChildren = findChildrens(e);
+            List<KnowledgeCategoryAdminVo> allChildren = findChildrens(e,userId);
             if (allChildren.size() == 0) {
                 e.setChildren(null);
             } else {
@@ -390,7 +418,7 @@ public class KnowledgeCategoryServiceImpl extends SuperServiceImpl<KnowledgeCate
         // 查询其孩子节点
         collect.forEach(e -> {
             e.setLevel(1);
-            List<KnowledgeCategoryAdminVo> childrens = findChildrens(e);
+            List<KnowledgeCategoryAdminVo> childrens = findChildrens(e,null);
             e.setChildren(childrens);
         });
         return collect;

+ 9 - 10
src/main/java/com/redxun/knowledge/service/KnowledgeLabelServiceImpl.java

@@ -103,16 +103,15 @@ public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMa
         return page;
     }
 
-    public List<KnowledgeLabelVo> labels(Integer tops) {
-        List<KnowledgeLabelVo> labels = knowledgeLabelMapper.selectTops(tops);
-        labels.forEach(e -> {
-            JPaasUser user = userService.queryUser(e.getOperator());
-            if (user != null) {
-                e.setOperatorName(user.getFullName());
-            }
-        });
-
-        return labels;
+    /**
+     * 去高频词找寻前50条记录
+     * @param tops
+     * @return
+     */
+    public List<String> labels(Integer tops) {
+        List<SearchParticipleWordCloudVo> searchParticipleWordCloudVos = analysisCommonService.searchParticipleWordCloud(tops);
+        List<String> result = searchParticipleWordCloudVos.stream().map(SearchParticipleWordCloudVo::getParticiple).collect(Collectors.toList());
+        return result;
     }
 
     /**

+ 65 - 0
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -18,6 +18,7 @@ import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.IdGenerator;
 import com.redxun.common.tool.StringUtils;
 import com.redxun.common.utils.ContextUtil;
+import com.redxun.dto.user.OsGroupDto;
 import com.redxun.dto.user.OsUserDto;
 import com.redxun.knowledge.album.entity.dao.AlbumCatalogueKnowledge;
 import com.redxun.knowledge.album.mapper.AlbumCatalogueKnowledgeMapper;
@@ -160,6 +161,7 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             knowledge.setCreateTime(new Date());
             knowledge.setUpdateBy(users.getUserId());
             knowledge.setUpdateTime(new Date());
+            knowledge.setAllowDownload(knowledgeDto.getAllowDownload());
             if (!ObjectUtil.valueAllNull(knowledgeDto.getOrganizationIds())){
                 String organizationId = JSON.toJSON(knowledgeDto.getOrganizationIds()).toString();
                 knowledge.setOrganizationId(organizationId);
@@ -253,6 +255,25 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             if (!StringUtils.isEmpty(knowledge.getCategoryId())){
                 knowledgeVo.setKnowledgeCategoryAdminVo(knowledgeCategoryService.findAllParentByCategoryId(knowledge.getCategoryId()));
             }
+            //指定了附件下载权限会判断
+            if (StringUtils.isNotEmpty(knowledge.getAllowDownload())){
+                //附件下载权限
+                knowledgeVo.setIsAllowDownload(isAllowDownload(knowledge.getAllowDownload()));
+                //附件可下载人员或部门字符串复制
+                List<String> allowDownloadList = Arrays.asList(knowledge.getAllowDownload().split(","));
+                String allowDownloadNameResult = allowDownloadList.parallelStream().map(h -> {
+                    String allowDownloadName = null;
+                    OsUserDto osUserDto = userService.queryOsUserDto(h);
+                    if (osUserDto != null) {
+                        allowDownloadName = osUserDto.getFullName();
+                    } else {
+                        OsGroupDto osGroupDto = userService.findDeptByDeptId(h);
+                        allowDownloadName = osGroupDto.getName();
+                    }
+                    return allowDownloadName;
+                }).collect(Collectors.joining(","));
+                knowledgeVo.setAllowDownload(allowDownloadNameResult);
+            }
             if (knowledge.getIsDraft() == 0){
                 return knowledgeVo;
             }
@@ -374,6 +395,26 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             } else {
                 e.setIsWithdraw(1);
             }
+            //指定了附件下载权限会判断
+            if (StringUtils.isNotEmpty(e.getAllowDownload())){
+                //附件下载权限
+                e.setIsAllowDownload(isAllowDownload(e.getAllowDownload()));
+                //附件可下载人员或部门字符串赋值
+                List<String> allowDownloadList = Arrays.asList(e.getAllowDownload().split(","));
+                String allowDownloadNameResult = allowDownloadList.parallelStream().map(h -> {
+                    String allowDownloadName = null;
+                    OsUserDto osUserDto = userService.queryOsUserDto(h);
+                    if (osUserDto != null) {
+                        allowDownloadName = osUserDto.getFullName();
+                    } else {
+                        OsGroupDto osGroupDto = userService.findDeptByDeptId(h);
+                        allowDownloadName = osGroupDto.getName();
+                    }
+                    return allowDownloadName;
+                }).collect(Collectors.joining(","));
+                e.setAllowDownload(allowDownloadNameResult);
+            }
+
         });
         return page;
     }
@@ -975,4 +1016,28 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         knowledgeMapper.updateById(knowledge);
         knowledgeApproveMapper.deleteByKnowledgeId(knowledgeId);
     }
+
+    /**
+     * 判断是否有下载附件权限(有权限 返回0; 没权限 返回1)
+     * @return
+     */
+    private Integer isAllowDownload(String allowDownload){
+        String userId = userService.queryLoginUser();
+        List<String> deptAuthority = knowledgeApproveMapper.deptAuthority(userId);  //部门权限字符串
+        boolean flag = false;
+        for (int i = 0; i < deptAuthority.size(); i++) {
+            if (deptAuthority.get(i).contains(allowDownload)) {
+                flag = true;
+                break;
+            }
+        }
+        List<String> approverIdList = Arrays.asList(allowDownload.split(","));
+        // 如果有权限
+        if (!approverIdList.contains(userId) && !flag) {
+            // 不是该部门的人,不能查看
+            return 1;
+        } else {
+            return 0;
+        }
+    }
 }

+ 6 - 2
src/main/resources/mapper/knowledge/KnowledgeApprovalNodeFlowerMapper.xml

@@ -30,6 +30,8 @@
     <resultMap id="findAllNodes" type="com.redxun.knowledge.entity.vo.KnowledgeApprovalNodeFlowerVo">
         <id property="pkId" column="pkId"/>
         <result property="flowerName" column="flowerName"/>
+        <result property="createBy" column="flowerCreateBy"/>
+        <result property="maintainer" column="maintainer"/>
         <collection property="category" ofType="string">
             <constructor>
                 <arg column="categoryId"/>
@@ -53,12 +55,14 @@
                node.APPROVER_NAME approverName,
                node.IS_FINAL isFinal,
                node.APPROVER_ID approverId,
-               category.CATEGORY_ID as categoryId
+               category.CATEGORY_ID as categoryId,
+               MAINTAINER as maintainer,
+               flower.CREATE_BY_ as flowerCreateBy
         from KM_KNOWLEDGE_APPROVAL_NODE_FLOWER flower
                  left join KM_KNOWLEDGE_APPROVAL_NODE node
                            on flower.PK_ID = node.FLOWER_ID and node.IS_DEL = 0
                  left join KM_KNOWLEDGE_APPROVAL_NODE_CATEGORY category on flower.PK_ID = category.FLOWER_ID and category.IS_DEL = 0
-       where flower.IS_DEL = 0
+       where flower.IS_DEL = 0 and (flower.CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
        order by flower.CREATE_TIME_,node.IS_FINAL,node.sort
     </select>
 

+ 6 - 3
src/main/resources/mapper/knowledge/KnowledgeCategoryMapper.xml

@@ -20,7 +20,7 @@
 
     <sql id="COLUMNS">
         PK_ID,PARENT,NAME,SORT,IS_SYS,IS_DEL,COMPANY_ID_,
-        CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_
+        CREATE_DEP_ID_,TENANT_ID_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,MAINTAINER
     </sql>
 
 
@@ -47,10 +47,10 @@
         FROM KM_KNOWLEDGE_CATEGORY
         <where>
             <if test="@rx.Ognl@isNotEmpty(params.name)">
-                and instr(NAME,#{params.name}) > 0
+                and instr(NAME,#{params.name}) > 0 and (CREATE_BY_ = #{params.userId} or MAINTAINER = #{params.userId})
             </if>
             <if test="@rx.Ognl@isEmpty(params.name)">
-                and IS_DEL = 0 and PARENT = 0
+                and IS_DEL = 0 and PARENT = 0 and (CREATE_BY_ = #{params.userId} or MAINTAINER = #{params.userId})
             </if>
 
         </where>
@@ -63,6 +63,9 @@
         FROM KM_KNOWLEDGE_CATEGORY
         <where>
             IS_DEL = 0 and PARENT = #{pkId}
+            <if test="userId != null">
+                and (CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
+            </if>
         </where>
     </select>
 

+ 1 - 1
src/main/resources/mapper/knowledge/analysis/AnalysisAlbumMapper.xml

@@ -5,7 +5,7 @@
     <select id="selectCategory" resultType="string">
         select PK_ID
         FROM KM_ALBUM_CATEGORY
-        where PARENT = '0'
+        where PARENT = '0' and IS_DEL = 0
     </select>
 
     <select id="selectAlbumId" resultType="int">

+ 1 - 1
src/main/resources/mapper/knowledge/analysis/AnalysisCommonMapper.xml

@@ -42,7 +42,7 @@
     <select id="level1Knowledge" resultType="string">
         select PK_ID
         from KM_KNOWLEDGE_CATEGORY
-        where PARENT = '0'
+        where PARENT = '0' and IS_DEL = 0
     </select>
 
     <select id="level1KnowledgeHistogram" resultType="int">