精简后端功能模块并补充教学互动
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm import Session, selectinload
|
||||
|
||||
from app.models.source_case import CaseBase
|
||||
|
||||
|
||||
class TeachingRepository:
|
||||
"""教学互动仓储:读取 case_base + teaching_case 以及评分相关扩展数据。"""
|
||||
|
||||
def __init__(self, db: Session) -> None:
|
||||
self.db = db
|
||||
|
||||
def get_active_teaching_case(self, case_id: int) -> CaseBase | None:
|
||||
"""教学病例读取:校验病例已发布、已启用且存在 teaching_case 扩展。"""
|
||||
stmt = (
|
||||
select(CaseBase)
|
||||
.options(
|
||||
selectinload(CaseBase.teaching_case),
|
||||
selectinload(CaseBase.traditional_case),
|
||||
selectinload(CaseBase.scoring_rules),
|
||||
)
|
||||
.where(CaseBase.id == case_id, CaseBase.status == 1, CaseBase.publish_status == 1)
|
||||
)
|
||||
case = self.db.scalar(stmt)
|
||||
return case if case and case.teaching_case else None
|
||||
Reference in New Issue
Block a user