优化了students_dao里add_student_dao的报错逻辑。

This commit is contained in:
Orangeeee
2026-09-22 21:42:44 +08:00
parent ff68a676c4
commit e76cee4bd6
3 changed files with 18 additions and 12 deletions
+9 -3
View File
@@ -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)