diff --git a/PythonProject/api/grade_api.py b/PythonProject/api/grade_api.py index 7c93d1b..f76c053 100644 --- a/PythonProject/api/grade_api.py +++ b/PythonProject/api/grade_api.py @@ -1,9 +1,14 @@ from fastapi import APIRouter,Depends,HTTPException,Path from util.database import get_db from model.all_model import Student_Model +from dao.grade_dao import * -gradeAPI = APIRouter() +gradeAPI = APIRouter(tags=['学生考核成绩']) -@gradeAPI.get(f"/grade/{id}",summary="根据ID查询单条成绩") -def get_grade(id:int,db=Depends(get_db)): - pass +@gradeAPI.get("/grade/{stu_id}",summary="根据学生id查询成绩") +def get_grade(stu_id: int,db=Depends(get_db)): + try: + res=get_grade_dao(stu_id,db) + return {'code': 200,'msg':'查询成功','data':res} + except Exception as e: + raise HTTPException(status_code=500,detail=f'数据库查询异常:{str(e)}') diff --git a/PythonProject/dao/grade_dao.py b/PythonProject/dao/grade_dao.py index e69de29..8ee4926 100644 --- a/PythonProject/dao/grade_dao.py +++ b/PythonProject/dao/grade_dao.py @@ -0,0 +1,15 @@ +from fastapi import Depends,HTTPException + +from util.database import get_db + +from model.grade_model import * + + +def get_grade_dao( stu_id:int + ,db=Depends(get_db)): + + r1 =db.query(WlScore).filter(WlScore.stu_id == stu_id,WlScore.delete_status == 0).all() + if r1: + return r1 + else: + raise HTTPException(status_code=404,detail="学生不存在") diff --git a/PythonProject/schema/employment_schema.py b/PythonProject/schema/employment_schema.py index e69de29..47a153f 100644 --- a/PythonProject/schema/employment_schema.py +++ b/PythonProject/schema/employment_schema.py @@ -0,0 +1,30 @@ +from fastapi import Query,HTTPException +from pydantic import BaseModel, field_validator +from datetime import datetime + +class EmlpoymentRequest(BaseModel): + stu_id: int=Query(ge=1) + email: str|None + employment_opening_date:datetime + offer_issuance_date:datetime + company_name:str + company_address:str|None + salary:float + + @field_validator('stu_id') + def check(cls,n): + i = cls.model_dump() + if i['stu_id'] == n: + return n + raise HTTPException(status_code=404,detail='未找到该学生的就业信息!') + +class EmploymentResponse(BaseModel): + code:int = 200 + detail:str = 'OK' + stu_id: int + email: str | None + employment_opening_date: datetime + offer_issuance_date: datetime + company_name: str + company_address: str | None + salary: float \ No newline at end of file