Merge remote-tracking branch 'origin/conding' into conding

This commit is contained in:
msj
2026-09-21 20:12:12 +08:00
4 changed files with 48 additions and 8 deletions
+16 -6
View File
@@ -14,17 +14,27 @@ def get_grade(stu_id: int,db=Depends(get_db)):
except Exception as e:
raise HTTPException(status_code=500,detail=f'数据库查询异常:{str(e)}')
@gradeAPI.post('/{stu_id}',response_model=GradeResponse,summary='添加学生成绩')
@gradeAPI.post('/grade',response_model=GradeResponse,summary='添加学生成绩')
def post_grade(o:GradeRequest=Form(),db=Depends(get_db)):
exist_obj = get_grade_dao(db,o.stu_id)
if exist_obj:
raise HTTPException(status_code=409, detail="该学生此考核序次成绩已存在!")
d=o.model_dump()
r=add_grade_dao(g=d,db=db)
if not r:
raise HTTPException(status_code=400, detail='学生不存在')
return o
@gradeAPI.put('/{score_id}',summary='成绩修改')
def put_grade(score_id: int,o:GradeUpdate,db=Depends(get_db)):
d = o.model_update(exclude_unset=True)
r = update_grade_dao(score_id=score_id
,update_data=d
,db=db)
if not r:
raise HTTPException(status_code=500,detail='没有更新')
return {'code':200,'totals':r,'detail':'更新成功'}
@gradeAPI.delete('/{score_id}',summary='删除成绩')
def delete_grade(score_id:int,db=Depends(get_db)):
r = delete_grade_dao(stu_id=score_id,db=db)
if not r:
raise HTTPException(status_code=404,detail='删除失败')
return {'code':200,'totals':r,'detail':'删除成功'}
+1 -1
View File
@@ -31,7 +31,7 @@ def update_class_dao(id:int,req:ClassManagement,session):
raise HTTPException(status_code=400,detail="更新格式错误或参数缺失,请重新输入!")
return '更新成功,请核对信息!'
def delete_class(id:int,session):
def delete_class_dao(id:int,session):
try:
session.query(ClassManagement).filter(ClassManagement.class_id==id,ClassManagement.delete_status==0)\
.update({'delete_status': 1})
+26
View File
@@ -22,3 +22,29 @@ def add_grade_dao(g,db):
except Exception:
db.rollback()
return None
def update_grade_dao(score_id:int, update_data, db):
try:
rows = db.query(WlScore).filter(
WlScore.stu_id == score_id,
WlScore.delete_status == 0
).update(update_data)
except:
db.rollback()
return False
else:
db.commit()
return rows
def delete_grade_dao(stu_id:int,db):
try:
rows = db.query(WlScore).filter(
WlScore.stu_id == stu_id,
WlScore.delete_status == 0
).update({'delete_status':1})
except:
db.rollback()
return False
else:
db.commit()
return rows
+4
View File
@@ -8,6 +8,10 @@ class GradeRequest(BaseModel):
exam_order:int = Field(description='考核序次')
score:float = Field(description='成绩')
class GradeUpdate(BaseModel):#修改请求体
exam_order: int = Field(description='考核序次')
score: float = Field(description='成绩')
class GradeResponse(BaseModel):
code: int = 200
detail: str = 'OK'