diff --git a/scores/api/score_api.py b/scores/api/score_api.py index eb9b266..ce8177a 100644 --- a/scores/api/score_api.py +++ b/scores/api/score_api.py @@ -24,18 +24,18 @@ def add_scores(score:ScoreRequest=Depends(),db=Depends(get_db)): raise HTTPException(status_code=500,detail='没有') @score_api.put('/Score') -def update_scores(score:ScoreRequest,sid:int,cid:int,db=Depends(get_db)): - a = score.model_dump() - aa = update_scores_dao(sid = sid,cid = cid,update_date = a,db=db) +def update_scores(score:ScoreRequest,sid:int,cid:int,num:int,tsub:str,db=Depends(get_db)): + a = score.model_dump(exclude_unset=True,exclude={'id','sid','cid','num','tsub'}) + aa = update_scores_dao(sid = sid,cid = cid,num = num,tsub = tsub,update_data = a,db=db) if not aa: raise HTTPException(status_code=404,detail='没有更新') return {'message':'更新成功','data':a} @score_api.delete('/Score') -def get_scores(student_id:int,class_id:int,db=Depends(get_db)): - aaa = delete_scores_dao(student_id,class_id,db) +def delete_scores(sid:int,cid:int,tsub:str,db=Depends(get_db)): + aaa = delete_scores_dao(sid,cid,tsub,db) if not aaa: - raise HTTPException(status_code=500,detail='没有删除') - return {'code':200,'totals':aaa,'detail':'更新成功'} + raise HTTPException(status_code=404,detail='记录不存在') + return {'message':'更新成功','detail':aaa} diff --git a/scores/dao/score_dao.py b/scores/dao/score_dao.py index 4899123..61926a9 100644 --- a/scores/dao/score_dao.py +++ b/scores/dao/score_dao.py @@ -42,9 +42,12 @@ def add_scores_dao(b,db): db.commit() return True -def update_scores_dao(sid:int,cid:int,db): +def update_scores_dao(sid:int,cid:int,num:int,tsub:str,update_data:dict,db): try: - aa = db.query(Score).filter(Score.sid == sid , Score.cid == cid,update_date=a).update() + aa = db.query(Score).filter(Score.sid == sid + ,Score.cid == cid + ,Score.num == num + ,Score.tsub == tsub ).update(update_data) except: db.rollback() return False @@ -52,9 +55,12 @@ def update_scores_dao(sid:int,cid:int,db): db.commit() return aa -def delete_scores_dao(sid,cid,db): +def delete_scores_dao(sid:int,cid:int,tsub:str,db): try: - aaa = db.query(Score).filter(Score.sid ==sid,cid = cid).delete() + aaa = db.query(Score).filter(Score.sid ==sid + ,Score.cid == cid + ,Score.tsub == tsub + ,Score.is_deleted==0).delete() except: db.rollback() aaa = 0 diff --git a/scores/schema/score_request.py b/scores/schema/score_request.py index a92e9ce..7c80390 100644 --- a/scores/schema/score_request.py +++ b/scores/schema/score_request.py @@ -2,8 +2,8 @@ from pydantic import BaseModel class ScoreRequest(BaseModel): # id:int - cid:int sid:int + cid:int num:int score:int tsub:str