feat: 初始化学生管理系统代码
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
from fastapi import APIRouter, HTTPException, Depends, Query
|
||||
from sqlalchemy import and_
|
||||
from sqlalchemy.orm import Session
|
||||
from model.employment import Employment
|
||||
|
||||
from dao import employment_dao
|
||||
from database import get_db
|
||||
from model.student import Student
|
||||
# from model.student import Student
|
||||
from scheme.employment_scheme import EmploymentOut, EmploymentCreate
|
||||
|
||||
router=APIRouter()
|
||||
|
||||
def stu_id(db:Session,stu_id:int):
|
||||
student=(db.query(Student).filter(Student.id==stu_id,Student.statu==1).first())
|
||||
if not student:
|
||||
raise HTTPException(status_code=404,detail="该学生不存在")
|
||||
return student
|
||||
@router.get("/",response_model=list[EmploymentOut])
|
||||
def set_employment(
|
||||
stu_id:int = None,
|
||||
name:str = None,
|
||||
min_salary: float = None,
|
||||
max_salary: float = None,
|
||||
db:Session = Depends(get_db),
|
||||
):
|
||||
obj=employment_dao.set_employment(db
|
||||
,stu_id
|
||||
,name
|
||||
,min_salary
|
||||
,max_salary)
|
||||
emp_list=[]
|
||||
for i in obj:
|
||||
data={
|
||||
"id":i.id,
|
||||
"stu_id":i.stu_id,
|
||||
"name":i.name,
|
||||
"employment_open_time":i.employment_open_time,
|
||||
"offer_time":i.offer_time,
|
||||
"salary":i.salary
|
||||
}
|
||||
emp_list.append(data)
|
||||
return emp_list
|
||||
@router.post("/",response_model=EmploymentCreate)
|
||||
def update_emp(
|
||||
stu_id:int = Query(...,description="学生ID"),
|
||||
data:EmploymentCreate=None,
|
||||
db:Session=Depends(get_db)
|
||||
):
|
||||
student=(db.query(Student).filter(and_(Student.id==stu_id,Student.statu==1)).first())
|
||||
if not student:
|
||||
raise HTTPException(status_code=404,detail="该学生不存在")
|
||||
try:
|
||||
obj=employment_dao.update_employment(db,stu_id,data)
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400,detail=str(e))
|
||||
emp_dict={
|
||||
"id":obj.id,
|
||||
"stu_id":obj.stu_id,
|
||||
"name":obj.name,
|
||||
"employment_open_time":obj.employment_open_time,
|
||||
"offer_time":obj.offer_time,
|
||||
"salary":obj.salary
|
||||
}
|
||||
return emp_dict
|
||||
@router.post("/create", response_model=EmploymentOut)
|
||||
def create_employment(
|
||||
stu_id: int = Query(..., description="学生ID"),
|
||||
data: EmploymentCreate = None,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
student = (
|
||||
db.query(Student)
|
||||
.filter(and_(Student.id == stu_id, Student.statu == 1))
|
||||
.first()
|
||||
)
|
||||
if not student:
|
||||
raise HTTPException(status_code=404, detail="该学生不存在")
|
||||
exist = employment_dao.get_by_stu_id(db, stu_id)
|
||||
if exist:
|
||||
raise HTTPException(status_code=400, detail="该学生已存在就业信息,请使用更新接口")
|
||||
open_time = data.employment_open_time
|
||||
offer_time = data.offer_time
|
||||
if open_time is not None and offer_time is not None:
|
||||
if offer_time < open_time:
|
||||
raise HTTPException(status_code=400, detail="offer下发时间必须晚于就业开放时间")
|
||||
obj = Employment()
|
||||
obj.stu_id = stu_id
|
||||
obj.name = data.name
|
||||
obj.employment_open_time = open_time
|
||||
obj.offer_time = offer_time
|
||||
obj.company_name = data.company_name
|
||||
obj.salary = data.salary
|
||||
db.add(obj)
|
||||
db.commit()
|
||||
db.refresh(obj)
|
||||
emp_dict = {
|
||||
"id": obj.id,
|
||||
"stu_id": obj.stu_id,
|
||||
"name": obj.name,
|
||||
"employment_open_time": obj.employment_open_time,
|
||||
"offer_time": obj.offer_time,
|
||||
"salary": obj.salary,
|
||||
}
|
||||
return emp_dict
|
||||
|
||||
@router.delete("/")
|
||||
def delete_emp(emp_id:int,db:Session = Depends(get_db)):
|
||||
del_emp=employment_dao.delete_emp(db,emp_id)
|
||||
if not del_emp:
|
||||
raise HTTPException(status_code=404,detail="该就业信息不存在")
|
||||
return {"code":0,"message":"删除成功"}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user