40 lines
2.4 KiB
Python
40 lines
2.4 KiB
Python
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)
|