diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/file/service/TikUserFileServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/file/service/TikUserFileServiceImpl.java index f9490b48b7..6fddcada83 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/file/service/TikUserFileServiceImpl.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/file/service/TikUserFileServiceImpl.java @@ -115,7 +115,7 @@ public class TikUserFileServiceImpl implements TikUserFileService { // ========== 第三阶段:保存数据库(在事务中,如果失败则删除OSS文件) ========== try { - return saveFileRecord(userId, file, fileCategory, fileUrl, filePath, coverBase64, baseDirectory); + return saveFileRecord(userId, file, fileCategory, fileUrl, filePath, coverBase64, baseDirectory, infraFileId); } catch (Exception e) { // 数据库保存失败,删除已上传的OSS文件 log.error("[uploadFile][保存数据库失败,准备删除OSS文件,URL({})]", fileUrl, e); @@ -129,7 +129,7 @@ public class TikUserFileServiceImpl implements TikUserFileService { */ @Transactional(rollbackFor = Exception.class) public Long saveFileRecord(Long userId, MultipartFile file, String fileCategory, - String fileUrl, String filePath, String coverBase64, String baseDirectory) { + String fileUrl, String filePath, String coverBase64, String baseDirectory, Long infraFileId) { // 7. 处理视频封面(如果有前端传递的 base64 封面,先处理封面再插入主记录) String coverUrl = null; if (StrUtil.isNotBlank(coverBase64) && StrUtil.containsIgnoreCase(file.getContentType(), "video")) { @@ -180,7 +180,7 @@ public class TikUserFileServiceImpl implements TikUserFileService { // 8. 创建文件记录(保存完整路径,包含封面URL和Base64) TikUserFileDO userFile = new TikUserFileDO() .setUserId(userId) - .setFileId(null) // 显式设置为null,file_id是可选的,用于关联infra_file表 + .setFileId(infraFileId) // 关联infra_file表,用于后续通过FileService管理文件 .setFileName(file.getOriginalFilename()) // 保存原始文件名,用于展示 .setFileType(file.getContentType()) .setFileCategory(fileCategory)