Files
stu_system/api/score.py
T

40 lines
2.4 KiB
Python
Raw Normal View History

2026-09-21 17:39:16 +08:00
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from database import get_db
from dao.scores import add_score,query_id,query_er,query_sc,update_sc,delete_sc
router = APIRouter(prefix="/scores", tags=["考核成绩管理"])
@router.post("/add", summary="按考核序次录入考核成绩") #1.录入成绩的路由
def add_score_api(id: str = Query(..., description="学生ID"), #用于校验学生ID是否存在
exam_round: int = Query(..., description="考核序次"), #用于校验同一学生同一考核序次是否重复录入
score: int = Query(..., ge=0, le=100, description="成绩(0-100)"), #录入的成绩
db: Session = Depends(get_db)):
return add_score(db=db, id=id, exam_round=exam_round, score=score)
@router.get("/query/id", summary="按学生ID查询成绩") #2. 按学生ID查询的路由
def query_id_api(id: str = Query(..., description="学生ID"),
db: Session = Depends(get_db)):
return query_id(db=db, id=id)
@router.get("/query/round", summary="按考核序次查询成绩") #3. 按考核序次查询的路由
def query_er_api(exam_round: int = Query(..., description="考核序次"),
db: Session = Depends(get_db)):
return query_er(db=db, exam_round=exam_round)
@router.get("/query/score", summary="按成绩查询记录") #4. 按成绩查询的路由
def query_sc_api(score: int = Query(..., ge=0, le=100, description="成绩"),
db: Session = Depends(get_db)):
return query_sc(db=db, score=score)
@router.put("/update", summary="根据学生ID和考核序次修改成绩") #5. 修改成绩的路由
def update_sc_api(id: str = Query(..., description="学生ID"), #根据学生ID
exam_round: int = Query(..., description="考核序次"), #根据考核序次
score: int = Query(..., ge=0, le=100, description="新的成绩"), #修改的成绩值
db: Session = Depends(get_db)):
return update_sc(db=db, id=id, exam_round=exam_round, score=score)
@router.delete("/delete", summary="根据学生ID和考核序次删除成绩") #6. 删除成绩(软删除)
def delete_sc_api(id: str = Query(..., description="学生ID"), #根据学生ID
exam_round: int = Query(..., description="考核序次"), #根据考核序次
db: Session = Depends(get_db)):
return delete_sc(db=db, id=id, exam_round=exam_round)