diff --git a/smart-admin-api-java17-springboot3/pom.xml b/smart-admin-api-java17-springboot3/pom.xml
index 1d4f850f..71b1eb05 100644
--- a/smart-admin-api-java17-springboot3/pom.xml
+++ b/smart-admin-api-java17-springboot3/pom.xml
@@ -38,7 +38,7 @@
1.13.1
1.2.0
5.4.1
- 2.31.78
+ 2.42.6
9.3.0
5.8.39
2.4.1
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictDataIntDeserializer.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictDataIntDeserializer.java
new file mode 100644
index 00000000..1b9c31a8
--- /dev/null
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictDataIntDeserializer.java
@@ -0,0 +1,31 @@
+package net.lab1024.sa.base.common.json.deserializer;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.ObjectCodec;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.IOException;
+
+/**
+ * 字典值为 int类型的 反序列化
+ *
+ * @Author 1024创新实验室: 卓大
+ * @Date 2026-04-05 22:17:53
+ * @Wechat zhuoda1024
+ * @Email lab1024@163.com
+ * @Copyright 1024创新实验室
+ */
+@Slf4j
+public class DictDataIntDeserializer extends JsonDeserializer {
+
+ @Override
+ public Integer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
+ ObjectCodec objectCodec = jsonParser.getCodec();
+ JsonNode listOrObjectNode = objectCodec.readTree(jsonParser);
+ return Integer.parseInt(listOrObjectNode.asText());
+ }
+
+}
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/util/SmartBeanUtil.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/util/SmartBeanUtil.java
index eb976882..cf06dc8d 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/util/SmartBeanUtil.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/util/SmartBeanUtil.java
@@ -17,7 +17,7 @@ import java.util.stream.Collectors;
* @Date 2018-01-15 10:48:23
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public class SmartBeanUtil {
@@ -41,15 +41,15 @@ public class SmartBeanUtil {
*
* @param source 源 要复制的对象
* @param target 目标 复制到此对象
- * @param
- * @return
+ * @param 目标对象的类型
+ * @return 目标对象
*/
public static T copy(Object source, Class target) {
if (source == null || target == null) {
return null;
}
try {
- T newInstance = target.newInstance();
+ T newInstance = target.getDeclaredConstructor().newInstance();
BeanUtils.copyProperties(source, newInstance);
return newInstance;
} catch (Exception e) {
@@ -60,11 +60,11 @@ public class SmartBeanUtil {
/**
* 复制list
*
- * @param source
- * @param target
- * @param
- * @param
- * @return
+ * @param source 源 要复制的列表
+ * @param target 目标 复制到此对象
+ * @param 源列表的类型
+ * @param 目标列表的类型
+ * @return 目标列表
*/
public static List copyList(List source, Class target) {
if (null == source || source.isEmpty()) {
@@ -74,11 +74,11 @@ public class SmartBeanUtil {
}
/**
- * 手动验证对象 Model的属性
+ * 手动验证对象 Model 的属性
* 需要配合 hibernate-validator 校验注解
*
- * @param t
- * @return String 返回null代表验证通过,否则返回错误的信息
+ * @param t 需要验证的对象
+ * @return String 返回 null 代表验证通过,否则返回错误的信息
*/
public static String verify(T t) {
// 获取验证结果
@@ -88,7 +88,7 @@ public class SmartBeanUtil {
return null;
}
// 返回错误信息
- List messageList = validate.stream().map(ConstraintViolation::getMessage).collect(Collectors.toList());
+ List messageList = validate.stream().map(ConstraintViolation::getMessage).toList();
return messageList.toString();
}
}
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageCloudServiceImpl.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageCloudServiceImpl.java
index 4015b8c5..c87ecc49 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageCloudServiceImpl.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageCloudServiceImpl.java
@@ -25,7 +25,6 @@ import org.springframework.web.multipart.MultipartFile;
import software.amazon.awssdk.core.ResponseBytes;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.core.sync.ResponseTransformer;
-import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.*;
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
@@ -116,15 +115,11 @@ public class FileStorageCloudServiceImpl implements IFileStorageService {
.contentDisposition("attachment;filename=" + urlEncoderFilename)
.acl(acl)
.build();
- InputStream inputStream = null;
try {
- inputStream = file.getInputStream();
- s3Client.putObject(putObjectRequest, RequestBody.fromInputStream(inputStream, file.getSize()));
+ s3Client.putObject(putObjectRequest, RequestBody.fromBytes(file.getBytes()));
} catch (IOException e) {
log.error("文件上传-发生异常:", e);
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "上传失败");
- } finally {
- IOUtils.closeQuietly(inputStream);
}
// 返回上传结果
FileUploadVO uploadVO = new FileUploadVO();
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java
index 9e1c5564..6327488a 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java
@@ -37,6 +37,7 @@ import java.util.UUID;
@Slf4j
public class FileStorageLocalServiceImpl implements IFileStorageService {
+ private static final String FILE_SEPARATOR = "/";
public static final String UPLOAD_MAPPING = "/upload";
@@ -78,8 +79,8 @@ public class FileStorageLocalServiceImpl implements IFileStorageService {
// 目录不存在,新建
directory.mkdirs();
}
- if (!path.endsWith(File.separator)) {
- path = path + File.separator;
+ if (!path.endsWith(FILE_SEPARATOR)) {
+ path = path + FILE_SEPARATOR;
}
FileUploadVO fileUploadVO = new FileUploadVO();
//原文件名
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictDataIntDeserializer.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictDataIntDeserializer.java
new file mode 100644
index 00000000..1b9c31a8
--- /dev/null
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictDataIntDeserializer.java
@@ -0,0 +1,31 @@
+package net.lab1024.sa.base.common.json.deserializer;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.ObjectCodec;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.IOException;
+
+/**
+ * 字典值为 int类型的 反序列化
+ *
+ * @Author 1024创新实验室: 卓大
+ * @Date 2026-04-05 22:17:53
+ * @Wechat zhuoda1024
+ * @Email lab1024@163.com
+ * @Copyright 1024创新实验室
+ */
+@Slf4j
+public class DictDataIntDeserializer extends JsonDeserializer {
+
+ @Override
+ public Integer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
+ ObjectCodec objectCodec = jsonParser.getCodec();
+ JsonNode listOrObjectNode = objectCodec.readTree(jsonParser);
+ return Integer.parseInt(listOrObjectNode.asText());
+ }
+
+}
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java
index 2a12eb6e..1d35841d 100644
--- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileStorageLocalServiceImpl.java
@@ -37,6 +37,7 @@ import java.util.UUID;
@Slf4j
public class FileStorageLocalServiceImpl implements IFileStorageService {
+ private static final String FILE_SEPARATOR = "/";
public static final String UPLOAD_MAPPING = "/upload";
@@ -78,8 +79,8 @@ public class FileStorageLocalServiceImpl implements IFileStorageService {
// 目录不存在,新建
directory.mkdirs();
}
- if (!path.endsWith(File.separator)) {
- path = path + File.separator;
+ if (!path.endsWith(FILE_SEPARATOR)) {
+ path = path + FILE_SEPARATOR;
}
FileUploadVO fileUploadVO = new FileUploadVO();
//原文件名