77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
# student_dao:所有数据库的逻辑
|
|
|
|
from students.model.students_model import Students
|
|
from students.schema.students_request import *
|
|
|
|
# 记得加校验
|
|
|
|
# 查询
|
|
def get_student_dao( s , db):
|
|
q = db.query(Students)
|
|
if s.get('sid'):
|
|
q = q.filter( Students.sid == s.sid )
|
|
if s.get('student_name'):
|
|
q = q.filter( Students.student_name == s.student_name )
|
|
if s.get('class_name'):
|
|
q = q.filter(Students.class_name == s.class_name)
|
|
if s.get('job_open_time'):
|
|
q = q.filter(Students.job_open_time == s.job_open_time)
|
|
if s.get('offer_issue_time'):
|
|
q = q.filter(Students.offer_issue_time == s.offer_issue_time)
|
|
if s.get('company_name'):
|
|
q = q.filter(Students.company_name == s.company_name)
|
|
if s.get('salary'):
|
|
q = q.filter(Students.salary >= s.salary)
|
|
s1 = q.all()
|
|
if s1:
|
|
return [{ "学生编号": i.sid
|
|
, "学生姓名": i.student_name
|
|
, "学生班级": i.class_name
|
|
, "就业开放时间": i.job_open_time
|
|
, "offer下发时间": i.offer_issue_time
|
|
, "就业公司名称": i.company_name
|
|
, "就业薪资": i.salary
|
|
} for i in s1
|
|
]
|
|
|
|
# 新增
|
|
def add_student_dao( s , db):
|
|
try:
|
|
phone = s.get("student_phone")
|
|
if not phone:
|
|
return None
|
|
else:
|
|
s1 = Students( **s )
|
|
db.add(s1)
|
|
except Exception:
|
|
# 这里可以加日志
|
|
db.rollback()
|
|
return False
|
|
else:
|
|
db.commit()
|
|
db.refresh(s1) # 从数据库再拉一次数据
|
|
return s1
|
|
|
|
# 更新
|
|
def update_student_dao( id , update_data , db):
|
|
try:
|
|
rows = db.query( Students ).filter( Students.sid == id ).update( update_data )
|
|
except Exception:
|
|
db.rollback()
|
|
return False
|
|
else:
|
|
db.commit()
|
|
return f"更新了{rows}条学生资料。"
|
|
|
|
# 逻辑删除/软删除
|
|
def delete_student_dao(sid, db):
|
|
try:
|
|
rows = db.query( Students ).filter( Students.sid == sid ).delete()
|
|
except Exception:
|
|
db.rollback()
|
|
rows = 0
|
|
else:
|
|
db.commit()
|
|
finally:
|
|
return f"删除了{rows}条学生资料。"
|