From 662f1eecb9b390eda75fb8ea8cbfa3ec4602ed2c Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Thu, 18 Sep 2025 10:59:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../archive/FileManagementController.java | 40 +++++++++++++++++-- .../bonus/web/mapper/FileManageMapper.java | 2 + .../bonus/web/service/FileManageService.java | 2 + .../service/impl/FileManageServiceImpl.java | 5 +++ .../src/main/resources/application.yml | 2 +- .../resources/mapper/FileManageMapper.xml | 6 +++ 6 files changed, 53 insertions(+), 4 deletions(-) diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java b/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java index 258027a..caeec22 100644 --- a/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java +++ b/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java @@ -21,6 +21,7 @@ import com.bonus.web.service.ProjectService; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.hibernate.validator.constraints.Length; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -34,9 +35,11 @@ import javax.validation.Validator; import javax.validation.ValidatorFactory; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; import java.util.stream.Collectors; import static com.bonus.common.utils.SecurityUtils.getLoginUser; @@ -176,6 +179,8 @@ public class FileManagementController extends BaseController { dto.setSourceFileName(upload.getSourceFileName()); dto.setFileType(upload.getFileType()); dto.setSuffixName(upload.getSuffixName()); + dto.setSourceType("1"); + dto.setUpdateUserId(getLoginUser().getUserId()); dto.setUpdateUserName(getLoginUser().getUsername()); dto.setCreateUserId(getLoginUser().getUserId()); @@ -240,6 +245,7 @@ public class FileManagementController extends BaseController { dto.setSourceFileName(upload.getSourceFileName()); dto.setFileType(upload.getFileType()); dto.setSuffixName(upload.getSuffixName()); + dto.setSourceType("1"); fileManageMapper.updateFileSource(dto); } return fileManageService.updateFileManage(dto); @@ -347,4 +353,32 @@ public class FileManagementController extends BaseController { } return R.ok(num); } + + @GetMapping("/getFileAsBase64}") + public R getFileAsBase64(@PathVariable Long id) throws IOException { + Map response = new HashMap<>(); + DaKyProFilesContentsVo record = fileManageService.getFileById(id); + + if (record == null || StringUtils.isBlank(record.getFilePath())) { + return R.fail("文件未找到"); + } + + String filePath = record.getFilePath(); + String fileName = record.getFileName(); + + Path path = Paths.get(filePath); + + // 2. 读取文件为字节数组 + byte[] fileBytes = Files.readAllBytes(path); + + // 3. 转为 Base64 编码字符串 + String base64String = Base64.getEncoder().encodeToString(fileBytes); + + // 4. 设置响应数据 + response.put("fileName", fileName); + response.put("suffix_name", record.getSuffixName()); + // Base64 内容(可直接用于前端) + response.put("fileBase64", base64String); + return R.ok(response); + } } diff --git a/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java b/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java index 4b2f9ca..cc28fcd 100644 --- a/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java +++ b/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java @@ -45,4 +45,6 @@ public interface FileManageMapper { Integer getSortById(String id); DaKyProFilesContentsDto getFileManageById(DaKyProFilesContentsDto dto); + + DaKyProFilesContentsVo getFileById(Long id); } diff --git a/bonus-admin/src/main/java/com/bonus/web/service/FileManageService.java b/bonus-admin/src/main/java/com/bonus/web/service/FileManageService.java index 3defd80..36e83db 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/FileManageService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/FileManageService.java @@ -32,4 +32,6 @@ public interface FileManageService { List getFileManageTree(DaKyProFilesContentsDto dto); DaKyProFilesContentsDto getFileManageById(DaKyProFilesContentsDto dto); + + DaKyProFilesContentsVo getFileById(Long id); } diff --git a/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java b/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java index 674bd3e..c7d6ce7 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java @@ -129,4 +129,9 @@ public class FileManageServiceImpl implements FileManageService { public DaKyProFilesContentsDto getFileManageById(DaKyProFilesContentsDto dto) { return fileManageMapper.getFileManageById(dto); } + + @Override + public DaKyProFilesContentsVo getFileById(Long id) { + return fileManageMapper.getFileById(id); + } } diff --git a/bonus-admin/src/main/resources/application.yml b/bonus-admin/src/main/resources/application.yml index 7a33987..71339f9 100644 --- a/bonus-admin/src/main/resources/application.yml +++ b/bonus-admin/src/main/resources/application.yml @@ -38,7 +38,7 @@ server: # 日志配置 logging: level: - com.bonus: info + com.bonus: debug org.springframework: warn # 用户配置 diff --git a/bonus-admin/src/main/resources/mapper/FileManageMapper.xml b/bonus-admin/src/main/resources/mapper/FileManageMapper.xml index cb38467..a5643f5 100644 --- a/bonus-admin/src/main/resources/mapper/FileManageMapper.xml +++ b/bonus-admin/src/main/resources/mapper/FileManageMapper.xml @@ -59,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" source_file_name, file_name, file_type, + suffix_name, file_size, source_type, create_user_id, @@ -72,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{sourceFileName}, #{fileName}, #{fileType}, + #{suffixName}, #{fileSize}, #{sourceType}, #{createUserId}, @@ -107,6 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" source_file_name = #{sourceFileName}, file_name = #{fileName}, file_type = #{fileType}, + suffix_name = #{suffixName}, file_size = #{fileSize}, source_type = #{sourceType}, update_user_id = #{updateUserId}, @@ -245,4 +248,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE dkpfc.id = #{id} +