整体bug修改。
This commit is contained in:
+11
-7
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user