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