diff --git a/apps/desktop/src-tauri/src/business/services/material_matching_service.rs b/apps/desktop/src-tauri/src/business/services/material_matching_service.rs index 4f0d940..c1115c7 100644 --- a/apps/desktop/src-tauri/src/business/services/material_matching_service.rs +++ b/apps/desktop/src-tauri/src/business/services/material_matching_service.rs @@ -406,11 +406,17 @@ impl MaterialMatchingService { continue; } + println!("🔍 检查素材: {} ({})", material.name, material.id); + println!(" 素材片段数量: {}", material.segments.len()); + println!(" 分类记录数量: {}", records.len()); + // 检查是否有素材片段 if material.segments.is_empty() { + println!(" ⚠️ 素材未切分,创建虚拟片段"); // 如果素材没有被切分,但有分类记录,我们需要为每个分类记录创建对应的虚拟片段 // 因为每个分类记录的segment_id对应一个具体的片段 if let Some(duration) = material.get_duration() { + println!(" 原始素材时长: {:.3}秒", duration); // 为每个分类记录创建一个虚拟片段 for record in records { // 检查该片段是否已被使用 @@ -418,6 +424,8 @@ impl MaterialMatchingService { continue; // 跳过已使用的片段 } + println!(" 创建虚拟片段: segment_id={}, category={}", record.segment_id, record.category); + // 创建虚拟片段,使用分类记录中的segment_id let virtual_segment = MaterialSegment { id: record.segment_id.clone(), // 使用分类记录中的segment_id @@ -435,10 +443,12 @@ impl MaterialMatchingService { created_at: chrono::Utc::now(), }; + println!(" 虚拟片段时长: {:.3}秒", virtual_segment.duration); classified_segments.push((virtual_segment, record.category.clone())); } } } else { + println!(" ✅ 素材已切分,使用真实片段"); // 为每个素材片段查找对应的分类记录 for segment in &material.segments { // 检查该片段是否已被使用 @@ -448,6 +458,8 @@ impl MaterialMatchingService { // 查找该片段的分类记录 if let Some(record) = records.iter().find(|r| r.segment_id == segment.id) { + println!(" 真实片段: id={}, 时长={:.3}秒, category={}", + segment.id, segment.duration, record.category); classified_segments.push((segment.clone(), record.category.clone())); } }