Pārlūkot izejas kodu

修改文件收藏相关接口

wukai 1 gadu atpakaļ
vecāks
revīzija
0313e7006f

+ 8 - 5
doc-biz/src/main/java/com/doc/biz/controller/DocDirController.java

@@ -4,10 +4,7 @@ import com.doc.biz.domain.DocDir;
 import com.doc.biz.domain.DocDirUser;
 import com.doc.biz.domain.DocInfo;
 import com.doc.biz.domain.DocSpace;
-import com.doc.biz.service.IDocDirService;
-import com.doc.biz.service.IDocDirUserService;
-import com.doc.biz.service.IDocInfoService;
-import com.doc.biz.service.IDocSpaceService;
+import com.doc.biz.service.*;
 import com.doc.biz.vo.TreeVO;
 import com.doc.common.annotation.Log;
 import com.doc.common.constant.Constants;
@@ -42,6 +39,8 @@ public class DocDirController extends BaseController {
     private IDocSpaceService spaceService;
     @Resource
     private IDocDirUserService dirUserService;
+    @Resource
+    private IDocFavoriteService favoriteService;
 
     /**
      * 获取顶层目录
@@ -283,6 +282,10 @@ public class DocDirController extends BaseController {
         if (list.size() > 0) {
             return error("目录不为空,无法删除!");
         }
-        return toAjax(docDirService.deleteDocDirByDirId(dirId));
+
+        int i = docDirService.deleteDocDirByDirId(dirId);
+        //删除收藏记录
+        favoriteService.delete("Y", dirId);
+        return toAjax(i);
     }
 }

+ 4 - 1
doc-biz/src/main/java/com/doc/biz/controller/DocFavoriteController.java

@@ -9,6 +9,7 @@ import com.doc.common.core.controller.BaseController;
 import com.doc.common.core.domain.AjaxResult;
 import com.doc.common.core.page.TableDataInfo;
 import com.doc.common.enums.BusinessType;
+import com.doc.common.utils.SecurityUtils;
 import com.doc.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -57,6 +58,7 @@ public class DocFavoriteController extends BaseController {
     public List<DocFavorite> listByLabelId(@ApiParam(value = "标签ID", required = true) @PathVariable Long labelId) {
         DocFavorite docFavorite = new DocFavorite();
         docFavorite.setLabelId(labelId);
+        docFavorite.setOwner(SecurityUtils.getUserId());
         List<DocFavorite> list = docFavoriteService.selectDocFavoriteList(docFavorite);
         for (DocFavorite favorite : list) {
             if ("Y".equals(favorite.getIsFolder())) {
@@ -94,11 +96,12 @@ public class DocFavoriteController extends BaseController {
     /**
      * 新增文件收藏
      */
-    @ApiOperation("新增文件收藏")
+    @ApiOperation("添加收藏")
     //@PreAuthorize("@ss.hasPermi('biz:favorite:add')")
     @Log(title = "文件收藏", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody DocFavorite docFavorite) {
+        docFavorite.setOwner(SecurityUtils.getUserId());
         return toAjax(docFavoriteService.insertDocFavorite(docFavorite));
     }
 

+ 6 - 5
doc-biz/src/main/java/com/doc/biz/controller/DocInfoController.java

@@ -3,10 +3,7 @@ package com.doc.biz.controller;
 import com.doc.biz.domain.DocDir;
 import com.doc.biz.domain.DocInfo;
 import com.doc.biz.domain.DocSpace;
-import com.doc.biz.service.IDocDirService;
-import com.doc.biz.service.IDocInfoService;
-import com.doc.biz.service.IEsDocInfoService;
-import com.doc.biz.service.IMongoService;
+import com.doc.biz.service.*;
 import com.doc.biz.vo.DocInfoVO;
 import com.doc.biz.vo.DocumentVO;
 import com.doc.common.annotation.Log;
@@ -56,6 +53,8 @@ public class DocInfoController extends BaseController {
     private EsConfig esConfig;
     @Resource
     private IEsDocInfoService esDocInfoService;
+    @Resource
+    private IDocFavoriteService favoriteService;
 
     /**
      * 文件上传
@@ -335,14 +334,16 @@ public class DocInfoController extends BaseController {
             //删除mongo记录
             mongoService.removeFile(info.getFileId());
 
+            //删除ES记录
             try {
-                //删除ES记录
                 String indexName = "docs_" + info.getSpaceId();
                 esConfig.setIndexName(indexName);
                 esDocInfoService.deleteById(docId);
             } catch (NoSuchIndexException e) {
                 //不用管,表示没这个索引
             }
+            //删除收藏记录
+            favoriteService.delete("N", docId);
         }
         return toAjax(docInfoService.deleteDocInfoByDocIds(docIds));
     }

+ 3 - 0
doc-biz/src/main/java/com/doc/biz/domain/DocDir.java

@@ -63,6 +63,9 @@ public class DocDir extends TreeEntity {
     @ApiModelProperty("目录路径")
     private String dirPath;
 
+    @ApiModelProperty("是否收藏 Y/N")
+    private String isFavorite;
+
     @ApiModelProperty("目录人员")
     @TableField(exist = false)
     private List<DocDirUser> users;

+ 2 - 0
doc-biz/src/main/java/com/doc/biz/domain/DocInfo.java

@@ -63,6 +63,8 @@ public class DocInfo extends BaseEntity {
      */
     @ApiModelProperty("文件类型")
     private String fileType;
+    @ApiModelProperty("是否收藏 Y/N")
+    private String isFavorite;
 
     @ApiModelProperty("是否协作文件")
     @TableField(exist = false)

+ 7 - 0
doc-biz/src/main/java/com/doc/biz/service/IDocFavoriteService.java

@@ -58,4 +58,11 @@ public interface IDocFavoriteService {
      * @return 结果
      */
     public int deleteDocFavoriteByFavoriteId(Long favoriteId);
+
+    /**
+     * 删除收藏记录
+     * @param isFolder 是否文件夹
+     * @param realId 关联ID
+     */
+    void delete(String isFolder, Long realId);
 }

+ 24 - 1
doc-biz/src/main/java/com/doc/biz/service/impl/DocDirServiceImpl.java

@@ -1,11 +1,14 @@
 package com.doc.biz.service.impl;
 
 import com.doc.biz.domain.DocDir;
+import com.doc.biz.domain.DocFavorite;
 import com.doc.biz.domain.DocSpace;
 import com.doc.biz.mapper.DocDirMapper;
 import com.doc.biz.service.IDocDirService;
+import com.doc.biz.service.IDocFavoriteService;
 import com.doc.biz.service.IDocSpaceService;
 import com.doc.common.utils.DateUtils;
+import com.doc.common.utils.SecurityUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -26,6 +29,8 @@ public class DocDirServiceImpl implements IDocDirService {
     private DocDirMapper docDirMapper;
     @Resource
     private IDocSpaceService docSpaceService;
+    @Resource
+    private IDocFavoriteService favoriteService;
 
     /**
      * 查询文档目录管理
@@ -46,7 +51,25 @@ public class DocDirServiceImpl implements IDocDirService {
      */
     @Override
     public List<DocDir> selectDocDirList(DocDir docDir) {
-        return docDirMapper.selectDocDirList(docDir);
+        List<DocDir> list = docDirMapper.selectDocDirList(docDir);
+
+        DocFavorite favorite = new DocFavorite();
+        favorite.setOwner(SecurityUtils.getUserId());
+        favorite.setIsFolder("Y");
+
+        List<Long> favorites = new ArrayList<>();
+        favoriteService.selectDocFavoriteList(favorite).forEach(f -> {
+            favorites.add(f.getRelaId());
+        });
+
+        list.forEach(d -> {
+            if (favorites.contains(d.getDirId())) {
+                d.setIsFavorite("Y");
+            } else {
+                d.setIsFavorite("N");
+            }
+        });
+        return list;
     }
 
     /**

+ 15 - 0
doc-biz/src/main/java/com/doc/biz/service/impl/DocFavoriteServiceImpl.java

@@ -1,5 +1,6 @@
 package com.doc.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doc.biz.domain.DocFavorite;
 import com.doc.biz.mapper.DocFavoriteMapper;
 import com.doc.biz.service.IDocFavoriteService;
@@ -87,4 +88,18 @@ public class DocFavoriteServiceImpl implements IDocFavoriteService {
     public int deleteDocFavoriteByFavoriteId(Long favoriteId) {
         return docFavoriteMapper.deleteDocFavoriteByFavoriteId(favoriteId);
     }
+
+    /**
+     * 删除收藏记录
+     *
+     * @param isFolder 是否文件夹
+     * @param realId   关联ID
+     */
+    @Override
+    public void delete(String isFolder, Long realId) {
+        QueryWrapper<DocFavorite> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_folder", isFolder);
+        queryWrapper.eq("rela_id", realId);
+        docFavoriteMapper.delete(queryWrapper);
+    }
 }

+ 50 - 5
doc-biz/src/main/java/com/doc/biz/service/impl/DocInfoServiceImpl.java

@@ -1,14 +1,19 @@
 package com.doc.biz.service.impl;
 
+import com.doc.biz.domain.DocFavorite;
 import com.doc.biz.domain.DocInfo;
 import com.doc.biz.mapper.DocInfoMapper;
+import com.doc.biz.service.IDocFavoriteService;
 import com.doc.biz.service.IDocInfoService;
+import com.doc.biz.service.IDocSpaceService;
 import com.doc.biz.service.IElasticSearchService;
 import com.doc.common.utils.DateUtils;
+import com.doc.common.utils.SecurityUtils;
 import com.doc.common.utils.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -23,6 +28,10 @@ public class DocInfoServiceImpl implements IDocInfoService {
     private DocInfoMapper docInfoMapper;
     @Resource
     private IElasticSearchService elasticSearchService;
+    @Resource
+    private IDocSpaceService spaceService;
+    @Resource
+    private IDocFavoriteService favoriteService;
 
     /**
      * 查询文件基本信息表
@@ -43,7 +52,26 @@ public class DocInfoServiceImpl implements IDocInfoService {
      */
     @Override
     public List<DocInfo> selectDocInfoList(DocInfo docInfo) {
-        return docInfoMapper.selectDocInfoList(docInfo);
+        List<DocInfo> list = docInfoMapper.selectDocInfoList(docInfo);
+
+        List<Long> favorites = new ArrayList<>();
+        DocFavorite favorite = new DocFavorite();
+        favorite.setOwner(SecurityUtils.getUserId());
+        favorite.setIsFolder("N");
+
+        favoriteService.selectDocFavoriteList(favorite).forEach(f -> {
+            favorites.add(f.getRelaId());
+        });
+
+        list.forEach(i -> {
+            if (favorites.contains(i.getDocId())) {
+                i.setIsFavorite("Y");
+            }else {
+                i.setIsFavorite("N");
+            }
+        });
+
+        return list;
     }
 
     /**
@@ -56,9 +84,9 @@ public class DocInfoServiceImpl implements IDocInfoService {
     public int insertDocInfo(DocInfo docInfo) {
         docInfo.setCreateTime(DateUtils.getNowDate());
         int i = docInfoMapper.insertDocInfo(docInfo);
-
         elasticSearchService.save(docInfo);
-
+        //改变空间容量
+        spaceService.updateUsedCap(docInfo.getSpaceId());
         return i;
     }
 
@@ -76,6 +104,8 @@ public class DocInfoServiceImpl implements IDocInfoService {
         if (StringUtils.isNotEmpty(docInfo.getFileId())) {
             elasticSearchService.save(docInfo);
         }
+        //改变空间容量
+        spaceService.updateUsedCap(docInfo.getSpaceId());
 
         return i;
     }
@@ -88,7 +118,17 @@ public class DocInfoServiceImpl implements IDocInfoService {
      */
     @Override
     public int deleteDocInfoByDocIds(Long[] docIds) {
-        return docInfoMapper.deleteDocInfoByDocIds(docIds);
+        List<Long> spaceIds = new ArrayList<>();
+        for (Long docId : docIds) {
+            DocInfo docInfo = selectDocInfoByDocId(docId);
+            spaceIds.add(docInfo.getSpaceId());
+        }
+        int i = docInfoMapper.deleteDocInfoByDocIds(docIds);
+        //改变空间容量
+        for (Long spaceId : spaceIds) {
+            spaceService.updateUsedCap(spaceId);
+        }
+        return i;
     }
 
     /**
@@ -99,6 +139,11 @@ public class DocInfoServiceImpl implements IDocInfoService {
      */
     @Override
     public int deleteDocInfoByDocId(Long docId) {
-        return docInfoMapper.deleteDocInfoByDocId(docId);
+        DocInfo docInfo = selectDocInfoByDocId(docId);
+        int i = docInfoMapper.deleteDocInfoByDocId(docId);
+        //改变空间容量
+        spaceService.updateUsedCap(docInfo.getSpaceId());
+
+        return i;
     }
 }

+ 1 - 0
doc-biz/src/main/resources/mapper/biz/DocFavoriteMapper.xml

@@ -36,6 +36,7 @@
         <where>
             <if test="isFolder != null  and isFolder != ''">and IS_FOLDER = #{isFolder}</if>
             <if test="labelId != null  and labelId != ''">and LABEL_ID = #{labelId}</if>
+            <if test="owner != null  and owner != ''">and OWNER = #{owner}</if>
         </where>
     </select>