diff --git a/apps/desktop/src-tauri/src/app_state.rs b/apps/desktop/src-tauri/src/app_state.rs index ce319c2..ee75be0 100644 --- a/apps/desktop/src-tauri/src/app_state.rs +++ b/apps/desktop/src-tauri/src/app_state.rs @@ -75,6 +75,10 @@ impl AppState { video_generation_repository.init_tables()?; conversation_repository.initialize_tables()?; + // 初始化穿搭图片相关表 + let outfit_image_repository = crate::data::repositories::outfit_image_repository::OutfitImageRepository::new(database.clone()); + outfit_image_repository.init_tables()?; + *self.database.lock().unwrap() = Some(database.clone()); *self.project_repository.lock().unwrap() = Some(project_repository); *self.material_repository.lock().unwrap() = Some(material_repository); @@ -104,6 +108,10 @@ impl AppState { video_generation_repository.init_tables()?; conversation_repository.initialize_tables()?; + // 初始化穿搭图片相关表 + let outfit_image_repository = crate::data::repositories::outfit_image_repository::OutfitImageRepository::new(database.clone()); + outfit_image_repository.init_tables()?; + *self.database.lock().unwrap() = Some(database.clone()); *self.project_repository.lock().unwrap() = Some(project_repository); *self.material_repository.lock().unwrap() = Some(material_repository); diff --git a/apps/desktop/src-tauri/src/data/repositories/outfit_image_repository.rs b/apps/desktop/src-tauri/src/data/repositories/outfit_image_repository.rs index 7ed1cf9..59472bd 100644 --- a/apps/desktop/src-tauri/src/data/repositories/outfit_image_repository.rs +++ b/apps/desktop/src-tauri/src/data/repositories/outfit_image_repository.rs @@ -371,10 +371,10 @@ impl OutfitImageRepository { r#" SELECT COUNT(*) as total_records, - SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) as pending_records, - SUM(CASE WHEN status = 'processing' THEN 1 ELSE 0 END) as processing_records, - SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed_records, - SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) as failed_records + COALESCE(SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END), 0) as pending_records, + COALESCE(SUM(CASE WHEN status = 'processing' THEN 1 ELSE 0 END), 0) as processing_records, + COALESCE(SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END), 0) as completed_records, + COALESCE(SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END), 0) as failed_records FROM outfit_image_records WHERE model_id = ?1 "#, ).map_err(|e| anyhow!("准备查询语句失败: {}", e))?; @@ -395,7 +395,7 @@ impl OutfitImageRepository { r#" SELECT COUNT(*) as total_images, - SUM(CASE WHEN is_favorite = 1 THEN 1 ELSE 0 END) as favorite_images + COALESCE(SUM(CASE WHEN is_favorite = 1 THEN 1 ELSE 0 END), 0) as favorite_images FROM outfit_images oi JOIN outfit_image_records oir ON oi.outfit_record_id = oir.id WHERE oir.model_id = ?1