feat: 内容数据迁移至数据库,合规审查全链路打通
- 文章 HTML 存储从文件系统迁移至 articles 表,删除 releases 目录 - 合规审查从 DB 读取 HTML,审查结果写回 DB,通过后自动推进至待发布 - 新增 todayCount 筛选按钮,与系统概览统计数据一致 - 全屏预览修复:提升 z-index 超过侧边栏,添加退出全屏/关闭按钮 - 统一 '优化' → '审查' 命名,消除前后端术语不一致 - 调度器创作完成后自动触发审查(生成 → 审查 → 待发布) - 清理旧备份/调试文件、过期大纲和研究笔记
This commit is contained in:
@@ -88,9 +88,9 @@ def start_task(
|
||||
if not task:
|
||||
raise HTTPException(status_code=404, detail="任务不存在")
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
task.status = "running"
|
||||
task.started_at = datetime.now()
|
||||
task.started_at = datetime.now(timezone.utc)
|
||||
task.message = "任务已启动"
|
||||
task.progress = 0
|
||||
db.commit()
|
||||
@@ -130,16 +130,17 @@ def complete_task(
|
||||
if not task:
|
||||
raise HTTPException(status_code=404, detail="任务不存在")
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
finished = datetime.now(timezone.utc)
|
||||
task.status = "completed"
|
||||
task.finished_at = datetime.now()
|
||||
task.finished_at = finished
|
||||
task.progress = 100
|
||||
if message:
|
||||
task.message = message
|
||||
if result_data:
|
||||
task.result_data = result_data
|
||||
if task.started_at:
|
||||
task.duration = int((task.finished_at - task.started_at).total_seconds())
|
||||
task.duration = int((finished - task.started_at).total_seconds())
|
||||
db.commit()
|
||||
db.refresh(task)
|
||||
return task
|
||||
@@ -156,12 +157,13 @@ def fail_task(
|
||||
if not task:
|
||||
raise HTTPException(status_code=404, detail="任务不存在")
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
finished = datetime.now(timezone.utc)
|
||||
task.status = "failed"
|
||||
task.finished_at = datetime.now()
|
||||
task.finished_at = finished
|
||||
task.error_msg = error_msg
|
||||
if task.started_at:
|
||||
task.duration = int((task.finished_at - task.started_at).total_seconds())
|
||||
task.duration = int((finished - task.started_at).total_seconds())
|
||||
db.commit()
|
||||
db.refresh(task)
|
||||
return task
|
||||
@@ -189,8 +191,9 @@ def run_creator_task(
|
||||
current_user=Depends(get_current_user)
|
||||
):
|
||||
import threading
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
|
||||
now = datetime.now(timezone.utc)
|
||||
task_id = f"task_{uuid.uuid4().hex[:16]}"
|
||||
|
||||
task = ContentTask(
|
||||
@@ -198,7 +201,7 @@ def run_creator_task(
|
||||
topic_id=topic_id,
|
||||
stage="creator",
|
||||
status="running",
|
||||
started_at=datetime.now(),
|
||||
started_at=now,
|
||||
created_by=current_user.username
|
||||
)
|
||||
db.add(task)
|
||||
@@ -210,22 +213,22 @@ def run_creator_task(
|
||||
def _run():
|
||||
try:
|
||||
result = run_creator(topic_id)
|
||||
from datetime import datetime
|
||||
finished = datetime.now(timezone.utc)
|
||||
task.status = "completed"
|
||||
task.finished_at = datetime.now()
|
||||
task.finished_at = finished
|
||||
task.progress = 100
|
||||
task.message = "创作完成"
|
||||
task.result_data = result or {}
|
||||
if task.started_at:
|
||||
task.duration = int((task.finished_at - task.started_at).total_seconds())
|
||||
task.duration = int((finished - task.started_at).total_seconds())
|
||||
db.commit()
|
||||
except Exception as e:
|
||||
from datetime import datetime
|
||||
finished = datetime.now(timezone.utc)
|
||||
task.status = "failed"
|
||||
task.finished_at = datetime.now()
|
||||
task.finished_at = finished
|
||||
task.error_msg = str(e)
|
||||
if task.started_at:
|
||||
task.duration = int((task.finished_at - task.started_at).total_seconds())
|
||||
task.duration = int((finished - task.started_at).total_seconds())
|
||||
db.commit()
|
||||
|
||||
thread = threading.Thread(target=_run)
|
||||
|
||||
Reference in New Issue
Block a user