From 7e414ec37c9c015e95c781b8b24f1e2ca973f9c9 Mon Sep 17 00:00:00 2001 From: kdletters Date: Sun, 21 Jun 2026 20:31:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E5=90=8E=E7=AB=AF=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除未调用的拼图草稿快照辅助函数 移除旧的视频与角色动画计费包装函数 将计费测试对齐到实际使用的模型计费入口 --- .../src/character_animation_assets.rs | 12 ++- .../src/editor_generation_config.rs | 32 ++++---- .../crates/api-server/src/puzzle/draft.rs | 81 ------------------- 3 files changed, 26 insertions(+), 99 deletions(-) diff --git a/server-rs/crates/api-server/src/character_animation_assets.rs b/server-rs/crates/api-server/src/character_animation_assets.rs index ba9b4bbe0..af4f24e05 100644 --- a/server-rs/crates/api-server/src/character_animation_assets.rs +++ b/server-rs/crates/api-server/src/character_animation_assets.rs @@ -4928,11 +4928,19 @@ mod tests { #[test] fn editor_character_animation_price_depends_on_resolution_and_duration() { assert_eq!( - crate::editor_generation_config::editor_character_animation_mud_points("480p", 4), + crate::editor_generation_config::editor_character_animation_model_mud_points( + Some(EDITOR_CHARACTER_ANIMATION_MODEL), + "480p", + 4, + ), 40 ); assert_eq!( - crate::editor_generation_config::editor_character_animation_mud_points("720p", 6), + crate::editor_generation_config::editor_character_animation_model_mud_points( + Some(EDITOR_CHARACTER_ANIMATION_MODEL), + "720p", + 6, + ), 120 ); } diff --git a/server-rs/crates/api-server/src/editor_generation_config.rs b/server-rs/crates/api-server/src/editor_generation_config.rs index 5e8d91c10..af65fe504 100644 --- a/server-rs/crates/api-server/src/editor_generation_config.rs +++ b/server-rs/crates/api-server/src/editor_generation_config.rs @@ -99,11 +99,6 @@ pub(crate) fn editor_video_model_generation_mud_points( per_second * duration_seconds } -pub(crate) fn editor_video_generation_mud_points(resolution: &str, duration_seconds: u32) -> u32 { - let per_second = editor_video_model_resolution_mud_points_per_second(None, resolution); - per_second * duration_seconds -} - pub(crate) fn editor_character_animation_model_mud_points( model: Option<&str>, resolution: &str, @@ -123,13 +118,6 @@ pub(crate) fn editor_character_animation_model_mud_points( per_second * duration_seconds } -pub(crate) fn editor_character_animation_mud_points( - resolution: &str, - duration_seconds: u32, -) -> u32 { - editor_character_animation_model_mud_points(None, resolution, duration_seconds) -} - pub(crate) fn editor_sound_effect_model_generation_mud_points(model: Option<&str>) -> u32 { match model.map(str::trim).filter(|value| !value.is_empty()) { Some(EDITOR_SOUND_EFFECT_MODEL_VIDU) => EDITOR_SOUND_EFFECT_MODEL_VIDU_MUD_POINTS, @@ -150,14 +138,26 @@ mod tests { #[test] fn editor_character_animation_price_uses_configured_resolution_rates() { - assert_eq!(editor_character_animation_mud_points("480p", 4), 40); - assert_eq!(editor_character_animation_mud_points("720p", 6), 120); + assert_eq!( + editor_character_animation_model_mud_points(Some("seedance2.0-fast"), "480p", 4), + 40 + ); + assert_eq!( + editor_character_animation_model_mud_points(Some("seedance2.0-fast"), "720p", 6), + 120 + ); } #[test] fn editor_video_generation_price_uses_configured_resolution_rates() { - assert_eq!(editor_video_generation_mud_points("480p", 4), 40); - assert_eq!(editor_video_generation_mud_points("720p", 5), 100); + assert_eq!( + editor_video_model_generation_mud_points(Some("seedance2.0-fast"), "480p", 4), + 40 + ); + assert_eq!( + editor_video_model_generation_mud_points(Some("seedance2.0-fast"), "720p", 5), + 100 + ); } #[test] diff --git a/server-rs/crates/api-server/src/puzzle/draft.rs b/server-rs/crates/api-server/src/puzzle/draft.rs index 0f6e949e1..fe545dc56 100644 --- a/server-rs/crates/api-server/src/puzzle/draft.rs +++ b/server-rs/crates/api-server/src/puzzle/draft.rs @@ -2108,45 +2108,6 @@ pub(crate) fn apply_generated_puzzle_initial_metadata_to_session_snapshot( session } -pub(crate) fn apply_generated_puzzle_metadata_to_session_snapshot( - mut session: PuzzleAgentSessionRecord, - target_level_id: &str, - metadata: &PuzzleLevelNaming, - previous_level_name: &str, - updated_at_micros: i64, -) -> PuzzleAgentSessionRecord { - let Some(draft) = session.draft.as_mut() else { - return session; - }; - let Some(target_index) = draft - .levels - .iter() - .position(|level| level.level_id == target_level_id) - .or_else(|| (!draft.levels.is_empty()).then_some(0)) - else { - return session; - }; - - draft.levels[target_index].level_name = metadata.level_name.clone(); - if metadata.ui_background_prompt.is_some() { - draft.levels[target_index].ui_background_prompt = metadata.ui_background_prompt.clone(); - } - - if target_index == 0 { - apply_generated_puzzle_initial_metadata_to_draft( - draft, - metadata, - previous_level_name, - updated_at_micros, - ); - } else { - sync_puzzle_primary_draft_fields_from_level(draft); - } - - session.updated_at = format_timestamp_micros(updated_at_micros); - session -} - pub(crate) fn apply_generated_puzzle_initial_metadata_to_draft( draft: &mut PuzzleResultDraftRecord, metadata: &PuzzleLevelNaming, @@ -2196,45 +2157,3 @@ pub(crate) fn sync_puzzle_primary_draft_fields_from_level(draft: &mut PuzzleResu }); } } - -pub(crate) fn replace_puzzle_session_draft_snapshot( - mut session: PuzzleAgentSessionRecord, - draft: PuzzleResultDraftRecord, - updated_at_micros: i64, -) -> PuzzleAgentSessionRecord { - session.draft = Some(draft); - session.updated_at = format_timestamp_micros(updated_at_micros); - session -} - -pub(crate) fn apply_generated_puzzle_ui_background_to_session_snapshot( - mut session: PuzzleAgentSessionRecord, - target_level_id: &str, - prompt: String, - image_src: String, - image_object_key: Option, - updated_at_micros: i64, -) -> PuzzleAgentSessionRecord { - let Some(draft) = session.draft.as_mut() else { - return session; - }; - let Some(target_index) = draft - .levels - .iter() - .position(|level| level.level_id == target_level_id) - .or_else(|| (!draft.levels.is_empty()).then_some(0)) - else { - return session; - }; - let level = &mut draft.levels[target_index]; - level.ui_background_prompt = Some(prompt); - level.ui_background_image_src = Some(image_src); - level.ui_background_image_object_key = image_object_key; - if target_index == 0 { - sync_puzzle_primary_draft_fields_from_level(draft); - } - session.progress_percent = session.progress_percent.max(96); - session.last_assistant_reply = Some("拼图 UI 背景图已生成。".to_string()); - session.updated_at = format_timestamp_micros(updated_at_micros); - session -}