修复定时任务日志500错误

问题原因:
- SQL查询中使用AS别名在SQLite Row对象转换时可能失败

修复方案:
- 改为查询所有字段后在Python中进行字段映射
- 添加字段映射:execute_time → created_at
- 添加字段映射:success_accounts → success_count
- 添加字段映射:failed_accounts → failed_count
- 添加字段映射:duration_seconds → duration

位置: database.py 第1661-1683行

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-12-10 16:24:10 +08:00
parent c22e2f6a19
commit 3e54789ee4

View File

@@ -1663,27 +1663,24 @@ def get_schedule_execution_logs(schedule_id, limit=10):
with db_pool.get_db() as conn: with db_pool.get_db() as conn:
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute(''' cursor.execute('''
SELECT SELECT * FROM schedule_execution_logs
id,
schedule_id,
user_id,
schedule_name,
execute_time as created_at,
total_accounts,
success_accounts as success_count,
failed_accounts as failed_count,
total_items,
total_attachments,
total_screenshots,
duration_seconds as duration,
status,
error_message
FROM schedule_execution_logs
WHERE schedule_id = ? WHERE schedule_id = ?
ORDER BY execute_time DESC ORDER BY execute_time DESC
LIMIT ? LIMIT ?
''', (schedule_id, limit)) ''', (schedule_id, limit))
return [dict(row) for row in cursor.fetchall()]
# 将数据库字段映射到前端期望的字段名
logs = []
for row in cursor.fetchall():
log = dict(row)
# 字段映射
log['created_at'] = log.get('execute_time')
log['success_count'] = log.get('success_accounts', 0)
log['failed_count'] = log.get('failed_accounts', 0)
log['duration'] = log.get('duration_seconds', 0)
logs.append(log)
return logs
def get_user_all_schedule_logs(user_id, limit=50): def get_user_all_schedule_logs(user_id, limit=50):