110 lines
3.3 KiB
Python
110 lines
3.3 KiB
Python
from fastapi import HTTPException
|
|||
|
|
from sqlalchemy import and_
|
||
|
|
from sqlalchemy.orm import Session
|
||
|
|
from model.advisor import Advisor
|
||
|
|
from model.student import Student
|
||
|
|
from model.classinfo import ClassInfo
|
||
|
|
from datetime import date
|
||
|
|
import scheme
|
||
|
|
import api
|
||
|
|
|
||
|
|
def get_stu(db:Session):
|
||
|
|
res=db.query(Student).all()
|
||
|
|
l1=list()
|
||
|
|
for i in res :
|
||
|
|
l1.append(i.name)
|
||
|
|
return {"message":l1}
|
||
|
|
|
||
|
|
def get_all_stu(db:Session):
|
||
|
|
rs=db.query(Student).filter(Student.statu==1).all()
|
||
|
|
return {"message":"查询成功","data":rs}
|
||
|
|
|
||
|
|
def get_stu_id(stu_id:int,db:Session):
|
||
|
|
res = db.query(Student).filter(Student.id==stu_id).all()
|
||
|
|
l1 = list()
|
||
|
|
for i in res:
|
||
|
|
l1.append(i.name)
|
||
|
|
return {"message": l1}
|
||
|
|
|
||
|
|
def query_sid(db:Session,stu_id):
|
||
|
|
res=db.query(Student).filter(Student.id==stu_id).first()
|
||
|
|
return res
|
||
|
|
#按班级姓名查
|
||
|
|
def query_cid(db:Session,class_id,stu_name):
|
||
|
|
res=db.query(Student).filter(and_(Student.class_id==class_id,Student.name==stu_name)).first()
|
||
|
|
return {"data":res}
|
||
|
|
|
||
|
|
def query_stu_name(db:Session,stu_name):
|
||
|
|
res=db.query(Student).filter(Student.name==stu_name).all()
|
||
|
|
return res
|
||
|
|
# 逻辑删除学生
|
||
|
|
def delete_sid(db:Session,stu_id):
|
||
|
|
rs=db.query(Student).filter(Student.id==stu_id).first()
|
||
|
|
if not rs:
|
||
|
|
raise HTTPException(status_code=404, detail="学生不存在")
|
||
|
|
rs.statu=0
|
||
|
|
db.commit()
|
||
|
|
return {"message":f"已删除编号为:{rs.stu_id}的学生:{rs.name}"}#逻辑删除
|
||
|
|
|
||
|
|
def create_stu(db:Session,stu):
|
||
|
|
cid=db.query(ClassInfo.id).filter(ClassInfo.class_name==stu.class_name).first()
|
||
|
|
if cid:
|
||
|
|
cid=cid.id
|
||
|
|
else:
|
||
|
|
raise HTTPException(status_code=404, detail="班级不存在")
|
||
|
|
vid=None
|
||
|
|
if stu.advisor_name:
|
||
|
|
vid=db.query(Advisor.id).filter(Advisor.name==stu.advisor_name).first()
|
||
|
|
if vid:
|
||
|
|
vid=vid.id
|
||
|
|
else:
|
||
|
|
raise HTTPException(status_code=404, detail="顾问不存在")
|
||
|
|
s_new=Student(
|
||
|
|
name=stu.name,
|
||
|
|
hometown=stu.hometown,
|
||
|
|
school = stu.school,
|
||
|
|
major = stu.major,
|
||
|
|
enroll_time = stu.enroll_time,
|
||
|
|
graduate_time = stu.graduate_time,
|
||
|
|
education = stu.education,
|
||
|
|
age = stu.age,
|
||
|
|
gender = stu.gender,
|
||
|
|
statu = 1,
|
||
|
|
advisor_id = vid,
|
||
|
|
class_id = cid
|
||
|
|
)
|
||
|
|
db.add(s_new)
|
||
|
|
db.commit()
|
||
|
|
return {"message":"学生增加成功"}
|
||
|
|
|
||
|
|
def update_stu(stu_id,stu,db:Session):
|
||
|
|
cid = db.query(ClassInfo.id).filter(ClassInfo.class_name == stu.class_name).first()
|
||
|
|
if cid is None:
|
||
|
|
raise HTTPException(status_code=400, detail="找不到该班级名称")
|
||
|
|
else:
|
||
|
|
cid=cid.id
|
||
|
|
if stu.advisor_name:
|
||
|
|
vid = db.query(Advisor.id).filter(Advisor.name == stu.advisor_name).first()
|
||
|
|
if vid:
|
||
|
|
vid=vid.id
|
||
|
|
else:
|
||
|
|
raise HTTPException(status_code=404, detail="顾问不存在")
|
||
|
|
s=db.query(Student).filter(Student.id==stu_id).first()
|
||
|
|
if not s:
|
||
|
|
raise HTTPException(status_code=404, detail="该学生不存在")
|
||
|
|
s.name=stu.name
|
||
|
|
s.hometown = stu.hometown
|
||
|
|
s.school = stu.school
|
||
|
|
s.major = stu.major
|
||
|
|
s.enroll_time = stu.enroll_time
|
||
|
|
s.graduate_time = stu.graduate_time
|
||
|
|
s.education = stu.education
|
||
|
|
s.age = stu.age
|
||
|
|
s.gender = stu.gender
|
||
|
|
s.advisor_id = vid
|
||
|
|
s.class_id = cid
|
||
|
|
db.commit()
|
||
|
|
return {"message":"学生信息修改成功"}
|
||
|
|
|
||
|
|
|