diff --git a/pom.xml b/pom.xml
index bb0216be..b159ba0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -170,6 +170,11 @@
org.springframework.boot
spring-boot-starter-undertow
+
+ io.hypersistence
+ hypersistence-utils-hibernate-62
+ 3.6.1
+
org.hibernate.orm
diff --git a/src/main/java/cn/lihongjie/coal/base/dto/BaseDto.java b/src/main/java/cn/lihongjie/coal/base/dto/BaseDto.java
index 89ae0f06..2e02d1e9 100644
--- a/src/main/java/cn/lihongjie/coal/base/dto/BaseDto.java
+++ b/src/main/java/cn/lihongjie/coal/base/dto/BaseDto.java
@@ -4,6 +4,7 @@ import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
+import java.util.List;
@Getter
@Setter
@@ -21,4 +22,5 @@ public abstract class BaseDto {
private String updateUserName;
private LocalDateTime updateTime;
+ private List fileIds;
}
diff --git a/src/main/java/cn/lihongjie/coal/base/entity/BaseEntity.java b/src/main/java/cn/lihongjie/coal/base/entity/BaseEntity.java
index f4cfab91..843b4309 100644
--- a/src/main/java/cn/lihongjie/coal/base/entity/BaseEntity.java
+++ b/src/main/java/cn/lihongjie/coal/base/entity/BaseEntity.java
@@ -2,6 +2,8 @@ package cn.lihongjie.coal.base.entity;
import cn.lihongjie.coal.common.Ctx;
+import io.hypersistence.utils.hibernate.type.array.ListArrayType;
+
import jakarta.persistence.*;
import lombok.Getter;
@@ -11,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
import org.hibernate.annotations.*;
import java.time.LocalDateTime;
+import java.util.List;
@MappedSuperclass
@Getter
@@ -44,8 +47,14 @@ public class BaseEntity {
@UpdateTimestamp(source = SourceType.VM)
private LocalDateTime updateTime;
+ @Comment("关联附件")
+ @Column(columnDefinition = "text[]")
+ @Type(ListArrayType.class)
+ private List fileIds;
+
@PrePersist
public void prePersist() {
+
if (StringUtils.isEmpty(this.createUserId)) {
this.createUserId = Ctx.isLoggedIn() ? Ctx.getUserId() : "";
diff --git a/src/main/java/cn/lihongjie/coal/file/controller/FileController.java b/src/main/java/cn/lihongjie/coal/file/controller/FileController.java
index e8a02c31..5bdc85f0 100644
--- a/src/main/java/cn/lihongjie/coal/file/controller/FileController.java
+++ b/src/main/java/cn/lihongjie/coal/file/controller/FileController.java
@@ -33,8 +33,12 @@ public class FileController {
public FileDto upload(
@RequestParam("file") MultipartFile file,
@RequestParam("name") String name,
- @RequestParam("dir") String dir) {
- return this.service.upload(file, name, dir);
+ @RequestParam("dir") String dir,
+ @RequestParam(value = "sortKey", required = false) String sortKey,
+ @RequestParam(value = "code", required = false) String code,
+ @RequestParam(value = "remarks", required = false) String remarks
+ ) {
+ return this.service.upload(file, name, dir, sortKey, code, remarks);
}
@PostMapping("/update")
diff --git a/src/main/java/cn/lihongjie/coal/file/dto/CreateFileDto.java b/src/main/java/cn/lihongjie/coal/file/dto/CreateFileDto.java
index 25f20ab9..c67fe17c 100644
--- a/src/main/java/cn/lihongjie/coal/file/dto/CreateFileDto.java
+++ b/src/main/java/cn/lihongjie/coal/file/dto/CreateFileDto.java
@@ -25,6 +25,5 @@ public class CreateFileDto extends OrgCommonDto {
@Comment("局域网访问地址")
private String privateUrl;
- @Comment("业务ID")
- private String businessId;
+
}
diff --git a/src/main/java/cn/lihongjie/coal/file/dto/FileDto.java b/src/main/java/cn/lihongjie/coal/file/dto/FileDto.java
index 3cfdbca2..3a45344e 100644
--- a/src/main/java/cn/lihongjie/coal/file/dto/FileDto.java
+++ b/src/main/java/cn/lihongjie/coal/file/dto/FileDto.java
@@ -25,6 +25,5 @@ public class FileDto extends OrgCommonDto {
@Comment("局域网访问地址")
private String privateUrl;
- @Comment("业务ID")
- private String businessId;
+
}
diff --git a/src/main/java/cn/lihongjie/coal/file/dto/UpdateFileDto.java b/src/main/java/cn/lihongjie/coal/file/dto/UpdateFileDto.java
index 8c6ae12f..21695e0f 100644
--- a/src/main/java/cn/lihongjie/coal/file/dto/UpdateFileDto.java
+++ b/src/main/java/cn/lihongjie/coal/file/dto/UpdateFileDto.java
@@ -25,6 +25,5 @@ public class UpdateFileDto extends OrgCommonDto {
@Comment("局域网访问地址")
private String privateUrl;
- @Comment("业务ID")
- private String businessId;
+
}
diff --git a/src/main/java/cn/lihongjie/coal/file/entity/FileEntity.java b/src/main/java/cn/lihongjie/coal/file/entity/FileEntity.java
index 71e4bd01..3104b81f 100644
--- a/src/main/java/cn/lihongjie/coal/file/entity/FileEntity.java
+++ b/src/main/java/cn/lihongjie/coal/file/entity/FileEntity.java
@@ -33,6 +33,5 @@ public class FileEntity extends OrgCommonEntity {
@Comment("对象ID")
private String objectId;
- @Comment("业务ID")
- private String businessId;
+
}
diff --git a/src/main/java/cn/lihongjie/coal/file/service/FileService.java b/src/main/java/cn/lihongjie/coal/file/service/FileService.java
index cc4d4077..ab08f11a 100644
--- a/src/main/java/cn/lihongjie/coal/file/service/FileService.java
+++ b/src/main/java/cn/lihongjie/coal/file/service/FileService.java
@@ -38,14 +38,14 @@ import java.util.UUID;
@Service
@Slf4j
@Transactional
-public
-class FileService extends BaseService {
+public class FileService extends BaseService {
@Autowired ObsClient obsClient;
@Autowired HwCloudProperty hwCloudProperty;
@Autowired private FileRepository repository;
@Autowired private FileMapper mapper;
@Autowired private ConversionService conversionService;
private final Tika tika = new Tika();
+
@Value("${spring.profiles.active}")
private String activateProfile;
@@ -88,10 +88,19 @@ class FileService extends BaseService {
}
@SneakyThrows
- public FileDto upload(MultipartFile file, String name, String dir) {
+ public FileDto upload(MultipartFile file, String name, String dir, String sortKey, String code, String remarks) {
FileEntity fileEntity = new FileEntity();
fileEntity.setFileName(name);
fileEntity.setFileSize(file.getSize());
+ fileEntity.setCode(code);
+ fileEntity.setRemarks(remarks);
+ try {
+
+ fileEntity.setSortKey(Integer.parseInt(sortKey));
+ } catch (Exception e) {
+
+ fileEntity.setSortKey(1);
+ }
fileEntity.setDirectory(
"%s/%s/%s"
.formatted(
@@ -99,8 +108,7 @@ class FileService extends BaseService {
Ctx.currentUser().getOrganizationId(),
StringUtils.defaultIfBlank(dir, "public")));
InputStream inputStream = file.getInputStream();
- fileEntity.setObjectId(
- UUID.randomUUID() + "." + FilenameUtils.getExtension(name));
+ fileEntity.setObjectId(UUID.randomUUID() + "." + FilenameUtils.getExtension(name));
try (inputStream) {
fileEntity.setMimeType(tika.detect(inputStream));
}