移除流程中的支付相关和会员卡相关
This commit was merged in pull request #48.
This commit is contained in:
+11
@@ -15,6 +15,17 @@ public interface ISysFileService {
|
||||
|
||||
Mono<SysFile> uploadFile(FilePart filePart, String username);
|
||||
|
||||
/**
|
||||
* 保存字节数组为文件(用于服务端生成的文件,如二维码)
|
||||
*
|
||||
* @param content 文件字节内容
|
||||
* @param filename 原始文件名
|
||||
* @param contentType MIME类型
|
||||
* @param username 操作用户名
|
||||
* @return 保存后的文件信息
|
||||
*/
|
||||
Mono<SysFile> saveBytes(byte[] content, String filename, String contentType, String username);
|
||||
|
||||
Mono<Void> downloadFile(Long id);
|
||||
|
||||
Mono<Void> deleteFile(Long id);
|
||||
|
||||
+37
@@ -29,6 +29,43 @@ public class SysFileServiceImpl implements ISysFileService {
|
||||
this.uploadDir = uploadDir;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<SysFile> saveBytes(byte[] content, String filename, String contentType, String username) {
|
||||
String fileExtension = filename.contains(".")
|
||||
? filename.substring(filename.lastIndexOf("."))
|
||||
: ".png";
|
||||
String newFileName = UUID.randomUUID().toString() + fileExtension;
|
||||
|
||||
Path uploadPath = Paths.get(uploadDir);
|
||||
return Mono.fromCallable(() -> {
|
||||
if (!Files.exists(uploadPath)) {
|
||||
Files.createDirectories(uploadPath);
|
||||
}
|
||||
return uploadPath;
|
||||
})
|
||||
.flatMap(path -> {
|
||||
Path filePath = path.resolve(newFileName);
|
||||
return Mono.fromCallable(() -> {
|
||||
Files.write(filePath, content);
|
||||
return filePath;
|
||||
});
|
||||
})
|
||||
.flatMap(filePath -> Mono.fromCallable(() -> {
|
||||
long fileSize = Files.size(filePath);
|
||||
|
||||
SysFile sysFile = new SysFile();
|
||||
sysFile.setFileName(filename);
|
||||
sysFile.setFilePath(filePath.toString());
|
||||
sysFile.setFileSize(fileSize);
|
||||
sysFile.setFileType(contentType != null ? contentType : "image/png");
|
||||
sysFile.setStorageType("LOCAL");
|
||||
sysFile.setCreateBy(username);
|
||||
sysFile.setCreatedAt(LocalDateTime.now());
|
||||
|
||||
return sysFile;
|
||||
}).flatMap(fileRepository::save));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysFile> getAllFiles() {
|
||||
return fileRepository.findByDeletedAtIsNullOrderByCreatedAtDesc();
|
||||
|
||||
Reference in New Issue
Block a user