From e7df7996762d7f3c12856d8f7c089517d5773939 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sat, 11 Oct 2025 18:52:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor(schedule):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=97=A5=E7=A8=8B=E7=94=9F=E6=88=90=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将月度计划的日志记录逻辑从 `plan_manager` 迁移到 `schedule_manager` 中,使其仅在生成日程并实际使用到月度计划时才打印相关信息,避免了不必要的日志输出。 - 从 `plan_manager` 中移除了获取月度计划后的日志打印。 - 在 `schedule_manager` 的日志函数中增加了对参考月度计划的展示,使日志内容更具上下文。 --- src/schedule/plan_manager.py | 3 --- src/schedule/schedule_manager.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/schedule/plan_manager.py b/src/schedule/plan_manager.py index fb4039d3f..56785b288 100644 --- a/src/schedule/plan_manager.py +++ b/src/schedule/plan_manager.py @@ -43,9 +43,6 @@ class PlanManager: await delete_plans_by_ids(delete_ids) # type: ignore plans = await get_active_plans_for_month(target_month) - if plans: - plan_texts = "\n".join([f" {i + 1}. {plan.plan_text}" for i, plan in enumerate(plans)]) - logger.info(f"当前月度计划内容:\n{plan_texts}") return True async def _generate_monthly_plans_logic(self, target_month: str | None = None) -> bool: diff --git a/src/schedule/schedule_manager.py b/src/schedule/schedule_manager.py index 9f1133df6..65c6e369f 100644 --- a/src/schedule/schedule_manager.py +++ b/src/schedule/schedule_manager.py @@ -5,7 +5,7 @@ from typing import Any import orjson from sqlalchemy import select -from src.common.database.sqlalchemy_models import Schedule, get_db_session +from src.common.database.sqlalchemy_models import MonthlyPlan, Schedule, get_db_session from src.common.logger import get_logger from src.config.config import global_config from src.manager.async_task_manager import AsyncTask, async_task_manager @@ -108,7 +108,7 @@ class ScheduleManager: if schedule_data: await self._save_schedule_to_db(today_str, schedule_data) self.today_schedule = schedule_data - self._log_generated_schedule(today_str, schedule_data) + self._log_generated_schedule(today_str, schedule_data, sampled_plans) if sampled_plans: used_plan_ids = [plan.id for plan in sampled_plans] @@ -133,8 +133,16 @@ class ScheduleManager: await session.commit() @staticmethod - def _log_generated_schedule(date_str: str, schedule_data: list[dict[str, Any]]): - schedule_str = f"✅ 成功生成并保存今天的日程 ({date_str}):\n" + def _log_generated_schedule( + date_str: str, schedule_data: list[dict[str, Any]], sampled_plans: list[MonthlyPlan] + ): + schedule_str = f"成功生成并保存今天的日程 ({date_str}):\n" + + if sampled_plans: + plan_texts = "\n".join([f" - {plan.plan_text}" for plan in sampled_plans]) + schedule_str += f"本次日程参考的月度计划:\n{plan_texts}\n" + + schedule_str += "今日日程详情:\n" for item in schedule_data: schedule_str += f" - {item.get('time_range', '未知时间')}: {item.get('activity', '未知活动')}\n" logger.info(schedule_str)