diff --git a/backend/utils/database.py b/backend/utils/database.py index 1b375f1..cc18082 100644 --- a/backend/utils/database.py +++ b/backend/utils/database.py @@ -12,6 +12,19 @@ import aiomysql from typing import Optional, Dict, Any, List from contextlib import asynccontextmanager +from datetime import datetime, date + +def _convert_datetime(obj: Any) -> Any: + '''递归转换datetime对象为字符串''' + if isinstance(obj, datetime): + return obj.strftime('%Y-%m-%d %H:%M:%S') + elif isinstance(obj, date): + return obj.strftime('%Y-%m-%d') + elif isinstance(obj, dict): + return {k: _convert_datetime(v) for k, v in obj.items()} + elif isinstance(obj, list): + return [_convert_datetime(item) for item in obj] + return obj from config import settings from utils.logger import get_logger @@ -88,14 +101,16 @@ async def execute_query(sql: str, params: tuple = None) -> List[Dict[str, Any]]: """执行查询SQL""" async with get_connection() as cursor: await cursor.execute(sql, params) - return await cursor.fetchall() + result = await cursor.fetchall() + return _convert_datetime(result) async def execute_one(sql: str, params: tuple = None) -> Optional[Dict[str, Any]]: """执行查询SQL(单条)""" async with get_connection() as cursor: await cursor.execute(sql, params) - return await cursor.fetchone() + result = await cursor.fetchone() + return _convert_datetime(result) async def execute_insert(sql: str, params: tuple = None) -> int: diff --git a/frontend/index.php b/frontend/index.php index 496920c..700f751 100644 --- a/frontend/index.php +++ b/frontend/index.php @@ -51,7 +51,10 @@ if (isset($_SESSION['user_id']) && isset($_SESSION['user_type'])) {