|
|
import os
|
|
|
import json
|
|
|
import uuid
|
|
|
from datetime import datetime
|
|
|
|
|
|
# 导入优化后的存储系统适配器
|
|
|
from new_structure.data.storage.schedule_data_adapter import ScheduleDataAdapter
|
|
|
|
|
|
"""
|
|
|
优化的日程数据管理模块
|
|
|
|
|
|
该模块提供了与旧版ScheduleManager兼容的API,
|
|
|
同时利用新版存储系统的性能优化。
|
|
|
"""
|
|
|
|
|
|
class ScheduleManager:
|
|
|
"""优化的日程数据管理类
|
|
|
|
|
|
提供与旧版ScheduleManager相同的API,
|
|
|
但使用新版存储系统和缓存机制提高性能。
|
|
|
"""
|
|
|
|
|
|
def __init__(self, auth=None, logger=None):
|
|
|
"""初始化日程管理类
|
|
|
|
|
|
Args:
|
|
|
auth: 用户认证对象,用于验证用户身份
|
|
|
logger: 日志对象,用于记录操作日志
|
|
|
"""
|
|
|
self.auth = auth
|
|
|
self.logger = logger
|
|
|
# 初始化适配器
|
|
|
self._adapter = ScheduleDataAdapter(logger=logger)
|
|
|
|
|
|
def _get_schedule_file(self, user_identifier):
|
|
|
"""(兼容方法) 获取用户日程文件路径
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
|
|
|
Returns:
|
|
|
str: 模拟的文件路径
|
|
|
"""
|
|
|
# 这个方法在新版存储系统中不再需要实际文件路径,
|
|
|
# 但为了保持API兼容,返回一个模拟路径
|
|
|
username = user_identifier
|
|
|
if isinstance(user_identifier, str) and "_" in user_identifier:
|
|
|
username = user_identifier.split("_")[0]
|
|
|
return f"data/schedule_{username}.json"
|
|
|
|
|
|
def load_schedules(self, user_identifier):
|
|
|
"""加载用户日程数据
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
|
|
|
Returns:
|
|
|
list: 日程数据列表
|
|
|
"""
|
|
|
return self._adapter.load_schedules(user_identifier)
|
|
|
|
|
|
def save_schedules(self, user_identifier, schedules):
|
|
|
"""保存用户日程数据
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
schedules: 日程数据列表
|
|
|
|
|
|
Returns:
|
|
|
bool: 保存成功返回True,失败返回False
|
|
|
"""
|
|
|
return self._adapter.save_schedules(user_identifier, schedules)
|
|
|
|
|
|
def create_schedule(self, user_identifier, schedule_data):
|
|
|
"""创建新日程
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
schedule_data: 日程数据
|
|
|
|
|
|
Returns:
|
|
|
tuple: (bool, dict) - (创建成功标志, 创建的日程数据)
|
|
|
"""
|
|
|
return self._adapter.create_schedule(user_identifier, schedule_data)
|
|
|
|
|
|
def update_schedule(self, user_identifier, schedule_id, schedule_data):
|
|
|
"""更新日程信息
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
schedule_id: 要更新的日程ID
|
|
|
schedule_data: 更新后的日程数据
|
|
|
|
|
|
Returns:
|
|
|
tuple: (bool, dict) - (更新成功标志, 更新后的日程数据)
|
|
|
"""
|
|
|
return self._adapter.update_schedule(user_identifier, schedule_id, schedule_data)
|
|
|
|
|
|
def delete_schedule(self, user_identifier, schedule_id):
|
|
|
"""删除指定ID的日程
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
schedule_id: 要删除的日程ID
|
|
|
|
|
|
Returns:
|
|
|
bool: 删除成功返回True,失败返回False
|
|
|
"""
|
|
|
return self._adapter.delete_schedule(user_identifier, schedule_id)
|
|
|
|
|
|
def get_schedules_by_date(self, user_identifier, date_str):
|
|
|
"""获取指定日期的所有日程
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
date_str: 日期字符串
|
|
|
|
|
|
Returns:
|
|
|
list: 指定日期的日程列表
|
|
|
"""
|
|
|
return self._adapter.get_schedules_by_date(user_identifier, date_str)
|
|
|
|
|
|
def search_schedules(self, user_identifier, keyword):
|
|
|
"""根据关键字搜索日程
|
|
|
|
|
|
Args:
|
|
|
user_identifier: 用户标识符
|
|
|
keyword: 搜索关键字
|
|
|
|
|
|
Returns:
|
|
|
list: 搜索结果列表
|
|
|
"""
|
|
|
return self._adapter.search_schedules(user_identifier, keyword) |