1、新增全文搜索
2、删除失败问题修复
This commit is contained in:
parent
d34e0f9b6e
commit
734da29a28
@ -10,6 +10,9 @@ import com.qiwenshare.file.domain.TreeNode;
|
||||
import com.qiwenshare.file.domain.UserFile;
|
||||
import com.qiwenshare.file.mapper.UserFileMapper;
|
||||
import com.qiwenshare.file.vo.file.FileListVo;
|
||||
import com.qiwenshare.ufo.factory.UFOFactory;
|
||||
import com.qiwenshare.ufo.operation.read.Reader;
|
||||
import com.qiwenshare.ufo.operation.read.domain.ReadFile;
|
||||
import com.qiwenshare.ufo.util.PathUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -32,6 +35,8 @@ public class FileDealComp {
|
||||
@Autowired
|
||||
private IElasticSearchService elasticSearchService;
|
||||
|
||||
@Resource
|
||||
UFOFactory ufoFactory;
|
||||
/**
|
||||
* 获取重复文件名
|
||||
*
|
||||
@ -230,6 +235,12 @@ public class FileDealComp {
|
||||
if (userfileResult != null && userfileResult.size() > 0) {
|
||||
FileSearch fileSearch = new FileSearch();
|
||||
BeanUtil.copyProperties(userfileResult.get(0), fileSearch);
|
||||
Reader reader = ufoFactory.getReader(fileSearch.getStorageType());
|
||||
ReadFile readFile = new ReadFile();
|
||||
readFile.setFileUrl(fileSearch.getFileUrl());
|
||||
String content = reader.read(readFile);
|
||||
//全文搜索
|
||||
// fileSearch.setContent(content);
|
||||
elasticSearchService.save(fileSearch);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -15,6 +15,8 @@ public class FileSearch {
|
||||
private Long fileId;
|
||||
@Field(type = FieldType.Text, analyzer = "ik_max_word")
|
||||
private String fileName;
|
||||
@Field(type = FieldType.Text, analyzer = "ik_max_word")
|
||||
private String content;
|
||||
@Field(type = FieldType.Keyword)
|
||||
private String timeStampName;
|
||||
@Field(type = FieldType.Keyword)
|
||||
|
@ -126,7 +126,8 @@ public class FileController {
|
||||
}
|
||||
|
||||
queryBuilder.withQuery(QueryBuilders.boolQuery()
|
||||
.must(QueryBuilders.matchQuery("fileName", searchFileDTO.getFileName()))
|
||||
// .must(QueryBuilders.matchQuery("fileName", searchFileDTO.getFileName()))
|
||||
.must(QueryBuilders.multiMatchQuery(searchFileDTO.getFileName(),"fileName", "content"))
|
||||
.must(QueryBuilders.termQuery("userId", sessionUserBean.getUserId()))
|
||||
);
|
||||
SearchHits<FileSearch> search = elasticsearchRestTemplate.search(queryBuilder.build(), FileSearch.class);
|
||||
@ -255,7 +256,6 @@ public class FileController {
|
||||
DigestUtils.md5Hex("data");
|
||||
for (UserFile userFile : userFiles) {
|
||||
|
||||
//userFile.setDeleteBatchNum(uuid);
|
||||
userFileService.deleteUserFile(userFile.getUserFileId(),sessionUserBean.getUserId());
|
||||
fileDealComp.deleteESByUserFileId(userFile.getUserFileId());
|
||||
}
|
||||
|
@ -138,6 +138,7 @@ public class FiletransferController {
|
||||
}
|
||||
|
||||
httpServletResponse.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 设置文件名
|
||||
|
||||
filetransferService.downloadFile(httpServletResponse, downloadFileDTO);
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.qiwenshare.file.api.IElasticSearchService;
|
||||
import com.qiwenshare.file.component.FileDealComp;
|
||||
import com.qiwenshare.file.config.es.FileSearch;
|
||||
import com.qiwenshare.file.domain.FileBean;
|
||||
import com.qiwenshare.file.domain.UserFile;
|
||||
@ -12,6 +13,9 @@ import com.qiwenshare.file.service.FiletransferService;
|
||||
import com.qiwenshare.file.service.UserFileService;
|
||||
import com.qiwenshare.file.service.UserService;
|
||||
import com.qiwenshare.file.vo.file.FileListVo;
|
||||
import com.qiwenshare.ufo.factory.UFOFactory;
|
||||
import com.qiwenshare.ufo.operation.read.Reader;
|
||||
import com.qiwenshare.ufo.operation.read.domain.ReadFile;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.catalina.User;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -35,6 +39,8 @@ public class TaskController {
|
||||
FiletransferService filetransferService;
|
||||
@Autowired
|
||||
private IElasticSearchService elasticSearchService;
|
||||
@Resource
|
||||
FileDealComp fileDealComp;
|
||||
|
||||
@Scheduled(cron = "0 0/1 * * * ?")
|
||||
public void deleteFile() {
|
||||
@ -55,22 +61,17 @@ public class TaskController {
|
||||
@Scheduled(fixedRate = 1000 * 60 * 60 * 24)
|
||||
public void updateElasticSearch() {
|
||||
|
||||
UserFile userFile = new UserFile();
|
||||
try {
|
||||
elasticSearchService.deleteAll();
|
||||
} catch (Exception e) {
|
||||
log.error("删除ES失败:" + e);
|
||||
}
|
||||
try {
|
||||
List<FileListVo> userfiles = userFileService.userFileList(userFile, 0L, 999999L);
|
||||
for (FileListVo fileListVo : userfiles) {
|
||||
log.info(JSON.toJSONString(fileListVo));
|
||||
FileSearch fileSearch = new FileSearch();
|
||||
BeanUtil.copyProperties(fileListVo, fileSearch);
|
||||
elasticSearchService.save(fileSearch);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新ES失败:" + e);
|
||||
|
||||
List<UserFile> userfileList = userFileService.list();
|
||||
for (UserFile userFile : userfileList) {
|
||||
log.info(JSON.toJSONString(userFile));
|
||||
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.qiwenshare.file.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.qiwenshare.common.result.RestResult;
|
||||
import com.qiwenshare.common.util.JjwtUtil;
|
||||
import com.qiwenshare.file.anno.MyLog;
|
||||
@ -14,6 +15,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.codec.digest.Md5Crypt;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.crypto.hash.SimpleHash;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -66,7 +68,12 @@ public class UserController {
|
||||
}
|
||||
String jwt = "";
|
||||
try {
|
||||
jwt = JjwtUtil.createJWT("qiwenshare", "qiwen", JSON.toJSONString(saveUserBean));
|
||||
UserBean sessionUserBean = new UserBean();
|
||||
sessionUserBean.setPassword(saveUserBean.getPassword());
|
||||
sessionUserBean.setQqPassword(saveUserBean.getQqPassword());
|
||||
sessionUserBean.setTelephone(saveUserBean.getTelephone());
|
||||
sessionUserBean.setOpenId(saveUserBean.getOpenId());
|
||||
jwt = JjwtUtil.createJWT("qiwenshare", "qiwen", JSON.toJSONString(sessionUserBean));
|
||||
} catch (Exception e) {
|
||||
log.info("登录失败:{}", e);
|
||||
return RestResult.fail().message("创建token失败!");
|
||||
|
@ -33,10 +33,6 @@ public class FileBean {
|
||||
@Column(columnDefinition="bigint(10)")
|
||||
private Long fileSize;
|
||||
|
||||
// @Column(columnDefinition="int(1)")
|
||||
// @Deprecated
|
||||
// private Integer isOSS;
|
||||
|
||||
@Column(columnDefinition="int(1)")
|
||||
private Integer storageType;
|
||||
|
||||
|
@ -1,8 +1,5 @@
|
||||
package com.qiwenshare.file.domain;
|
||||
|
||||
//import com.baomidou.mybatisplus.annotation.IdType;
|
||||
//import com.baomidou.mybatisplus.annotation.TableId;
|
||||
//import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
@ -41,19 +41,9 @@ public class UserBean {
|
||||
@Column(columnDefinition = "varchar(35)")
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* qq密码
|
||||
*/
|
||||
@Column(columnDefinition = "varchar(35)")
|
||||
private String qqPassword;
|
||||
|
||||
/**
|
||||
* 重复密码
|
||||
*/
|
||||
// @Transient
|
||||
// @TableField(exist = false)
|
||||
// private String passwordAgain;
|
||||
|
||||
@Column(columnDefinition = "varchar(15)")
|
||||
private String telephone;
|
||||
|
||||
|
@ -194,7 +194,7 @@ public class UserFileService extends ServiceImpl<UserFileMapper, UserFile> impl
|
||||
}else{
|
||||
UserFile userFileTemp = userFileMapper.selectById(userFileId);
|
||||
LambdaUpdateWrapper<UserFile> userFileLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
userFileLambdaUpdateWrapper.set(UserFile::getDeleteFlag, RandomUtil.randomInt(FileConstant.deleteFileRandomSize))
|
||||
userFileLambdaUpdateWrapper.set(UserFile::getDeleteFlag, RandomUtil.randomInt(1, FileConstant.deleteFileRandomSize))
|
||||
.set(UserFile::getDeleteTime, DateUtil.getCurrentTime())
|
||||
.set(UserFile::getDeleteBatchNum, uuid)
|
||||
.eq(UserFile::getUserFileId, userFileTemp.getUserFileId());
|
||||
|
Loading…
Reference in New Issue
Block a user