feat:更新数据表结构

This commit is contained in:
2026-08-09 14:02:20 +08:00
parent 0760f53cc6
commit 2f4fa66190
15 changed files with 270 additions and 211 deletions

53
service/record_service.py Normal file
View File

@@ -0,0 +1,53 @@
from typing import List
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import joinedload
from models.library import Record
from schemas.record import RecordResponse, RecordRequest
from service import subject_service
async def get_record(db: AsyncSession, subject: str) -> List[RecordResponse]:
subject_id = await subject_service.get_subject_by_name(db, subject)
stmt = (
select(Record)
.options(joinedload(Record.subject))
.where(Record.subject_id == subject_id)
.order_by(Record.create_time.desc())
)
records = (await db.execute(stmt)).scalars().unique().all()
return [
RecordResponse(
id=record.id,
type=record.type,
totalCount=record.total_count,
correctCount=record.correct_count,
wrongCount=record.wrong_count,
createTime=record.create_time.strftime("%Y-%m-%d %H:%M:%S"),
)
for record in records
]
async def add_record(db: AsyncSession, subject: str, data: RecordRequest):
subject_id = await subject_service.get_subject_by_name(db, subject)
record = Record(
subject_id=subject_id,
type=data.type,
total_count=data.totalCount,
correct_count=data.correctCount,
wrong_count=data.wrongCount,
)
db.add(record)
await db.flush()
await db.refresh(record)
await db.commit()
return True