This commit is contained in:
2025-11-16 23:32:19 +08:00
parent 7f53203245
commit 2a8f9e2ba2

View File

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