基础框架内容已经搭建完毕,剩余外键还未链接。
This commit is contained in:
+105
-37
@@ -2,35 +2,37 @@
|
||||
|
||||
from students.model.students_model import Students
|
||||
from students.schema.students_request import *
|
||||
|
||||
# 记得加校验
|
||||
from fastapi import HTTPException
|
||||
|
||||
# 查询
|
||||
def get_student_dao( s , db):
|
||||
q = db.query(Students)
|
||||
q = db.query(Students).filter(Students.is_deleted == False)
|
||||
if s.get('sid'):
|
||||
q = q.filter( Students.sid == s.sid )
|
||||
q = q.filter( Students.sid == s.get("sid") )
|
||||
if s.get('student_name'):
|
||||
q = q.filter( Students.student_name == s.student_name )
|
||||
q = q.filter( Students.student_name == s.get("student_name") )
|
||||
if s.get('student_phone'):
|
||||
q = q.filter(Students.student_phone == s.get("student_phone"))
|
||||
if s.get('class_name'):
|
||||
q = q.filter(Students.class_name == s.class_name)
|
||||
q = q.filter(Students.class_name == s.get("class_name") )
|
||||
if s.get('job_open_time'):
|
||||
q = q.filter(Students.job_open_time == s.job_open_time)
|
||||
q = q.filter(Students.job_open_time == s.get("job_open_time") )
|
||||
if s.get('offer_issue_time'):
|
||||
q = q.filter(Students.offer_issue_time == s.offer_issue_time)
|
||||
q = q.filter(Students.offer_issue_time == s.get("offer_issue_time") )
|
||||
if s.get('company_name'):
|
||||
q = q.filter(Students.company_name == s.company_name)
|
||||
q = q.filter(Students.company_name == s.get("company_name") )
|
||||
if s.get('salary'):
|
||||
q = q.filter(Students.salary >= s.salary)
|
||||
q = q.filter(Students.salary >= s.get("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
|
||||
return [{ "sid": i.sid
|
||||
, "student_name": i.student_name
|
||||
, "student_phone":i.student_phone
|
||||
, "class_name": i.class_name
|
||||
, "job_open_time": i.job_open_time
|
||||
, "offer_issue_time": i.offer_issue_time
|
||||
, "company_name": i.company_name
|
||||
, "salary": i.salary
|
||||
} for i in s1
|
||||
]
|
||||
|
||||
@@ -38,39 +40,105 @@ def get_student_dao( s , db):
|
||||
def add_student_dao( s , db):
|
||||
try:
|
||||
phone = s.get("student_phone")
|
||||
s1_deleted = db.query( Students ).filter( Students.student_phone == phone ).first()
|
||||
if s1_deleted and s1_deleted.is_deleted == False:
|
||||
return False
|
||||
if not phone:
|
||||
return None
|
||||
else:
|
||||
s1 = Students( **s )
|
||||
db.add(s1)
|
||||
return False
|
||||
if s1_deleted and s1_deleted.is_deleted == True:
|
||||
s1_deleted.student_name = s.get("student_name")
|
||||
s1_deleted.student_phone = s.get("student_phone")
|
||||
s1_deleted.class_name = s.get("class_name")
|
||||
s1_deleted.job_open_time = s.get("job_open_time")
|
||||
s1_deleted.offer_issue_time = s.get("offer_issue_time")
|
||||
s1_deleted.company_name = s.get("company_name")
|
||||
s1_deleted.salary = s.get("salary")
|
||||
s1_deleted.create_date = datetime.now()
|
||||
s1_deleted.update_date = datetime.now()
|
||||
s1_deleted.is_deleted = False
|
||||
s1_deleted.deleted_date = None
|
||||
db.commit()
|
||||
db.refresh(s1_deleted) # 从数据库再拉一次数据
|
||||
return s1_deleted
|
||||
s1 = Students( **s )
|
||||
db.add(s1)
|
||||
except Exception:
|
||||
# 这里可以加日志
|
||||
db.rollback()
|
||||
return False
|
||||
else:
|
||||
db.commit()
|
||||
db.refresh(s1) # 从数据库再拉一次数据
|
||||
db.refresh(s1)
|
||||
return s1
|
||||
|
||||
# 更新
|
||||
def update_student_dao( id , update_data , db):
|
||||
def update_student_dao( s , db):
|
||||
try:
|
||||
rows = db.query( Students ).filter( Students.sid == id ).update( update_data )
|
||||
phone = s.get("student_phone")
|
||||
if phone is not None and phone != '':
|
||||
s1_con = db.query( Students ).filter( Students.student_phone == phone
|
||||
,Students.sid != s.get("sid")
|
||||
,Students.is_deleted == False ).first()
|
||||
if s1_con:
|
||||
return False
|
||||
s1_sid = db.query( Students ).filter( Students.sid == s.get("sid")
|
||||
,Students.is_deleted == False ).first()
|
||||
if not s1_sid:
|
||||
return False
|
||||
if s.get("student_name") is not None:
|
||||
s1_sid.student_name = s.get("student_name")
|
||||
if s.get("student_phone") is not None:
|
||||
s1_sid.student_phone = s.get("student_phone")
|
||||
if s.get("class_name") is not None:
|
||||
s1_sid.class_name = s.get("class_name")
|
||||
if s.get("job_open_time") is not None:
|
||||
s1_sid.job_open_time = s.get("job_open_time")
|
||||
if s.get("offer_issue_time") is not None:
|
||||
s1_sid.offer_issue_time = s.get("offer_issue_time")
|
||||
if s.get("company_name") is not None:
|
||||
s1_sid.company_name = s.get("company_name")
|
||||
if s.get("salary") is not None:
|
||||
s1_sid.salary = s.get("salary")
|
||||
except Exception:
|
||||
db.rollback()
|
||||
return False
|
||||
else:
|
||||
s1_sid.update_date = datetime.now()
|
||||
db.commit()
|
||||
db.refresh(s1_sid) # 从数据库再拉一次数据
|
||||
return s1_sid
|
||||
|
||||
|
||||
# 逻辑删除/软删除
|
||||
def delete_student_dao( s , db):
|
||||
try:
|
||||
q = db.query(Students).filter(Students.is_deleted == False)
|
||||
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("student_phone"):
|
||||
q = q.filter(Students.student_phone == s.student_phone)
|
||||
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_delete = q.all()
|
||||
if not s1_delete:
|
||||
raise HTTPException(status_code=404, detail="Student not found")
|
||||
for i in s1_delete:
|
||||
i.is_deleted = True
|
||||
i.deleted_date = datetime.now()
|
||||
s2_deleted =[{"删除的学生ID":i.sid,"删除的学生姓名":i.student_name,"删除的学生电话":i.student_phone}for i in s1_delete]
|
||||
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}条学生资料。"
|
||||
return s2_deleted
|
||||
|
||||
Reference in New Issue
Block a user