|
|
@@ -3,12 +3,14 @@ package cn.reghao.tnb.file.app.service;
|
|
|
import cn.reghao.jutil.jdk.converter.ByteConverter;
|
|
|
import cn.reghao.jutil.jdk.converter.ByteType;
|
|
|
import cn.reghao.jutil.jdk.security.DigestUtil;
|
|
|
+import cn.reghao.jutil.jdk.web.db.Page;
|
|
|
import cn.reghao.jutil.jdk.web.db.PageList;
|
|
|
import cn.reghao.tnb.common.auth.UserContext;
|
|
|
import cn.reghao.tnb.common.web.ServletUtil;
|
|
|
import cn.reghao.tnb.file.app.config.AppProperties;
|
|
|
import cn.reghao.tnb.file.app.db.mapper.LocalFileMapper;
|
|
|
import cn.reghao.tnb.file.app.model.po.LocalFile;
|
|
|
+import cn.reghao.tnb.file.app.model.vo.FileQuery;
|
|
|
import cn.reghao.tnb.file.app.model.vo.LocalFileInfo;
|
|
|
import cn.reghao.tnb.file.app.model.vo.LocalFileUrl;
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
@@ -37,8 +39,8 @@ public class FileService {
|
|
|
private final int bufSize = 1024*1024*8;
|
|
|
private final ByteConverter byteConverter;
|
|
|
private final LocalFileMapper localFileMapper;
|
|
|
- private int pageSize = 10;
|
|
|
- private String baseDir;
|
|
|
+ private final int pageSize = 10;
|
|
|
+ private final String baseDir;
|
|
|
|
|
|
public FileService(ByteConverter byteConverter, LocalFileMapper localFileMapper, AppProperties appProperties) {
|
|
|
this.byteConverter = byteConverter;
|
|
|
@@ -75,8 +77,12 @@ public class FileService {
|
|
|
|
|
|
@Cacheable(cacheNames = "filePaths", key = "#objectName", unless = "#result == null")
|
|
|
public LocalFile getByObjectName(String objectName) {
|
|
|
- LocalFile diskFile = localFileMapper.findByObjectName(objectName);
|
|
|
- return diskFile;
|
|
|
+ FileQuery fileQuery = new FileQuery.Builder()
|
|
|
+ .objectName(objectName)
|
|
|
+ .build();
|
|
|
+ Page page = new Page(1, pageSize);
|
|
|
+ List<LocalFile> localFiles = localFileMapper.findFileQueryByPage(page, fileQuery);
|
|
|
+ return localFiles.isEmpty() ? null : localFiles.get(0);
|
|
|
}
|
|
|
|
|
|
private void writeResponse(int statusCode) throws IOException {
|
|
|
@@ -140,8 +146,12 @@ public class FileService {
|
|
|
String contentType = "image/jpeg";
|
|
|
int fileType = 1001;
|
|
|
String sha256sum = DigestUtil.sha256sum(savedFile.getAbsolutePath());
|
|
|
+ FileQuery fileQuery = new FileQuery.Builder()
|
|
|
+ .sha256sum(sha256sum)
|
|
|
+ .build();
|
|
|
|
|
|
- List<LocalFile> diskFiles = localFileMapper.findBySha256sum(sha256sum);
|
|
|
+ Page page = new Page(1, pageSize);
|
|
|
+ List<LocalFile> diskFiles = localFileMapper.findFileQueryByPage(page, fileQuery);
|
|
|
LocalFile diskFile;
|
|
|
if (!diskFiles.isEmpty()) {
|
|
|
LocalFile existFile = diskFiles.get(0);
|
|
|
@@ -176,7 +186,14 @@ public class FileService {
|
|
|
|
|
|
public PageList<LocalFileInfo> getLocalFiles(int pageNumber) {
|
|
|
long owner = UserContext.getUserId();
|
|
|
- List<LocalFile> list = localFileMapper.findByOwner(owner);
|
|
|
+ FileQuery fileQuery = new FileQuery.Builder()
|
|
|
+ .owner(owner)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ Page page = new Page(pageNumber, pageSize);
|
|
|
+ int total = localFileMapper.countByFileQuery(fileQuery);
|
|
|
+ List<LocalFile> list = localFileMapper.findFileQueryByPage(page, fileQuery);
|
|
|
+
|
|
|
List<LocalFileInfo> list0 = list.stream().map(diskFile -> {
|
|
|
String size = byteConverter.convert(ByteType.Bytes, diskFile.getSize());
|
|
|
return new LocalFileInfo(diskFile, size);
|
|
|
@@ -187,7 +204,13 @@ public class FileService {
|
|
|
public PageList<LocalFileUrl> getImageFiles(int pageNumber) {
|
|
|
long owner = UserContext.getUserId();
|
|
|
int fileType = 1001;
|
|
|
- List<LocalFile> list = localFileMapper.findByFileTypeAndOwner(fileType, owner);
|
|
|
+ FileQuery fileQuery = new FileQuery.Builder()
|
|
|
+ .fileType(fileType)
|
|
|
+ .owner(owner)
|
|
|
+ .build();
|
|
|
+ Page page = new Page(pageNumber, pageSize);
|
|
|
+ int total = localFileMapper.countByFileQuery(fileQuery);
|
|
|
+ List<LocalFile> list = localFileMapper.findFileQueryByPage(page, fileQuery);
|
|
|
List<LocalFileUrl> list0 = list.stream().map(diskFile -> {
|
|
|
String fileId = diskFile.getObjectId();
|
|
|
String filename = diskFile.getFilename();
|
|
|
@@ -195,12 +218,17 @@ public class FileService {
|
|
|
String url = String.format("/%s", objectName);
|
|
|
return new LocalFileUrl(fileId, filename, url);
|
|
|
}).collect(Collectors.toList());
|
|
|
-
|
|
|
- return PageList.empty();
|
|
|
+ return PageList.pageList(pageNumber, pageSize, total, list0);
|
|
|
}
|
|
|
|
|
|
public LocalFile getLocalFile(String objectId) {
|
|
|
- return localFileMapper.findByObjectId(objectId);
|
|
|
+ FileQuery fileQuery = new FileQuery.Builder()
|
|
|
+ .objectId(objectId)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ Page page = new Page(1, 1);
|
|
|
+ List<LocalFile> list = localFileMapper.findFileQueryByPage(page, fileQuery);
|
|
|
+ return list.isEmpty() ? null : list.get(0);
|
|
|
}
|
|
|
|
|
|
public String getObjectName(String path) {
|