From d4661600f1f0662c4c2c3ecf7b5ee40899949204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E5=AE=9D=E5=B1=B1?= <1253070437@qq.com> Date: Wed, 6 Aug 2025 02:30:14 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=89=80=E9=9C=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/vip/xiaonuo/dev/api/DevFileApi.java | 19 ++++++++++++++++ .../file/provider/DevFileApiProvider.java | 22 +++++++++++++++++++ .../modular/file/service/DevFileService.java | 8 +++++++ .../file/service/impl/DevFileServiceImpl.java | 6 +++++ 4 files changed, 55 insertions(+) diff --git a/snowy-plugin-api/snowy-plugin-dev-api/src/main/java/vip/xiaonuo/dev/api/DevFileApi.java b/snowy-plugin-api/snowy-plugin-dev-api/src/main/java/vip/xiaonuo/dev/api/DevFileApi.java index 21ae3487..272f6204 100644 --- a/snowy-plugin-api/snowy-plugin-dev-api/src/main/java/vip/xiaonuo/dev/api/DevFileApi.java +++ b/snowy-plugin-api/snowy-plugin-dev-api/src/main/java/vip/xiaonuo/dev/api/DevFileApi.java @@ -12,9 +12,12 @@ */ package vip.xiaonuo.dev.api; +import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + /** * 文件API接口,可参考vip.xiaonuo.dev.core.util.file包下的工具类扩展更多需要的方法 * @@ -135,4 +138,20 @@ public interface DevFileApi { * @date 2022/8/4 10:36 **/ void deleteAbsoluteById(String id); + + /** + * 根据文件ids获得文件列表 + * + * @author yubaoshan + * @date 2025/8/25 21:18 + */ + JSONArray getFileListByIds(List ids); + + /** + * 根据配置的存储类型,返回不同的URL + * + * @author yubaoshan + * @date 2025/8/25 21:18 + */ + String storageFileWithReturnUrlOss(MultipartFile file); } diff --git a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/provider/DevFileApiProvider.java b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/provider/DevFileApiProvider.java index e4927a68..d7e9f2f8 100644 --- a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/provider/DevFileApiProvider.java +++ b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/provider/DevFileApiProvider.java @@ -12,6 +12,8 @@ */ package vip.xiaonuo.dev.modular.file.provider; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import jakarta.annotation.Resource; @@ -23,6 +25,7 @@ import vip.xiaonuo.dev.modular.file.enums.DevFileEngineTypeEnum; import vip.xiaonuo.dev.modular.file.param.DevFileIdParam; import vip.xiaonuo.dev.modular.file.service.DevFileService; +import java.util.List; import java.util.Optional; /** @@ -106,4 +109,23 @@ public class DevFileApiProvider implements DevFileApi { devFileIdParam.setId(id); devFileService.deleteAbsolute(devFileIdParam); } + + @Override + public JSONArray getFileListByIds(List ids) { + JSONArray jsonArray = new JSONArray(); + jsonArray.addAll(devFileService.getFileListByIds(ids)); + return jsonArray; + } + + @Override + public String storageFileWithReturnUrlOss(MultipartFile file) { + // 获取系统配置的默认文件存储引擎 + String defaultEngine = devConfigApi.getValueByKey(SNOWY_SYS_DEFAULT_FILE_ENGINE_KEY); + // 如果配置为空,默认使用本地存储 + if (ObjectUtil.isEmpty(defaultEngine)) { + defaultEngine = DevFileEngineTypeEnum.LOCAL.getValue(); + } + // 根据配置的引擎类型调用相应的存储方法 + return devFileService.uploadReturnUrl(defaultEngine, file); + } } diff --git a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/DevFileService.java b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/DevFileService.java index fba70724..b6e5a7e7 100644 --- a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/DevFileService.java +++ b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/DevFileService.java @@ -122,4 +122,12 @@ public interface DevFileService extends IService { * @date 2022/4/24 21:18 */ DevFile queryEntity(String id); + + /** + * 根据文件ids获得文件列表 + * + * @author yubaoshan + * @date 2025/8/25 21:18 + */ + List getFileListByIds(List ids); } diff --git a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java index 995111cf..b9154666 100644 --- a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java +++ b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java @@ -26,6 +26,7 @@ import cn.hutool.http.HttpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -363,6 +364,11 @@ public class DevFileServiceImpl extends ServiceImpl impl return devFile; } + @Override + public List getFileListByIds(List ids) { + return list(Wrappers.lambdaQuery().in(DevFile::getId,ids)); + } + /** * 根据文件后缀判断是否图片 *