This commit is contained in:
msj
2026-09-22 14:58:51 +08:00
parent bf44ac9450
commit 957e826e0f
2 changed files with 27 additions and 9 deletions
+6 -1
View File
@@ -32,11 +32,16 @@ def update_students(s:StudentRequest
,stu_id:int
,db=Depends(get_db)):
d = s.model_dump(exclude_unset=True)
d.pop('stu_id', None)
if not d:
raise HTTPException(status_code=400, detail='更新内容不能为空')
r = update_student_dao( stu_id=stu_id,update_data=d,db=db )
if r == 'conflict':
raise HTTPException(status_code=409, detail = '身份证号已被其他学生占用')
if r == 'error':
raise HTTPException(status_code=500, detail='更新失败,请稍后重试')
if not r:
raise HTTPException(status_code=500, detail='没有更新')
raise HTTPException(status_code=404, detail='没有更新')
return {'code':200,'totals':r,'detail':'更新成功'}
@StudentAPI.delete('/{stu_id}',summary='学生信息删除接口',description='删除学生信息')
+19 -6
View File
@@ -36,15 +36,28 @@ def delete_student_dao(stu_id,db):
return rows
def update_student_dao(stu_id,update_data,db):
if update_data.get('id_card'):
conflict = (db.query(Student_Model)
.filter(Student_Model.id_card == update_data['id_card'],
Student_Model.stu_id != stu_id,
Student_Model.delete_status == 0)
.first())
if conflict:
return 'conflict'
try:
rows=(db.query(Student_Model)
.fiter(Student_Model.stu_id == stu_id,Student_Model.delete_status == 0)
rows = (db.query(Student_Model)
.filter(Student_Model.stu_id == stu_id,
Student_Model.delete_status == 0)
.update(update_data))
except:
db.rollback()
return False
else:
db.commit()
except IntegrityError:
db.rollback()
return 'conflict'
except Exception:
db.rollback()
return 'error'
return rows
def get_student_dao(stu_id:Optional[int]