# api/v1/history_router.py from fastapi import APIRouter, Depends import urllib.parse from moldinsight.services.file_history_service import FileHistoryService from shared.database.database import get_db_session from shared.services.auth_service import get_current_active_user from shared.models.identity import User from shared.utils.logger import get_logger from sqlalchemy.ext.asyncio import AsyncSession logger = get_logger(__name__) router = APIRouter() @router.get("/history") @router.post("/history") async def get_file_history( db_session: AsyncSession = Depends(get_db_session), current_user: User = Depends(get_current_active_user), ): """获取当前用户按文件名分组的文件历史记录(支持多上传)""" storage_service = FileHistoryService() file_groups = await storage_service.get_all_file_groups( db_session, user_id=current_user.id ) return { "total_files": len(file_groups), "files": file_groups } @router.get("/history/{filename}") @router.post("/history/{filename}") async def get_file_records( filename: str, db_session: AsyncSession = Depends(get_db_session), current_user: User = Depends(get_current_active_user), ): """获取当前用户指定文件名的所有上传记录(支持多上传历史)""" decoded_filename = urllib.parse.unquote(filename) storage_service = FileHistoryService() file_records = await storage_service.get_file_history_by_filename( db_session, decoded_filename, user_id=current_user.id, ) return file_records