fix: 修复 SQLAlchemy case() 语法
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
- admin.py: 使用 case() 替代 func.case() - task_service.py: 同上 - 已在服务器执行数据库迁移创建 user_course_progress 表
This commit is contained in:
@@ -6,7 +6,7 @@ from typing import Optional, List, Dict, Any
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from fastapi import APIRouter, Depends, Query
|
from fastapi import APIRouter, Depends, Query
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy import select, func
|
from sqlalchemy import select, func, case
|
||||||
|
|
||||||
from app.core.deps import get_current_active_user as get_current_user, get_db
|
from app.core.deps import get_current_active_user as get_current_user, get_db
|
||||||
from app.models.user import User
|
from app.models.user import User
|
||||||
@@ -216,7 +216,7 @@ async def get_course_completion_data(
|
|||||||
select(
|
select(
|
||||||
func.count(UserCourseProgress.id).label('total'),
|
func.count(UserCourseProgress.id).label('total'),
|
||||||
func.sum(
|
func.sum(
|
||||||
func.case(
|
case(
|
||||||
(UserCourseProgress.status == ProgressStatus.COMPLETED.value, 1),
|
(UserCourseProgress.status == ProgressStatus.COMPLETED.value, 1),
|
||||||
else_=0
|
else_=0
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"""
|
"""
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from sqlalchemy import select, func, and_
|
from sqlalchemy import select, func, and_, case
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.orm import joinedload
|
from sqlalchemy.orm import joinedload
|
||||||
from app.models.task import Task, TaskCourse, TaskAssignment, TaskStatus, AssignmentStatus
|
from app.models.task import Task, TaskCourse, TaskAssignment, TaskStatus, AssignmentStatus
|
||||||
@@ -154,7 +154,7 @@ class TaskService(BaseService[Task]):
|
|||||||
stmt = select(
|
stmt = select(
|
||||||
func.count(TaskAssignment.id).label('total'),
|
func.count(TaskAssignment.id).label('total'),
|
||||||
func.sum(
|
func.sum(
|
||||||
func.case(
|
case(
|
||||||
(TaskAssignment.status == AssignmentStatus.COMPLETED, 1),
|
(TaskAssignment.status == AssignmentStatus.COMPLETED, 1),
|
||||||
else_=0
|
else_=0
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user