Przeglądaj źródła

作者:张哲
时间:2023/08/18
类型:修改
描述:3.知识专辑审核流程和分类增加维护人字段

zizg 1 rok temu
rodzic
commit
1b2b0223b4

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

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

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

@@ -3,6 +3,7 @@ package com.redxun.knowledge.album.entity.dao;
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.redxun.common.base.entity.BaseExtEntity;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
@@ -51,6 +52,9 @@ public class AlbumCategory extends BaseExtEntity<String> {
     @TableField(value = "IS_DEL")
     private Integer isDel;
 
+    @TableField(value = "MAINTAINER")
+    private String maintainer;
+
     @TableField(exist = false)
     private boolean hasChild;
 

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

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

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

@@ -31,4 +31,7 @@ public class AlbumApprovalNodeDto implements Serializable {
 
     @ApiModelProperty("是否为终审节点")
     private Integer isFinal;
+
+    @ApiModelProperty("维护人Id")
+    private String maintainer;
 }

+ 13 - 0
src/main/java/com/redxun/knowledge/album/entity/vo/AlbumApproverNodeVo.java

@@ -1,5 +1,6 @@
 package com.redxun.knowledge.album.entity.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -34,4 +35,16 @@ public class AlbumApproverNodeVo implements Serializable {
     @ApiModelProperty("是否为终审节点 0 不是 1 是")
     private Integer isFinal;
 
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ApiModelProperty("创建人姓名")
+    private String createByName;
+
+    @ApiModelProperty("维护人")
+    private String maintainer;
+
+    @ApiModelProperty("维护人姓名")
+    private String maintainerName;
+
 }

+ 12 - 0
src/main/java/com/redxun/knowledge/album/entity/vo/AlbumCategoryVo.java

@@ -67,4 +67,16 @@ public class AlbumCategoryVo implements Serializable {
     @ApiModelProperty("下级节点")
     private List<AlbumCategoryVo> children;
 
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ApiModelProperty("创建人姓名")
+    private String createByName;
+
+    @ApiModelProperty("维护人")
+    private String maintainer;
+
+    @ApiModelProperty("维护人姓名")
+    private String maintainerName;
+
 }

+ 6 - 0
src/main/java/com/redxun/knowledge/album/mapper/AlbumApprovalNodeMapper.java

@@ -28,4 +28,10 @@ public interface AlbumApprovalNodeMapper extends BaseDao<AlbumApprovalNode> {
      */
     Integer selectAllByDeptId(@Param("userDeptId") String userDeptId, @Param("approverId") String approverId);
 
+    /**
+     * 查询全部审核节点(根据创建人和维护人查询)
+     * @param userId
+     * @return
+     */
+    List<AlbumApprovalNode> findAllAlbumApprovalNode(String userId);
 }

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

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

+ 3 - 0
src/main/java/com/redxun/knowledge/album/mapper/AlbumYelpApprovalNodeMapper.java

@@ -4,6 +4,8 @@ import com.redxun.common.base.db.BaseDao;
 import com.redxun.knowledge.album.entity.dao.AlbumYelpApprovalNode;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 业务--专辑点评审核流程节点表数据库访问层
  */
@@ -15,4 +17,5 @@ public interface AlbumYelpApprovalNodeMapper extends BaseDao<AlbumYelpApprovalNo
      */
     void deleteAll();
 
+    List<AlbumYelpApprovalNode> findAllAlbumApprovalNode(String userId);
 }

+ 10 - 0
src/main/java/com/redxun/knowledge/album/service/AlbumApprovalNodeServiceImpl.java

@@ -106,4 +106,14 @@ public class AlbumApprovalNodeServiceImpl extends SuperServiceImpl<AlbumApproval
         map.put("approverName",approverName);
         return map;
     }
+
+    /**
+     * 查询全部审核节点(根据创建人和维护人查询)
+     * @param userId
+     * @return
+     */
+    public List<AlbumApprovalNode> findAllAlbumApprovalNode(String userId) {
+        List<AlbumApprovalNode> result = albumApprovalNodeMapper.findAllAlbumApprovalNode(userId);
+        return result;
+    }
 }

+ 19 - 3
src/main/java/com/redxun/knowledge/album/service/AlbumCategoryServiceImpl.java

@@ -81,6 +81,8 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
      */
     public IPage query(QueryFilter queryFilter) {
         Map<String, Object> params = PageHelper.constructParams(queryFilter);
+        String userId = userService.queryLoginUser();
+        queryFilter.getParams().put("userId",userId);
         IPage page = albumCategoryMapper.findAllAlbumCategory(queryFilter.getPage(), queryFilter.getParams(), params);
         List<AlbumCategoryVo> records = page.getRecords();
         Map<String, Object> param = queryFilter.getParams();
@@ -94,6 +96,8 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
                 allAlbumCategory2.forEach(albumCategoryVo2 -> {
                     if (!childIdList.contains(albumCategoryVo2.getPkId())) {
                         albumCategoryVo2.setOperator(userService.queryUser(albumCategoryVo2.getUpdateBy()).getFullName());
+                        albumCategoryVo2.setCreateByName(userService.queryUser(albumCategoryVo2.getCreateBy()).getFullName());
+                        albumCategoryVo2.setMaintainerName(userService.queryUser(albumCategoryVo2.getMaintainer()).getFullName());
                         allAlbumCategory1.add(albumCategoryVo2);
                     }
                 });
@@ -118,15 +122,17 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
      * @param albumCategoryVoList
      */
     private List<String> findChild(List<AlbumCategoryVo> albumCategoryVoList, Boolean flag) {
+        String userId = userService.queryLoginUser();
         //孩子节点集合Id
         List<String> childrenIdList = new ArrayList<>();
         albumCategoryVoList.forEach(e -> {
-            List<AlbumCategory> albumCategoryList = albumCategoryMapper.
-                    selectList(new LambdaQueryWrapper<AlbumCategory>().eq(AlbumCategory::getParent, e.getPkId()).orderByAsc(AlbumCategory::getSort));
+            List<AlbumCategory> albumCategoryList = albumCategoryMapper.findAllAlbumCategoryByParent(e.getPkId(),userId);
             List<AlbumCategoryVo> childAlbumCategoryVoList = albumCategoryList.parallelStream().map(albumCategory -> {
                 AlbumCategoryVo albumCategoryVo = new AlbumCategoryVo();
                 BeanUtils.copyProperties(albumCategory, albumCategoryVo);
                 albumCategoryVo.setOperator(userService.queryUser(albumCategoryVo.getUpdateBy()).getFullName());
+                albumCategoryVo.setCreateByName(userService.queryUser(albumCategoryVo.getCreateBy()).getFullName());
+                albumCategoryVo.setMaintainerName(userService.queryUser(albumCategoryVo.getMaintainer()).getFullName());
                 childrenIdList.add(albumCategoryVo.getPkId());
                 return albumCategoryVo;
             }).collect(Collectors.toList());
@@ -169,6 +175,12 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
     }
 
     public String del(String ids) {
+        AlbumCategory albumCategory = albumCategoryMapper.selectById(ids);
+        //判断是否能进行修改(创建人或维护人满足一个即可修改)
+        String userId = userService.queryLoginUser();
+        if (!userId.equals(albumCategory.getCreateBy()) && !userId.equals(albumCategory.getMaintainer())){
+            throw new RuntimeException("您没有权限进行此操作");
+        }
         List<AlbumInfo> albumInfoList = albumInfoMapper.
                 selectList(new QueryWrapper<AlbumInfo>().eq("CATEGORY_ID", ids));
         if (CollectionUtils.isNotEmpty(albumInfoList)) {
@@ -176,7 +188,6 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
                     albumInfoList.parallelStream().map(AlbumInfo::getName).collect(Collectors.joining(","));
             return result;
         }
-        AlbumCategory albumCategory = albumCategoryMapper.selectById(ids);
         // 查询该分类的下是否还有子分类
         List<AlbumCategory> albumCategoryList = albumCategoryMapper.
                 selectList(new LambdaQueryWrapper<AlbumCategory>().eq(AlbumCategory::getParent, ids));
@@ -199,6 +210,11 @@ public class AlbumCategoryServiceImpl extends SuperServiceImpl<AlbumCategoryMapp
         if (albumCategory.getSort() == null) {
             return "排序不能为空";
         }
+        //判断是否能进行修改(创建人或维护人满足一个即可修改)
+        String userId = userService.queryLoginUser();
+        if (!userId.equals(albumCategory.getCreateBy()) && !userId.equals(albumCategory.getMaintainer())){
+            throw new RuntimeException("您没有权限进行此操作");
+        }
         if (albumCategory.getParent().isEmpty()) {
             albumCategory.setParent("0");
         }

+ 19 - 3
src/main/java/com/redxun/knowledge/album/service/AlbumInfoServiceImpl.java

@@ -10,6 +10,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.IdGenerator;
 import com.redxun.common.tool.StringUtils;
@@ -500,11 +501,18 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
      * @return
      */
     public List<AlbumApproverNodeVo> approveFlowsAlbumApprovalNode() {
-
-        List<AlbumApprovalNode> albumApprovalNodeList = albumApprovalNodeService.findAll(null);
+        String userId = userService.queryLoginUser();
+        List<AlbumApprovalNode> albumApprovalNodeList = albumApprovalNodeService.findAllAlbumApprovalNode(userId);
         List<AlbumApproverNodeVo> collect = albumApprovalNodeList.parallelStream().map(e -> {
             AlbumApproverNodeVo albumApproverNodeVo = new AlbumApproverNodeVo();
             BeanUtils.copyProperties(e, albumApproverNodeVo);
+            albumApproverNodeVo.setCreateByName(userService.queryUser(e.getCreateBy()).getFullName());
+            if (StringUtils.isNotEmpty(e.getMaintainer())){
+                JPaasUser jPaasUser = userService.queryUser(e.getMaintainer());
+                if (jPaasUser != null){
+                    albumApproverNodeVo.setMaintainerName(jPaasUser.getFullName());
+                }
+            }
             return albumApproverNodeVo;
         }).collect(Collectors.toList());
         return collect;
@@ -516,10 +524,18 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
      * @return
      */
     public List<AlbumApproverNodeVo> approveFlowsAlbumYelpApprovalNode() {
-        List<AlbumYelpApprovalNode> albumYelpApprovalNodeList = albumYelpApprovalNodeService.findAll(null);
+        String userId = userService.queryLoginUser();
+        List<AlbumYelpApprovalNode> albumYelpApprovalNodeList = albumYelpApprovalNodeService.findAllAlbumApprovalNode(userId);
         List<AlbumApproverNodeVo> collect = albumYelpApprovalNodeList.parallelStream().map(e -> {
             AlbumApproverNodeVo albumApproverNodeVo = new AlbumApproverNodeVo();
             BeanUtils.copyProperties(e, albumApproverNodeVo);
+            albumApproverNodeVo.setCreateByName(userService.queryUser(e.getCreateBy()).getFullName());
+            if (StringUtils.isNotEmpty(e.getMaintainer())){
+                JPaasUser jPaasUser = userService.queryUser(e.getMaintainer());
+                if (jPaasUser != null){
+                    albumApproverNodeVo.setMaintainerName(jPaasUser.getFullName());
+                }
+            }
             return albumApproverNodeVo;
         }).collect(Collectors.toList());
         return collect;

+ 7 - 0
src/main/java/com/redxun/knowledge/album/service/AlbumYelpApprovalNodeServiceImpl.java

@@ -3,11 +3,13 @@ package com.redxun.knowledge.album.service;
 import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
 import com.redxun.common.service.impl.SuperServiceImpl;
+import com.redxun.knowledge.album.entity.dao.AlbumApprovalNode;
 import com.redxun.knowledge.album.entity.dao.AlbumYelpApprovalNode;
 import com.redxun.knowledge.album.mapper.AlbumYelpApprovalNodeMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * [业务--专辑点评审核流程节点表]业务服务类
@@ -29,4 +31,9 @@ public class AlbumYelpApprovalNodeServiceImpl extends SuperServiceImpl<AlbumYelp
     public void deleteAll() {
         albumYelpApprovalNodeMapper.deleteAll();
     }
+
+    public List<AlbumYelpApprovalNode> findAllAlbumApprovalNode(String userId) {
+        List<AlbumYelpApprovalNode> result = albumYelpApprovalNodeMapper.findAllAlbumApprovalNode(userId);
+        return result;
+    }
 }

+ 5 - 0
src/main/resources/mapper/knowledge/album/AlbumApprovalNodeMapper.xml

@@ -53,6 +53,11 @@
 
     </select>
 
+    <select id="findAllAlbumApprovalNode" resultType="com.redxun.knowledge.album.entity.dao.AlbumApprovalNode">
+        select * from KM_ALBUM_APPROVAL_NODE where IS_DEL = 0 and
+            (CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
+    </select>
+
 </mapper>
 
 

+ 13 - 4
src/main/resources/mapper/knowledge/album/AlbumCategoryMapper.xml

@@ -20,7 +20,7 @@
 
     <sql id="COLUMNS">
         PK_ID,PARENT,NAME,GRADE,SORT,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>
 
 
@@ -56,7 +56,7 @@
             <if test="@rx.Ognl@isNotEmpty(params.name)">
                 and instr(NAME,#{params.name}) > 0
             </if>
-            and IS_DEL = 0 and PARENT = '0'
+            and IS_DEL = 0 and PARENT = '0' and (CREATE_BY_ = #{params.userId} or MAINTAINER = #{params.userId})
         </where>
         ORDER BY SORT
     </select>
@@ -69,7 +69,7 @@
             <if test="@rx.Ognl@isNotEmpty(params.name)">
                 and instr(NAME,#{params.name}) > 0
             </if>
-            and IS_DEL = 0 and PARENT = '0'
+            and IS_DEL = 0 and PARENT = '0' and (CREATE_BY_ = #{params.userId} or MAINTAINER = #{params.userId})
         </where>
         ORDER BY SORT
     </select>
@@ -82,7 +82,7 @@
             <if test="@rx.Ognl@isNotEmpty(params.name)">
                 and instr(NAME,#{params.name}) > 0
             </if>
-            and IS_DEL = 0 and PARENT != '0' and GRADE = 2
+            and IS_DEL = 0 and PARENT != '0' and GRADE = 2 and (CREATE_BY_ = #{params.userId} or MAINTAINER = #{params.userId})
         </where>
         ORDER BY SORT
     </select>
@@ -120,6 +120,15 @@
         where PK_ID = #{pkId}
     </update>
 
+    <select id="findAllAlbumCategoryByParent" resultType="com.redxun.knowledge.album.entity.dao.AlbumCategory">
+        SELECT
+        <include refid="COLUMNS"/>
+        FROM KM_ALBUM_CATEGORY
+        where
+        IS_DEL = 0 and PARENT = #{pkId} and (CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
+        ORDER BY SORT
+    </select>
+
 </mapper>
 
 

+ 5 - 0
src/main/resources/mapper/knowledge/album/AlbumYelpApprovalNodeMapper.xml

@@ -42,6 +42,11 @@
         set IS_DEL = 1
     </delete>
 
+    <select id="findAllAlbumApprovalNode" resultType="com.redxun.knowledge.album.entity.dao.AlbumYelpApprovalNode">
+        select * from KM_ALBUM_YELP_NODE where IS_DEL = 0 and
+            (CREATE_BY_ = #{userId} or MAINTAINER = #{userId})
+    </select>
+
 </mapper>