整体bug修改。

This commit is contained in:
Orangeeee
2026-09-23 17:15:58 +08:00
parent 5871afc9aa
commit 483cc9cf28
6 changed files with 53 additions and 23 deletions
+11 -7
View File
@@ -14,15 +14,19 @@ def get_scores(score:ScoreQuery=Depends(),db=Depends(get_db)):
return aa
raise HTTPException(status_code=404,detail='不存在')
@score_api.post('/Score',response_model=ScoreResponse
@score_api.post('/Score'
,summary='成绩添加')
def add_scores(score:ScoreRequest=Depends(),db=Depends(get_db)):
a = score.model_dump()
# print(a,type(a))
aa = add_scores_dao(b=a,db=db)
if aa:
return ScoreResponse(data=a)
raise HTTPException(status_code=500,detail='不可以')
# try:
a = score.model_dump()
# print(a,type(a))
aa = add_scores_dao(b=a,db=db)
if aa:
return aa
# except ValueError as e:
# raise HTTPException(status_code=400, detail="数据库已有该成绩")
# except Exception as e:
# raise HTTPException(status_code=500, detail="数据库错误")
@score_api.put('/Score',summary='成绩更新',description=f'查询条件为学号,班级号,考试序次,考试科目,然后更改这位同学此次科目的成绩')
def update_scores(score:ScoreRequest,sid:int,cid:int,num:int,t_subject:int,db=Depends(get_db)):
+37 -9
View File
@@ -1,3 +1,5 @@
from zipfile import sizeCentralDir
from scores.model.score_model import Score
from datetime import datetime
@@ -28,19 +30,45 @@ def get_scores_dao(s,db):
def add_scores_dao(b,db):
try:
aa = db.query(Score).filter(Score.t_subject==b['t_subject']).all()
aa = db.query(Score).filter(Score.sid == b['sid']
,Score.cid == b['cid']
,Score.t_subject == b['t_subject']
,Score.is_deleted == 0
).first()
if aa:
raise ValueError
else:
z = Score(**b)
db.add(z)
deleted = db.query(Score).filter(
Score.sid == b['sid'],
Score.cid == b['cid'],
Score.t_subject == b['t_subject'],
Score.is_deleted == 1
).first()
if deleted.is_deleted and deleted.is_deleted == True:
deleted.sid = b['sid']
deleted.cid = b['cid']
deleted.num = b['num']
deleted.score = b['score']
deleted.t_subject = b['t_subject']
deleted.create_date = datetime.now()
deleted.update_date = datetime.now()
deleted.is_deleted = False
deleted.deleted_date = None
db.commit()
db.refresh(deleted) # 从数据库再拉一次数据
return b
z = Score(**b)
db.add(z)
db.commit()
db.refresh(z)
return z
except Exception as e:
db.rollback()
print(e)
return False
else:
db.commit()
return True
# print(e)
raise e
def update_scores_dao(sid:int,cid:int,num:int,t_subject:int,update_data:dict,db):
if not update_data:
+4 -4
View File
@@ -1,12 +1,12 @@
from pydantic import BaseModel
from pydantic import BaseModel,Field
class ScoreRequest(BaseModel):
# id:int
sid:int
cid:int
sid:int = Field(ge=1, le=20, description="学生ID:1-20")
cid:int = Field(ge=1, le=8, description="班级ID:1-8")
num:int
score:int
t_subject:int
t_subject:int = Field(ge=1, le=6, description="科目ID:1-6")
class ScoreQuery(BaseModel):
id:int|None = None