123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- 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;
- /**
- * 文件基本信息表Service业务层处理
- *
- * @author wukai
- * @date 2023-08-15
- */
- @Service
- public class DocInfoServiceImpl implements IDocInfoService {
- @Resource
- private DocInfoMapper docInfoMapper;
- @Resource
- private IElasticSearchService elasticSearchService;
- @Resource
- private IDocSpaceService spaceService;
- @Resource
- private IDocFavoriteService favoriteService;
- /**
- * 查询文件基本信息表
- *
- * @param docId 文件基本信息表主键
- * @return 文件基本信息表
- */
- @Override
- public DocInfo selectDocInfoByDocId(Long docId) {
- return docInfoMapper.selectDocInfoByDocId(docId);
- }
- /**
- * 通过fileID查询文件基本信息
- *
- * @param fileId mongo文件ID
- */
- @Override
- public DocInfo selectDocInfoByFileId(String fileId) {
- return docInfoMapper.selectDocInfoByFileId(fileId);
- }
- /**
- * 查询文件基本信息表列表
- *
- * @param docInfo 文件基本信息表
- * @return 文件基本信息表
- */
- @Override
- public List<DocInfo> selectDocInfoList(DocInfo 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;
- }
- /**
- * 新增文件基本信息表
- *
- * @param docInfo 文件基本信息表
- * @return 结果
- */
- @Override
- public int insertDocInfo(DocInfo docInfo) {
- docInfo.setCreateTime(DateUtils.getNowDate());
- checkDuplicateNames(docInfo);
- int i = docInfoMapper.insertDocInfo(docInfo);
- elasticSearchService.save(docInfo);
- //改变空间容量
- spaceService.updateUsedCap(docInfo.getSpaceId());
- return i;
- }
- /**
- * 检查重名
- *
- * @param docInfo 文件信息
- */
- private void checkDuplicateNames(DocInfo docInfo) {
- DocInfo query = new DocInfo();
- query.setDirId(docInfo.getDirId());
- query.setFileName(docInfo.getFileName());
- List list = selectDocInfoList(query);
- if (list.size() > 0) {
- String fileName = docInfo.getFileName();
- fileName = fileName + "-" + DateUtils.dateTimeNow();
- docInfo.setFileName(fileName);
- }
- }
- /**
- * 修改文件基本信息表
- *
- * @param docInfo 文件基本信息表
- * @return 结果
- */
- @Override
- public int updateDocInfo(DocInfo docInfo) {
- checkDuplicateNames(docInfo);
- docInfo.setUpdateTime(DateUtils.getNowDate());
- int i = docInfoMapper.updateDocInfo(docInfo);
- if (StringUtils.isNotEmpty(docInfo.getFileId())) {
- elasticSearchService.save(docInfo);
- }
- //改变空间容量
- spaceService.updateUsedCap(docInfo.getSpaceId());
- return i;
- }
- /**
- * 批量删除文件基本信息表
- *
- * @param docIds 需要删除的文件基本信息表主键
- * @return 结果
- */
- @Override
- public int deleteDocInfoByDocIds(Long[] 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;
- }
- /**
- * 删除文件基本信息表信息
- *
- * @param docId 文件基本信息表主键
- * @return 结果
- */
- @Override
- public int deleteDocInfoByDocId(Long docId) {
- DocInfo docInfo = selectDocInfoByDocId(docId);
- int i = docInfoMapper.deleteDocInfoByDocId(docId);
- //改变空间容量
- spaceService.updateUsedCap(docInfo.getSpaceId());
- return i;
- }
- }
|