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

作者:张哲
时间:2023/02/16
类型:优化
描述:里程碑(2)管理端移除知识,点评等信息

ZizgZh 2 жил өмнө
parent
commit
b108609026

+ 8 - 0
src/main/java/com/redxun/knowledge/album/controller/AlbumInfoController.java

@@ -114,6 +114,14 @@ public class AlbumInfoController extends BaseController<AlbumInfo> {
         return jsonResult.setData(transferOwnerDto.getPkId());
     }
 
+    @ApiOperation("移除目录知识和删除点评和回复")
+    @PostMapping("removeKnowledgeAndYelp")
+    public JsonResult removeKnowledgeAndYelp(@RequestBody RemoveKnowledgeAndYelpDto removeKnowledgeAndYelpDto){
+        JsonResult jsonResult = JsonResult.getSuccessResult("");
+        albumInfoService.removeKnowledgeAndYelp(removeKnowledgeAndYelpDto);
+        return jsonResult.setMessage(AlbumConst.OPERATOR_SUCCESS);
+    }
+
     @ApiOperation("批量更新审核流程节点数据")
     @PostMapping("batchUpdateApproveFlows")
     public JsonResult batchUpdateApproveFlows(@RequestBody List<AlbumApprovalNodeDto> albumApprovalNodeDtoList){

+ 34 - 4
src/main/java/com/redxun/knowledge/album/controller/AlbumYelpController.java

@@ -1,8 +1,14 @@
 package com.redxun.knowledge.album.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.annotation.ClassDefine;
 import com.redxun.common.base.db.BaseService;
+import com.redxun.common.base.entity.JsonPageResult;
 import com.redxun.common.base.entity.JsonResult;
+import com.redxun.common.base.entity.QueryData;
+import com.redxun.common.base.search.QueryFilter;
+import com.redxun.common.base.search.QueryFilterBuilder;
+import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.album.entity.dao.AlbumYelp;
 import com.redxun.knowledge.album.entity.vo.AlbumYelpInfoVo;
 import com.redxun.knowledge.album.entity.vo.AlbumYelpListPcVo;
@@ -12,11 +18,11 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 @Slf4j
@@ -64,5 +70,29 @@ public class AlbumYelpController extends BaseController<AlbumYelp> {
         return jsonResult.setData(albumYelpListPcVo);
     }
 
+    @ApiOperation("PC端获取点评回复列表")
+    @PostMapping("queryComment")
+    public JsonPageResult queryComment(@RequestBody QueryData queryData) throws Exception {
+        JsonPageResult jsonResult = JsonPageResult.getSuccess("返回数据成功!");
+        try {
+            ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+            HttpServletRequest request = servletRequestAttributes.getRequest();
+            String url = request.getRequestURI();
+            long start = System.currentTimeMillis();
+            QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
+            this.handleFilter(filter);
+            IPage page = albumYelpService.queryComment(filter);
+            this.handlePage(page);
+            jsonResult.setPageData(page);
+            this.logger.info("url:" + url + ",escape time:" + (System.currentTimeMillis() - start) + "ms");
+        } catch (Exception var10) {
+            jsonResult.setSuccess(Boolean.FALSE);
+            this.logger.error(ExceptionUtil.getExceptionMessage(var10));
+            jsonResult.setMessage(ExceptionUtil.getExceptionMessage(var10));
+        }
+
+        return jsonResult;
+    }
+
 }
 

+ 36 - 0
src/main/java/com/redxun/knowledge/album/entity/dto/RemoveKnowledgeAndYelpDto.java

@@ -0,0 +1,36 @@
+package com.redxun.knowledge.album.entity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名: RemoveKnowledgeAndYelpDto
+ * 作者: Zizg
+ * 时间: 2023/2/17
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@ApiModel("移除目录知识和删除点评和回复")
+@Data
+public class RemoveKnowledgeAndYelpDto implements Serializable {
+
+    @ApiModelProperty("专辑Id")
+    private String pkId;
+
+    @ApiModelProperty("版本Id")
+    private String versionId;
+
+    @ApiModelProperty("目录Id和知识集合")
+    private Map<String,List<String>> catalogueIdAndKnowledgeList;
+
+    @ApiModelProperty("点评Id")
+    private List<String> yelps;
+}

+ 7 - 0
src/main/java/com/redxun/knowledge/album/mapper/AlbumCatalogueKnowledgeMapper.java

@@ -18,4 +18,11 @@ public interface AlbumCatalogueKnowledgeMapper extends BaseDao<AlbumCatalogueKno
      * @param albumCatalogueIdList
      */
     void deleteByCatalogueId(@Param("ids") List<String> albumCatalogueIdList);
+
+    /**
+     * 根据目录Id批量删除指定知识
+     * @param k
+     * @param v
+     */
+    void deleteByCatalogueIds(@Param("catalogueId") String k, @Param("knowledgeIdList") List<String> v);
 }

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

@@ -22,4 +22,10 @@ public interface AlbumYelpApproveMapper extends BaseDao<AlbumYelpApprove> {
     void deleteByAlbumId(String ids);
 
     List<AlbumYelpApprove> findAllAlbumYelpApprove(@Param("params") Map<String, Object> params, @Param("w") Map<String, Object> order);
+
+    /**
+     * 清除审批记录表
+     * @param yelp
+     */
+    void deleteByYelpId(@Param("yelp") List<String> yelp);
 }

+ 12 - 0
src/main/java/com/redxun/knowledge/album/mapper/AlbumYelpMapper.java

@@ -54,4 +54,16 @@ public interface AlbumYelpMapper extends BaseDao<AlbumYelp> {
      * @return
      */
     List<AlbumYelp> findListAllRepliesById(@Param("albumId")String albumId,@Param("userId") String userId);
+
+    /**
+     * 清除下级回复
+     * @param yelp
+     */
+    void deleteByYelpId(String yelp);
+
+    /**
+     * 清除一级点评
+     * @param yelp
+     */
+    void deleteByIds(String yelp);
 }

+ 55 - 9
src/main/java/com/redxun/knowledge/album/service/AlbumInfoServiceImpl.java

@@ -105,7 +105,7 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
     @Transactional(rollbackFor = Exception.class)
     public String create(AlbumInfoDto albumInfoDto) {
         AlbumInfo albumInfo = new AlbumInfo();
-        BeanUtils.copyProperties(albumInfoDto,albumInfo);
+        BeanUtils.copyProperties(albumInfoDto, albumInfo);
         albumInfo.setPkId(IdGenerator.getIdStr());
         String userId = userService.queryLoginUser();
         // 获取当前登录人用户信息
@@ -157,16 +157,16 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
                 case "2":
                     //我的专辑
                     QueryWrapper<AlbumInfo> queryWrapper = new QueryWrapper<>();
-                    queryWrapper.eq("OWNER_ID",userService.queryLoginUser());
-                    queryWrapper.eq("STATE",1);
-                    queryWrapper.like(StringUtils.isNotEmpty((String) queryFilter.getParams().get("name")),"NAME",(String) queryFilter.getParams().get("name"));
+                    queryWrapper.eq("OWNER_ID", userService.queryLoginUser());
+                    queryWrapper.eq("STATE", 1);
+                    queryWrapper.like(StringUtils.isNotEmpty((String) queryFilter.getParams().get("name")), "NAME", (String) queryFilter.getParams().get("name"));
                     queryWrapper.orderByDesc("CREATE_TIME_");
                     List<AlbumInfo> ownerIdsList = albumInfoMapper.selectList(queryWrapper);
                     //已发布的专辑
                     map.put("versionState", 2);
                     queryFilter.setParams(map);
                     List<AlbumInfo> albumInfoList = albumInfoMapper.findAllAlbumInfoByVersionState(queryFilter.getPage(), queryFilter.getParams(), params);
-                    if (albumInfoList != null){
+                    if (albumInfoList != null) {
                         ownerIdsList.addAll(albumInfoList);
                     }
                     List<AlbumInfo> collect = ownerIdsList.stream().distinct().collect(Collectors.toList());
@@ -176,7 +176,7 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
                 case "3":
                     // TODO: 2023/2/3  我点评过的专辑
                     map.put("scope", 3);
-                    map.put("scope","3");
+                    map.put("scope", "3");
                     break;
             }
         }
@@ -189,10 +189,11 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
 
     /**
      * 分页方法封装
+     *
      * @param collect
      * @return
      */
-    private List<AlbumInfoVo> pageInfo(List<AlbumInfo> collect){
+    private List<AlbumInfoVo> pageInfo(List<AlbumInfo> collect) {
         String userId = userService.queryLoginUser();
         List<AlbumInfoVo> albumInfoVoList = collect.parallelStream().map(e -> {
             AlbumInfoVo albumInfoVo = new AlbumInfoVo();
@@ -276,9 +277,9 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
                 }
                 //动作标记PC端
                 List<String> actionFlag = new ArrayList<>();
-                if (albumVersions.get(0).getState() == 2 && e.getOwnerId().equals(userId)){
+                if (albumVersions.get(0).getState() == 2 && e.getOwnerId().equals(userId)) {
                     actionFlag.add("edit");
-                } else if(albumVersions.get(0).getState() == 4 && e.getOwnerId().equals(userId)){
+                } else if (albumVersions.get(0).getState() == 4 && e.getOwnerId().equals(userId)) {
                     actionFlag.add("delete");
                     actionFlag.add("edit");
                 }
@@ -730,6 +731,7 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
 
     /**
      * 删除知识专辑
+     *
      * @param ids
      * @return
      */
@@ -752,4 +754,48 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
         albumYelpApproveService.deleteByAlbumId(ids);
         return AlbumConst.DEL_SUCCESS;
     }
+
+    /**
+     * 移除目录知识和删除点评和回复
+     *
+     * @param removeKnowledgeAndYelpDto
+     */
+    public void removeKnowledgeAndYelp(RemoveKnowledgeAndYelpDto removeKnowledgeAndYelpDto) {
+        //删除点评记录(如果是一级点评,则对应的回复一起删除)
+        if (CollectionUtils.isNotEmpty(removeKnowledgeAndYelpDto.getYelps())) {
+            List<String> yelps = removeKnowledgeAndYelpDto.getYelps();
+            yelps.stream().forEach(yelp -> {
+                //一级点评
+                AlbumYelp albumYelp = albumYelpService.get(yelp);
+                if (albumYelp.getType() == 1) {
+                    //查询下级回复记录
+                    List<AlbumYelp> albumYelpList = albumYelpService.findAll(new LambdaQueryWrapper<AlbumYelp>().
+                            eq(AlbumYelp::getYelpId, yelp));
+                    //收集Id
+                    List<String> idList = albumYelpList.parallelStream().map(AlbumYelp::getPkId).collect(Collectors.toList());
+                    //清除下级回复
+                    albumYelpService.deleteByYelpId(yelp);
+                    //清除自己
+                    albumYelpService.deleteById(yelp);
+                    //清除审批记录表
+                    idList.add(yelp);
+                    albumYelpApproveService.deleteByYelpId(idList);
+                } else {
+                    //清除自己
+                    albumYelpService.deleteById(yelp);
+                    //清除审批记录表
+                    List<String> ids = new ArrayList<>();
+                    ids.add(yelp);
+                    albumYelpApproveService.deleteByYelpId(ids);
+                }
+            });
+        }
+        //清除目录表中知识
+        Map<String, List<String>> catalogueIdAndKnowledgeList = removeKnowledgeAndYelpDto.getCatalogueIdAndKnowledgeList();
+        if (catalogueIdAndKnowledgeList != null) {
+            catalogueIdAndKnowledgeList.forEach((k, v) ->
+                    albumCatalogueKnowledgeMapper.deleteByCatalogueIds(k, v)
+            );
+        }
+    }
 }

+ 8 - 0
src/main/java/com/redxun/knowledge/album/service/AlbumYelpApproveServiceImpl.java

@@ -296,4 +296,12 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
 
 
     }
+
+    /**
+     * 清除审批记录表
+     * @param yelp
+     */
+    public void deleteByYelpId(List<String> yelp) {
+        albumYelpApproveMapper.deleteByYelpId(yelp);
+    }
 }

+ 48 - 13
src/main/java/com/redxun/knowledge/album/service/AlbumYelpServiceImpl.java

@@ -121,19 +121,6 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
         }
     }
 
-    private void replyCount(AlbumYelpListPcVo albumYelpListPcVoParent,List<AlbumYelpListPcVo> replies){
-        if (replies.size() == 0) {
-            albumYelpListPcVoParent.setReplyCount(0);
-            albumYelpListPcVoParent.setReplies(null);
-        } else if (replies.size() >= 2){
-            albumYelpListPcVoParent.setReplyCount(replies.size());
-            albumYelpListPcVoParent.setReplies(replies.stream().limit(2).collect(Collectors.toList()));
-        } else {
-            albumYelpListPcVoParent.setReplyCount(replies.size());
-            albumYelpListPcVoParent.setReplies(replies);
-        }
-    }
-
     /**
      * 根据专辑Id删除点评信息
      *
@@ -362,4 +349,52 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
         }).collect(Collectors.toList());
         return albumYelpListPcVoList;
     }
+
+    /**
+     * 下级点评数据封装
+     * @param albumYelpListPcVoParent
+     * @param replies
+     */
+    private void replyCount(AlbumYelpListPcVo albumYelpListPcVoParent,List<AlbumYelpListPcVo> replies){
+        if (replies.size() == 0) {
+            albumYelpListPcVoParent.setReplyCount(0);
+            albumYelpListPcVoParent.setReplies(null);
+        } else if (replies.size() >= 2){
+            albumYelpListPcVoParent.setReplyCount(replies.size());
+            albumYelpListPcVoParent.setReplies(replies.stream().limit(2).collect(Collectors.toList()));
+        } else {
+            albumYelpListPcVoParent.setReplyCount(replies.size());
+            albumYelpListPcVoParent.setReplies(replies);
+        }
+    }
+
+    /**
+     * PC端获取点评回复列表
+     * @param queryFilter
+     * @return
+     */
+    public IPage queryComment(QueryFilter queryFilter) {
+        //获取请求参数
+        String userId = userService.queryLoginUser();
+        Map<String, Object> params = queryFilter.getParams();
+        String albumId = (String) params.get("albumId");
+        String type = (String) params.get("type");
+
+        return null;
+    }
+
+    /**
+     * 清除下级回复
+     */
+    public void deleteByYelpId(String yelp) {
+        albumYelpMapper.deleteByYelpId(yelp);
+    }
+
+    /**
+     * 清除一级点评
+     * @param yelp
+     */
+    public void deleteById(String yelp) {
+        albumYelpMapper.deleteByIds(yelp);
+    }
 }

+ 9 - 0
src/main/resources/mapper/knowledge/album/AlbumCatalogueKnowledgeMapper.xml

@@ -41,6 +41,15 @@
         </foreach>
     </delete>
 
+    <delete id="deleteByCatalogueIds">
+        update km_album_catalogue_knowledge
+        set IS_DEL = 1
+        where CATALOGUE_ID = #{catalogueId} and KNOWLEDGE_ID in
+        <foreach collection="knowledgeIdList" open="(" close=")" separator="," item="id">
+            #{id}
+        </foreach>
+    </delete>
+
 </mapper>
 
 

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

@@ -52,10 +52,19 @@
 
     <delete id="deleteByAlbumId">
         update KM_ALBUM_YELP_APPROVE
-        set IS_DEL = 0
+        set IS_DEL = 1
         where ALBUM_ID = #{albumId}
     </delete>
 
+    <delete id="deleteByYelpId">
+        update KM_ALBUM_YELP_APPROVE
+        set IS_DEL = 1
+        where YELP_ID in
+        <foreach collection="yelp" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+
     <resultMap id="findAllAlbumYelpApprove" type="com.redxun.knowledge.album.entity.dao.AlbumYelpApprove" autoMapping="true">
         <id column="approverId" property="pkId"/>
         <result column="approveNodeName" property="name"/>

+ 12 - 0
src/main/resources/mapper/knowledge/album/AlbumYelpMapper.xml

@@ -93,6 +93,18 @@
         order by CREATE_TIME_
     </select>
 
+    <delete id="deleteByYelpId">
+        update KM_ALBUM_YELP
+        set IS_DEL = 1
+        where YELP_ID = #{pkId}
+    </delete>
+
+    <delete id="deleteByIds">
+        update KM_ALBUM_YELP
+        set IS_DEL = 1
+        where PK_ID = #{pkId}
+    </delete>
+
 
 </mapper>