优化了students_dao里add_student_dao的报错逻辑。
This commit is contained in:
@@ -30,7 +30,7 @@ def get_students( stu:StudentsQuery = Depends()
|
||||
f'注意事项:\n'
|
||||
f'时间格式:YYYY-MM-DD\n'
|
||||
f'班级ID和顾问ID必须已经存在才可以绑定'
|
||||
,response_model=StudentsResponse )
|
||||
)
|
||||
def add_student( stu:StudentsResponse = Depends()
|
||||
, db=Depends(get_db)
|
||||
):
|
||||
|
||||
@@ -66,7 +66,13 @@ def add_student_dao( s , db):
|
||||
if not phone:
|
||||
raise ValueError("手机号不能为空")
|
||||
if not s.get("class_id") or not s.get("advisor_id"):
|
||||
raise ValueError("班级ID和顾问ID必须已经存在才可以绑定")
|
||||
raise ValueError("班级ID和顾问ID不能为空")
|
||||
s1_class_id = db.query(Students).filter(Students.phone == phone).first()
|
||||
s1_advisor_id = db.query(Students).filter(Students.phone == phone).first()
|
||||
if not s1_class_id:
|
||||
raise ValueError(f"班级ID {s.get("class_id")} 不存在,请先创建班级")
|
||||
if not s1_advisor_id:
|
||||
raise ValueError(f"顾问ID {s.get("advisor_id")} 不存在,请先创建顾问")
|
||||
if s1_deleted and s1_deleted.is_deleted == True:
|
||||
s1_deleted.name = s.get("name")
|
||||
s1_deleted.age = s.get("age")
|
||||
@@ -92,16 +98,16 @@ def add_student_dao( s , db):
|
||||
return s1_deleted
|
||||
s1 = Students( **s )
|
||||
db.add(s1)
|
||||
db.commit()
|
||||
except ValueError as e:
|
||||
# 业务校验异常:回滚并返回错误信息
|
||||
db.rollback()
|
||||
return {"code": 400, "msg": str(e)}
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
# 这里可以加日志
|
||||
db.rollback()
|
||||
return {"code": 500, "msg": f"系统异常: {str(e)}"}
|
||||
else:
|
||||
db.commit()
|
||||
db.refresh(s1)
|
||||
return s1
|
||||
|
||||
@@ -147,14 +153,14 @@ def update_student_dao( s , db):
|
||||
# 额外字段
|
||||
if s.get("phone") is not None:
|
||||
s1_id.student_phone = s.get("phone")
|
||||
s1_id.update_date = datetime.now()
|
||||
db.commit()
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception:
|
||||
db.rollback()
|
||||
raise
|
||||
else:
|
||||
s1_id.update_date = datetime.now()
|
||||
db.commit()
|
||||
db.refresh(s1_id) # 从数据库再拉一次数据
|
||||
return s1_id
|
||||
|
||||
|
||||
Reference in New Issue
Block a user