| 123456789101112131415161718192021222324252627 |
- """订单支付超时自动关闭任务。"""
- import logging
- from datetime import datetime, timedelta
- from sqlalchemy.orm import Session
- from app.crud.order import order_crud
- logger = logging.getLogger(__name__)
- def close_timeout_online_orders(db: Session) -> int:
- """关闭超时未支付的线上订单(超时分钟数来自系统设置 auto_cancel_minutes)。"""
- from app.api.system_config import get_auto_cancel_minutes_for_job
- timeout_minutes = get_auto_cancel_minutes_for_job(db)
- before_time = datetime.now() - timedelta(minutes=timeout_minutes)
- timeout_note = f"超过未支付自动取消时限({timeout_minutes} 分钟)"
- return order_crud.close_unpaid_online_orders(
- db, before_time=before_time, timeout_note=timeout_note
- )
- def run_close_timeout_online_orders(db: Session):
- """定时任务包装。"""
- count = close_timeout_online_orders(db)
- logger.info(f"线上支付超时订单自动关闭完成: {count} 条")
|