Browse Source

作者:张哲
时间:2023/02/24
类型:优化
描述:里程碑(2)bug修复(地图&专辑模块)

ZizgZh 2 years ago
parent
commit
d234ba6ce3

+ 2 - 0
src/main/java/com/redxun/knowledge/album/entity/consts/AlbumConst.java

@@ -33,4 +33,6 @@ public class AlbumConst {
 
     public static final String YELP_FAIL = "未选择回复的点评";
 
+    public static final String YELP_NO_CONTENT = "未填写点评或回复的内容";
+
 }

+ 1 - 2
src/main/java/com/redxun/knowledge/album/mapper/AlbumInfoMapper.java

@@ -36,12 +36,11 @@ public interface AlbumInfoMapper extends BaseDao<AlbumInfo> {
 
     /**
      * 我的专辑和已发布的专辑
-     * @param page
      * @param params
      * @param params1
      * @return
      */
-    List<AlbumInfo> findAllAlbumInfoByVersionState(IPage page, @Param("params")Map<String, Object> params, @Param("w") Map<String, Object> params1);
+    List<AlbumInfo> findAllAlbumInfoByVersionState(@Param("params")Map<String, Object> params, @Param("w") Map<String, Object> params1);
 
     /**
      * 删除知识专辑

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

@@ -171,7 +171,7 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
                     //已发布的专辑
                     map.put("versionState", 2);
                     queryFilter.setParams(map);
-                    List<AlbumInfo> albumInfoList = albumInfoMapper.findAllAlbumInfoByVersionState(queryFilter.getPage(), queryFilter.getParams(), params);
+                    List<AlbumInfo> albumInfoList = albumInfoMapper.findAllAlbumInfoByVersionState(queryFilter.getParams(), params);
                     if (albumInfoList != null) {
                         ownerIdsList.addAll(albumInfoList);
                     }
@@ -186,12 +186,13 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
                     return page2;
                 case "3":
                     //查询我点评过得所有专辑Id
-                    List<AlbumYelp> albumYelpList = albumYelpService.findAll(new LambdaQueryWrapper<AlbumYelp>().eq(AlbumYelp::getCreateBy, userId).select(AlbumYelp::getAlbumId));
-                    List<AlbumInfo> albumInfos = albumYelpList.parallelStream().distinct().map(albumYelp -> {
+                    List<AlbumYelp> albumYelpList = albumYelpService.findAll(new LambdaQueryWrapper<AlbumYelp>().
+                            eq(AlbumYelp::getCreateBy, userId));
+                    List<AlbumInfo> albumInfos = albumYelpList.parallelStream().map(albumYelp -> {
                         AlbumInfo albumInfo = albumInfoMapper.selectById(albumYelp.getAlbumId());
                         return albumInfo;
                     }).collect(Collectors.toList());
-                    List<AlbumInfoVo> albumInfoVoListYelp = pageInfo(albumInfos.stream().filter(e -> e.getState() == 1).
+                    List<AlbumInfoVo> albumInfoVoListYelp = pageInfo(albumInfos.stream().filter(e -> e.getState() == 1).distinct().
                             sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList()));
                     Page page3 = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), albumInfoVoListYelp);
                     return page3;
@@ -320,7 +321,6 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
      * @return
      */
     public AlbumInfoDetailVo detail(String pkId) {
-        String userId = userService.queryLoginUser();
         AlbumInfoDetailVo albumInfoDetailVo = new AlbumInfoDetailVo();
         AlbumInfo albumInfo = albumInfoMapper.selectById(pkId);
         BeanUtils.copyProperties(albumInfo, albumInfoDetailVo);
@@ -353,26 +353,36 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
         List<AlbumVersion> albumVersions = albumVersionMapper.selectList(queryWrapper);
         //最新版本状态
         albumInfoDetailVo.setVersionState(albumVersions.get(0).getState());
-        albumInfoDetailVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersions.get(0).getState()));
+        if (albumVersions.get(0).getState() == 3){
+            albumInfoDetailVo.setVersionStateName("");
+        } else {
+            albumInfoDetailVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersions.get(0).getState()));
+        }
         //专辑版本集合
         List<AlbumVersionVo> albumVersionVoList = albumVersions.parallelStream().map(albumVersion -> {
             AlbumVersionVo albumVersionVo = new AlbumVersionVo();
             BeanUtils.copyProperties(albumVersion, albumVersionVo);
             //版本状态名称
-            albumVersionVo.setStateName(AlbumVersionEnum.getMessage(albumVersion.getState()));
+            if (albumVersion.getState() == 3){
+                albumVersionVo.setStateName("");
+            } else {
+                albumVersionVo.setStateName(AlbumVersionEnum.getMessage(albumVersion.getState()));
+            }
             return albumVersionVo;
         }).collect(Collectors.toList());
         albumInfoDetailVo.setVersions(albumVersionVoList);
         //专辑详情动作标记
-        long count = albumVersions.stream().filter(e -> e.getState() == 2).count();
+        //审核中版本数量
+        long count1 = albumVersions.stream().filter(e -> e.getState() == 1).count();
+        //生效中版本数量
+        long count2 = albumVersions.stream().filter(e -> e.getState() == 2).count();
         List<String> actionFlag = new ArrayList<>();
         //专辑负责人
-        //&& albumInfo.getOwnerId().equals(userId))
-        if (albumInfo.getState() == 1 && count > 0) {
+        if (albumInfo.getState() == 1 && count2 > 0 && count1 == 0) {
             actionFlag.add("edit");
             actionFlag.add("transfer");
             actionFlag.add("close");
-        } else if (albumInfo.getState() == 0 && count > 0) {
+        } else if (albumInfo.getState() == 0 && count2 > 0 && count1 == 0) {
             actionFlag.add("edit");
             actionFlag.add("transfer");
             actionFlag.add("open");
@@ -554,21 +564,21 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
             if (albumVersion1 != null) {
                 albumInfoDetailPcVo.setSummary(albumVersion1.getSummary());
                 albumInfoDetailPcVo.setVersionId(albumVersion1.getPkId());
-                albumInfoDetailPcVo.setState(albumVersion1.getState());
-                albumInfoDetailPcVo.setStateName(AlbumInfoEnum.getMessage(albumVersion1.getState()));
+                albumInfoDetailPcVo.setVersionState(albumVersion1.getState());
+                albumInfoDetailPcVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersion1.getState()));
             } else if (albumVersion4 != null) {
                 albumInfoDetailPcVo.setSummary(albumVersion4.getSummary());
                 albumInfoDetailPcVo.setVersionId(albumVersion4.getPkId());
-                albumInfoDetailPcVo.setState(albumVersion4.getState());
-                albumInfoDetailPcVo.setStateName(AlbumInfoEnum.getMessage(albumVersion4.getState()));
+                albumInfoDetailPcVo.setVersionState(albumVersion4.getState());
+                albumInfoDetailPcVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersion4.getState()));
             } else {
                 //生效中的专辑
                 AlbumVersion albumVersion2 = albumVersionMapper.
                         selectOne(new QueryWrapper<AlbumVersion>().eq("ALBUM_ID", pkId).eq("STATE", 2));
                 albumInfoDetailPcVo.setSummary(albumVersion2.getSummary());
                 albumInfoDetailPcVo.setVersionId(albumVersion2.getPkId());
-                albumInfoDetailPcVo.setState(albumVersion2.getState());
-                albumInfoDetailPcVo.setStateName(AlbumInfoEnum.getMessage(albumVersion2.getState()));
+                albumInfoDetailPcVo.setVersionState(albumVersion2.getState());
+                albumInfoDetailPcVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersion2.getState()));
             }
             albumInfoDetailPcVo.setShowStatus(1);
             albumInfoDetailPcVo.setOwnerId(albumInfo.getOwnerId());
@@ -587,8 +597,8 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
             }
             albumInfoDetailPcVo.setSummary(albumVersion2.getSummary());
             albumInfoDetailPcVo.setVersionId(albumVersion2.getPkId());
-            albumInfoDetailPcVo.setState(albumVersion2.getState());
-            albumInfoDetailPcVo.setStateName(AlbumInfoEnum.getMessage(albumVersion2.getState()));
+            albumInfoDetailPcVo.setVersionState(albumVersion2.getState());
+            albumInfoDetailPcVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersion2.getState()));
             albumInfoDetailPcVo.setOwnerId(albumInfo.getOwnerId());
             albumInfoDetailPcVo.setShowStatus(0);
             albumInfoDetailPcVo.setActionFlag(new ArrayList<>());

+ 13 - 17
src/main/java/com/redxun/knowledge/album/service/AlbumYelpApproveServiceImpl.java

@@ -63,9 +63,6 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
     @Autowired
     private MessageService messageService;
 
-    @Autowired
-    private ThreadPoolExecutor threadPoolExecutor;
-
     @Override
     public BaseDao<AlbumYelpApprove> getRepository() {
         return albumYelpApproveMapper;
@@ -250,7 +247,7 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
                 //发送站内信
                 AlbumInfo albumInfo = albumInfoMapper.selectById(albumYelpApproveList.get(0).getAlbumId());
                 AlbumYelp albumYelpById = albumYelpMapper.selectById(albumYelpApproveList.get(0).getYelpId());
-                sendMessage(albumYelpApproveList.get(0).getCreateBy(),albumInfo.getName(),albumYelpById.getContent(),albumApprovalRemarkDto.getRemark());
+                sendMessage(albumInfo.getCreateBy(),albumInfo.getName(),albumYelpById.getContent(),albumApprovalRemarkDto.getRemark());
             }
             //如果审核节点是终审节点且专辑审核未通过,修改点评状态为最终驳回
             if (albumYelpApproveList.get(0).getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 0) {
@@ -262,7 +259,7 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
                 //发送站内信
                 AlbumInfo albumInfo = albumInfoMapper.selectById(albumYelpApproveList.get(0).getAlbumId());
                 AlbumYelp albumYelpById = albumYelpMapper.selectById(albumYelpApproveList.get(0).getYelpId());
-                sendMessage(albumYelpApproveList.get(0).getCreateBy(),albumInfo.getName(),albumYelpById.getContent(),albumApprovalRemarkDto.getRemark());
+                sendMessage(albumInfo.getCreateBy(),albumInfo.getName(),albumYelpById.getContent(),albumApprovalRemarkDto.getRemark());
             }
             //如果审核节点是终审节点且专辑审核通过,修改点评状态为最终通过(即审核完成)
             if (albumYelpApproveList.get(0).getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 1){
@@ -292,18 +289,17 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
      * @param createBy,remark,flag
      */
     private void sendMessage(String createBy, String albumName, String yelpContent, String remark) {
-        CompletableFuture.runAsync(() -> {
-            List<OsUserDto> osUserDtoList = new ArrayList<>();
-            //查询用户信息
-            OsUserDto osUserDto = userService.queryOsUserDto(createBy);
-            osUserDtoList.add(osUserDto);
-            // 点评不通过
-            messageService.sendInnerMsg("您提交的申请已被驳回!",
-                    "提交内容:" + albumName + ":" + yelpContent + "<br>" +
-                            "驳回原因:" + remark + "<br>" +
-                            "审核人:" + ContextUtil.getCurrentUser().getFullName() + "<br>" +
-                            "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN), osUserDtoList);
-        },threadPoolExecutor);
+        List<OsUserDto> osUserDtoList = new ArrayList<>();
+        //查询用户信息
+        OsUserDto osUserDto = userService.queryOsUserDto(createBy);
+        osUserDtoList.add(osUserDto);
+        // 点评不通过
+        log.info("当前登录用户 -> {}", ContextUtil.getCurrentUser().getFullName());
+        messageService.sendInnerMsg("您提交的申请已被驳回!",
+                "提交内容:" + albumName + ":" + yelpContent + "<br>" +
+                        "驳回原因:" + remark + "<br>" +
+                        "审核人:" + ContextUtil.getCurrentUser().getFullName() + "<br>" +
+                        "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN), osUserDtoList);
     }
 
     /**

+ 3 - 0
src/main/java/com/redxun/knowledge/album/service/AlbumYelpServiceImpl.java

@@ -176,6 +176,9 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
         if (type == 2 && yelpDto.getYelpId() == null){
             return AlbumConst.YELP_FAIL;
         }
+        if (StringUtils.isEmpty(yelpDto.getContent())){
+            return AlbumConst.YELP_NO_CONTENT;
+        }
         albumYelp.setPkId(IdGenerator.getIdStr());
         BeanUtils.copyProperties(yelpDto, albumYelp);
         albumYelp.setUpdateBy(userService.queryLoginUser());

+ 5 - 0
src/main/java/com/redxun/knowledge/map/mapper/MapContentMapper.java

@@ -11,4 +11,9 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface MapContentMapper extends BaseDao<MapContent> {
 
+    /**
+     * 根据路径删除数据
+     * @param pkId
+     */
+    void deleteByRouteId(String pkId);
 }

+ 6 - 0
src/main/java/com/redxun/knowledge/map/mapper/MapLearningMapper.java

@@ -16,4 +16,10 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface MapLearningMapper extends BaseDao<MapLearning> {
+
+    /**
+     * 根据路径Id清除数据
+     * @param pkId
+     */
+    void deleteByRouteId(String pkId);
 }

+ 8 - 0
src/main/java/com/redxun/knowledge/map/mapper/MapMapper.java

@@ -34,4 +34,12 @@ public interface MapMapper extends BaseDao<Map> {
      * @return
      */
     IPage<OsUserVo> queryGroupUsers(IPage page, @Param("w") java.util.Map<String, String> params);
+
+    /**
+     * 查询部门及下级部门
+     * @param userDeptId
+     * @param approverId
+     * @return
+     */
+    Integer selectAllByDeptId(@Param("userDeptId") String userDeptId, @Param("approverId") String approverId);
 }

+ 19 - 7
src/main/java/com/redxun/knowledge/map/service/MapServiceImpl.java

@@ -151,8 +151,9 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
                         mapContentMapper.insert(mapContent);
                     });
                 } else {
-                    mapContentMapper.deleteBatchIds(Arrays.asList(mapById.getPkId()));
-                    mapLearningMapper.deleteBatchIds(Arrays.asList(mapById.getPkId()));
+                    //清除路径下的信息
+                    mapContentMapper.deleteByRouteId(mapRoute.getPkId());
+                    mapLearningMapper.deleteByRouteId(mapRoute.getPkId());
                 }
             });
         } else {
@@ -231,6 +232,10 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
                                 if (attachmentName != null){
                                     String[] strArray = attachmentName.split("\\.");
                                     int suffixIndex = strArray.length - 1;
+                                    //如果是word文件,后缀名修改为word
+                                    if(strArray[suffixIndex].equals("doc") || strArray[suffixIndex].equals("docx")){
+                                        strArray[suffixIndex] = "word";
+                                    }
                                     mapContentVo.setAttachmentType(strArray[suffixIndex]);
                                 }
                                 //添加分类信息
@@ -283,7 +288,7 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
      * @return
      */
     public List<java.util.Map<String, Object>> listOfType(Integer type) {
-        List<Map> mapList = mapMapper.selectList(new LambdaQueryWrapper<Map>().eq(Map::getType, type).orderByAsc(Map::getCreateTime));
+        List<Map> mapList = mapMapper.selectList(new LambdaQueryWrapper<Map>().eq(Map::getType, type).orderByDesc(Map::getCreateTime));
         List<java.util.Map<String, Object>> listResult = new ArrayList<>();
         mapList.forEach(map -> {
             java.util.Map<String, Object> mapResult = new HashMap<>();
@@ -451,9 +456,16 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
         //当前登录用户的部门Id
         String deptId = userService.queryLoginUserDeptId();
         //地图对应的部门权限
-        String[] groupIds = map.getGroupId().split(",");
+        Integer count = 0;
+        List<String> groupIds = Arrays.stream(map.getGroupId().split(",")).collect(Collectors.toList());
+        for (String groupId : groupIds) {
+            count = mapMapper.selectAllByDeptId(deptId, groupId);
+            if (count > 0) {
+                break;
+            }
+        }
         //包含登录人的部门
-        if (Arrays.asList(groupIds).contains(deptId)) {
+        if (count > 0) {
             if (map.getGroupPurview() == 1) {
                 return true;
             } else {
@@ -461,8 +473,8 @@ public class MapServiceImpl extends SuperServiceImpl<MapMapper, Map> implements
                 queryWrapper.eq("MAP_ID", map.getPkId());
                 queryWrapper.eq("USER_ID", userService.queryLoginUser());
                 // 查询结果>0,说明该员工可见
-                Integer count = mapGroupPurviewUserMapper.selectCount(queryWrapper);
-                return count > 0;
+                Integer countPurview = mapGroupPurviewUserMapper.selectCount(queryWrapper);
+                return countPurview > 0;
             }
         }
         return false;

+ 2 - 2
src/main/resources/bootstrap.yml

@@ -2,7 +2,7 @@ server:
   port: 7206
 spring:
   application:
-    name: jpaas-knowledges
+    name: jpaas-knowledge
   profiles:
     active: dev
   aop:
@@ -28,5 +28,5 @@ management:
     tags:
       application: ${spring.application.name}
 nacos:
-  address: ${my_nacos.address:10.5.100.101:8848}
+  address: ${my_nacos.address:10.5.0.230:8848}
   namespace: ${my_nacos.namespace:local}

+ 1 - 1
src/main/resources/mapper/knowledge/album/AlbumInfoMapper.xml

@@ -81,7 +81,7 @@
             ORDER BY ai.${w.orderBySql},ai.CREATE_TIME_ DESC
         </if>
         <if test="@rx.Ognl@isEmpty(params.orderBySql)">
-            ORDER BY ai.CREATE_TIME_ DESC
+            ORDER BY ai.STATE DESC, ai.CREATE_TIME_ DESC
         </if>
     </select>
 

+ 6 - 0
src/main/resources/mapper/knowledge/map/MapContentMapper.xml

@@ -55,6 +55,12 @@
         </foreach>
     </delete>
 
+    <delete id="deleteByRouteId">
+        update KM_MAP_CONTENT
+        set IS_DEL = 1
+        WHERE ROUTE_ID = #{routeId}
+    </delete>
+
 </mapper>
 
 

+ 6 - 0
src/main/resources/mapper/knowledge/map/MapLearningMapper.xml

@@ -33,6 +33,12 @@
         </foreach>
     </delete>
 
+    <delete id="deleteByRouteId">
+        update KM_MAP_LEARNING
+        set IS_DEL = 1
+        WHERE ROUTE_ID = #{routeId}
+    </delete>
+
 </mapper>
 
 

+ 16 - 5
src/main/resources/mapper/knowledge/map/MapMapper.xml

@@ -113,11 +113,11 @@
             kmr.PK_ID as routeId,kmr.NAME as routeName,kmr.sort as routeSort,
             kmc.PK_ID as contentId,kmc.SORT as contentSort,kmc.TYPE as contentType,kmc.*
         from KM_MAP km
-        join KM_MAP_ROUTE kmr
-        on km.PK_ID = kmr.MAP_ID
-        join KM_MAP_CONTENT kmc
-        on kmr.PK_ID = kmc.ROUTE_ID
-        where km.PK_ID = #{pkId} and km.IS_DEL = 0 and kmr.IS_DEL = 0 and kmc.IS_DEL = 0
+        left join KM_MAP_ROUTE kmr
+        on km.PK_ID = kmr.MAP_ID and kmr.IS_DEL = 0
+        left join KM_MAP_CONTENT kmc
+        on kmr.PK_ID = kmc.ROUTE_ID and kmc.IS_DEL = 0
+        where km.PK_ID = #{pkId} and km.IS_DEL = 0
         order by kmr.sort,kmc.sort
     </select>
 
@@ -143,6 +143,17 @@
         </if>
     </select>
 
+    <select id="selectAllByDeptId" resultType="integer">
+        SELECT count(*)
+        from LEARNING_USER_DEV.OS_GROUP
+        where
+                #{userDeptId} in (SELECT os.GROUP_ID_ FROM LEARNING_USER_DEV.OS_GROUP os
+        START WITH os.GROUP_ID_ = #{approverId}
+        CONNECT BY PRIOR os.GROUP_ID_ = os.PARENT_ID_
+            )
+
+    </select>
+
 </mapper>