优化了students_dao里add_student_dao的报错逻辑。
This commit is contained in:
@@ -62,9 +62,11 @@ def add_student_dao( s , db):
|
||||
phone = s.get("phone")
|
||||
s1_deleted = db.query( Students ).filter( Students.phone == phone ).first()
|
||||
if s1_deleted and s1_deleted.is_deleted == False:
|
||||
return False
|
||||
raise ValueError("该手机号已存在有效学生记录,请勿重复添加")
|
||||
if not phone:
|
||||
return False
|
||||
raise ValueError("手机号不能为空")
|
||||
if not s.get("class_id") or not s.get("advisor_id"):
|
||||
raise ValueError("班级ID和顾问ID必须已经存在才可以绑定")
|
||||
if s1_deleted and s1_deleted.is_deleted == True:
|
||||
s1_deleted.name = s.get("name")
|
||||
s1_deleted.age = s.get("age")
|
||||
@@ -90,10 +92,14 @@ def add_student_dao( s , db):
|
||||
return s1_deleted
|
||||
s1 = Students( **s )
|
||||
db.add(s1)
|
||||
except ValueError as e:
|
||||
# 业务校验异常:回滚并返回错误信息
|
||||
db.rollback()
|
||||
return {"code": 400, "msg": str(e)}
|
||||
except Exception:
|
||||
# 这里可以加日志
|
||||
db.rollback()
|
||||
return False
|
||||
return {"code": 500, "msg": f"系统异常: {str(e)}"}
|
||||
else:
|
||||
db.commit()
|
||||
db.refresh(s1)
|
||||
|
||||
Reference in New Issue
Block a user