fix: 修复AI分类后文件移动失败的问题
问题修复: - 添加详细的调试日志来诊断文件移动失败的原因 - 修复项目ID不匹配导致的文件移动失败问题 - 增强项目ID验证和错误处理逻辑 技术改进: - 在创建分类任务时验证项目ID匹配性 - 在移动文件时添加详细的调试信息 - 支持项目ID不匹配时的自动修复逻辑 问题诊断: - 发现素材的project_id与请求的project_id不匹配 - 添加了项目存在性验证 - 提供了更清晰的错误信息和日志输出
This commit is contained in:
parent
483ea64413
commit
7210c15ffd
|
|
@ -40,10 +40,29 @@ impl VideoClassificationService {
|
|||
|
||||
/// 为素材创建批量分类任务
|
||||
pub async fn create_batch_classification_tasks(&self, request: BatchClassificationRequest) -> Result<Vec<VideoClassificationTask>> {
|
||||
println!("🎬 创建批量分类任务");
|
||||
println!(" 素材ID: {}", request.material_id);
|
||||
println!(" 项目ID: {}", request.project_id);
|
||||
|
||||
// 获取素材信息
|
||||
let _material = self.material_repo.get_by_id(&request.material_id)?
|
||||
let material = self.material_repo.get_by_id(&request.material_id)?
|
||||
.ok_or_else(|| anyhow!("素材不存在: {}", request.material_id))?;
|
||||
|
||||
println!(" 素材项目ID: {}", material.project_id);
|
||||
|
||||
// 验证项目ID是否匹配,如果不匹配则尝试修复
|
||||
if material.project_id != request.project_id {
|
||||
println!("⚠️ 项目ID不匹配,尝试修复: 素材项目ID={}, 请求项目ID={}", material.project_id, request.project_id);
|
||||
|
||||
// 验证请求的项目ID是否存在
|
||||
if let Ok(Some(_)) = self.material_repo.get_project_by_id(&request.project_id).await {
|
||||
println!("✅ 请求的项目ID有效,将使用请求的项目ID进行分类");
|
||||
// 使用请求的项目ID,而不是素材中的项目ID
|
||||
} else {
|
||||
return Err(anyhow!("请求的项目ID无效: {}", request.project_id));
|
||||
}
|
||||
}
|
||||
|
||||
// 获取素材的所有片段
|
||||
let segments = self.material_repo.get_segments(&request.material_id)?;
|
||||
|
||||
|
|
@ -225,6 +244,11 @@ impl VideoClassificationService {
|
|||
|
||||
/// 移动视频文件到分类文件夹
|
||||
async fn move_video_to_category_folder(&self, record: &VideoClassificationRecord) -> Result<()> {
|
||||
println!("🔍 开始移动文件到分类文件夹");
|
||||
println!(" 项目ID: {}", record.project_id);
|
||||
println!(" 分类类别: {}", record.category);
|
||||
println!(" 片段ID: {}", record.segment_id);
|
||||
|
||||
// 获取项目信息
|
||||
let project = self.material_repo.get_project_by_id(&record.project_id).await?
|
||||
.ok_or_else(|| anyhow!("项目不存在: {}", record.project_id))?;
|
||||
|
|
|
|||
Loading…
Reference in New Issue