aaa
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,60 @@
|
||||
from fastapi import APIRouter,HTTPException,Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from dao.class_dao import ClassDao
|
||||
from database import get_db
|
||||
from scheme.classes import ClassUpdate, ClassCreate, ClassResponse, ClassListResponse
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
#新增
|
||||
@router.post("/class/",response_model=ClassResponse)
|
||||
async def create_class(data:ClassCreate,db: Session = Depends(get_db)):
|
||||
if ClassDao.get_class(db, data.cid):
|
||||
raise HTTPException(status_code=400, detail="班级编号已存在")
|
||||
return ClassDao.create_class_list(db, data)
|
||||
|
||||
# 条件查询班级
|
||||
@router.get("/class/get_list/",response_model=ClassListResponse)
|
||||
async def get_class_list(
|
||||
cid :int = None,
|
||||
class_name: str = None,
|
||||
headteacher:str = None,
|
||||
page: int = 1,
|
||||
size: int = 5,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
total, items = ClassDao.get_class_list(db, cid=cid, class_name=class_name,headteacher=headteacher, page=page, size=size)
|
||||
return {"total": total, "items": items}
|
||||
|
||||
# 查询单个班级
|
||||
# @router.put("/class",response_model=ClassResponse)
|
||||
# async def list_class(cid:int,db: Session = Depends(get_db)):
|
||||
# cls = ClassDao.get_class(db,cid)
|
||||
# if not cls:
|
||||
# raise HTTPException(status_code=404, detail="班级不存在")
|
||||
# return cls
|
||||
|
||||
# 更新
|
||||
@router.put("/class/{cid}",response_model=ClassResponse)
|
||||
async def update_class(cid:int,data:ClassUpdate,db: Session = Depends(get_db)):
|
||||
cls = ClassDao.update_class(db, cid, data)
|
||||
if not cls:
|
||||
raise HTTPException(status_code=404, detail="班级不存在")
|
||||
return cls
|
||||
|
||||
#删除
|
||||
@router.delete("/class/{cid}")
|
||||
async def delete_class(cid:int,db: Session = Depends(get_db)):
|
||||
c = ClassDao.delete_class(db, cid)
|
||||
if not c:
|
||||
raise HTTPException(status_code=404, detail="班级不存在")
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# api/scores.py
|
||||
# 本文件定义成绩相关的所有 API 路由
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
from database import get_db
|
||||
from dao.score_dao import ScoreDAO
|
||||
from scheme.scores import ScoreUpdate, ScoreResponse
|
||||
# 创建路由器,前缀将在 main.py 中统一添加
|
||||
router = APIRouter()
|
||||
# 根据 学号 + 考核次数 查询单条成绩
|
||||
@router.get("/score/{sid}/{exam_num}", response_model=ScoreResponse)
|
||||
async def get_score(
|
||||
sid: int,
|
||||
exam_num: int,
|
||||
db: Session = Depends(get_db) # 依赖注入获得数据库会话
|
||||
):
|
||||
return ScoreDAO.get_by_id(db, sid, exam_num)
|
||||
# 根据 学号 + 考核次数 修改成绩
|
||||
@router.put("/score/update", response_model=ScoreResponse)
|
||||
async def update_score(
|
||||
sid: int,
|
||||
exam_num: int,
|
||||
score_data: ScoreUpdate,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
return ScoreDAO.update(db, sid, exam_num, score_data)
|
||||
# 删除成绩,逻辑删除flag改为0
|
||||
@router.post("/score/delete", response_model=ScoreResponse)
|
||||
async def delete_score(
|
||||
sid: int,
|
||||
exam_num: int,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
return ScoreDAO.delete(db, sid, exam_num)
|
||||
@@ -0,0 +1,80 @@
|
||||
# statistic.py
|
||||
# 本文件定义statistic相关的所有 API 路由(Controller 层)
|
||||
from dao.statistic_dao import Statistic
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
|
||||
from database import get_db
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/ages")
|
||||
async def get_ages_interface(
|
||||
age1:int = Query(...,ge=18,lt=30,description="输入年龄"),
|
||||
age2:int|None = Query(default=None,ge=19,lt=30,description="如果要区间则输入最大年龄"),
|
||||
condition:int =Query(...,description="输入比较条件:1是大于,2是小于,3是等于,4是区间"),
|
||||
db = Depends(get_db)
|
||||
|
||||
):
|
||||
module = Statistic(db)
|
||||
res = module.get_ages(age1, age2, condition)
|
||||
return {
|
||||
"code": 200,
|
||||
"data": res
|
||||
}
|
||||
@router.get("/class/")
|
||||
async def get_class_interface(
|
||||
db = Depends(get_db)
|
||||
):
|
||||
module = Statistic(db)
|
||||
res = module.get_class()
|
||||
return {
|
||||
"code": 200,
|
||||
"data": res
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@router.get("/grades/")
|
||||
async def get_grades_interface(
|
||||
grades:float=Query(80,ge=0,lt=100,description="输入成绩"),
|
||||
db = Depends(get_db)
|
||||
):
|
||||
module = Statistic(db)
|
||||
res = module.get_grades(grades)
|
||||
return res
|
||||
@router.get("/bad_grades/")
|
||||
async def get_bad_grades_interface(
|
||||
number:int=Query(...,ge=0,lt=4,description="输入次数"),
|
||||
db = Depends(get_db)
|
||||
):
|
||||
module = Statistic(db)
|
||||
res = module.get_bad_grades(number)
|
||||
return res
|
||||
#
|
||||
#
|
||||
@router.get("/avg_grade")
|
||||
async def get_avg_interface(
|
||||
sort:int = Query(..., ge=1, le=2, description="1降序高分在前,2升序低分在前"),
|
||||
db=Depends(get_db)
|
||||
):
|
||||
module = Statistic(db)
|
||||
res = module.get_avg_grades(sort)
|
||||
return {"code":200,"data":res}
|
||||
|
||||
#
|
||||
@router.get("/top")
|
||||
async def get_top_interface(
|
||||
top:int=Query(...,description="输入排名"),
|
||||
db = Depends(get_db)
|
||||
):
|
||||
module = Statistic(db)
|
||||
res = module.get_top(top)
|
||||
return res
|
||||
#
|
||||
#
|
||||
@router.get("/get_time")
|
||||
async def get_time_interface(db = Depends(get_db)):
|
||||
module = Statistic(db)
|
||||
res = module.get_time()
|
||||
return res
|
||||
@@ -0,0 +1,48 @@
|
||||
# api/students.py
|
||||
# 本文件定义学生模块的所有 API 路由(Controller 层)
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from database import get_db
|
||||
from dao.student_dao import StudentDAO
|
||||
from scheme.students import StudentCreate, StudentUpdate, StudentResponse, StudentListResponse
|
||||
|
||||
# 创建路由器
|
||||
router = APIRouter(prefix="/students", tags=["学生管理"])
|
||||
|
||||
# 查询学生列表(支持按编号、姓名、班级等条件筛选)
|
||||
@router.get("/list/", response_model=StudentListResponse)
|
||||
async def get_student_list(
|
||||
sid: int = None,
|
||||
name: str = Query(None,max_length=4,description='名字的模糊查询'),
|
||||
cid: int =Query(None,description="根据学生的班级id查询"),
|
||||
gender: str = Query(None,max_length=1,description="选择项(男\女)根据学生性别查询,查询男同学或者女同学"),
|
||||
education: str = Query(None,max_length=2,description="选择项(硕士\本科)根据学生学历查询,查询该学历学生"),
|
||||
page: int = Query(1,description="查看的页数"),
|
||||
size: int = Query(5,description="查询每一页的数量"),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
total, items = StudentDAO.get_list(db, sid=sid, name=name, cid=cid,
|
||||
gender=gender, education=education,
|
||||
page=page, size=size)
|
||||
return {"total": total, "items": items}
|
||||
|
||||
# 按学号查单个学生
|
||||
@router.get("/{sid}", response_model=StudentResponse)
|
||||
async def get_student_by_id(sid: int, db: Session = Depends(get_db)):
|
||||
return StudentDAO.get_by_id(db, sid)
|
||||
|
||||
# 按照用户输入新增学生
|
||||
@router.post("/create", response_model=StudentResponse)
|
||||
async def create_student(data: StudentCreate, db: Session = Depends(get_db)):
|
||||
return StudentDAO.create(db, data)
|
||||
|
||||
# 更新学生信息
|
||||
@router.put("/update/{sid}", response_model=StudentResponse)
|
||||
async def update_student(sid: int, data: StudentUpdate, db: Session = Depends(get_db)):
|
||||
return StudentDAO.update(db, sid, data)
|
||||
|
||||
# 删除学生
|
||||
@router.post("/delete/{sid}", response_model=StudentResponse)
|
||||
async def delete_student(sid: int, db: Session = Depends(get_db)):
|
||||
return StudentDAO.delete(db, sid)
|
||||
@@ -0,0 +1,46 @@
|
||||
# api/teacher.py
|
||||
# 本文件定义老师模块的所有 API 路由(Controller 层)
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException,Query
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from database import get_db
|
||||
from dao.teacher_dao import TeacherDAO
|
||||
from scheme.teachers import TeacherCreate, TeacherUpdate, TeacherResponse, TeacherListResponse
|
||||
|
||||
# 创建路由器
|
||||
router = APIRouter(prefix="/teachers", tags=["老师管理"])
|
||||
|
||||
#查询老师列表(支持按姓名模糊查询、是否班主任)
|
||||
@router.get("/list/", response_model=TeacherListResponse)
|
||||
async def get_teacher_list(
|
||||
teacher_name: str = Query(None,),
|
||||
is_headteacher: int = Query(default=None,ge=0,le=1),
|
||||
page: int = 1,
|
||||
size: int = 10,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
total, items = TeacherDAO.get_list(db, teacher_name=teacher_name,
|
||||
is_headteacher=is_headteacher,
|
||||
page=page, size=size)
|
||||
return {"total": total, "items": items}
|
||||
|
||||
#按老师编号查单个老师
|
||||
@router.get("/{teacher_id}", response_model=TeacherResponse)
|
||||
async def get_teacher_by_id(teacher_id: int, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.get_by_id(db, teacher_id)
|
||||
|
||||
# 新增老师
|
||||
@router.post("/create", response_model=TeacherCreate)
|
||||
async def create_teacher(data: TeacherCreate, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.create(db, data)
|
||||
|
||||
# 更新老师信息
|
||||
@router.put("/update/{teacher_id}", response_model=TeacherResponse)
|
||||
async def update_teacher(teacher_id: int, data: TeacherUpdate, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.update(db, teacher_id, data)
|
||||
|
||||
# 逻辑删除老师
|
||||
@router.post("/delete/{teacher_id}", response_model=TeacherResponse)
|
||||
async def delete_teacher(teacher_id: int, db: Session = Depends(get_db)):
|
||||
return TeacherDAO.delete(db, teacher_id)
|
||||
@@ -0,0 +1,31 @@
|
||||
#这是学生就业系统的子路由
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from sqlalchemy.orm import Session
|
||||
from dao.work_dao import WorkDao
|
||||
from database import get_db
|
||||
from scheme.works import StudentWorkCreate,StudentWorkCreate1,StudentWorks
|
||||
router = APIRouter()
|
||||
#这是添加学生就业信息接口
|
||||
@router.post("/create")
|
||||
def create_student(student: StudentWorkCreate,db:Session=Depends(get_db)):
|
||||
u1 = WorkDao.add_s_w(db,student)
|
||||
return u1
|
||||
#这是获取学生就业信息接口
|
||||
@router.post("/post")
|
||||
def get_student(student1: StudentWorkCreate1,db:Session=Depends(get_db)):
|
||||
u2 = WorkDao.get_s_w(db,student1)
|
||||
return u2
|
||||
#这是更新学生就业信息接口
|
||||
@router.put("/put")
|
||||
def put_student(student2: StudentWorks,db:Session=Depends(get_db)):
|
||||
u3 = WorkDao.update_s_w(db,student2)
|
||||
return u3
|
||||
#这是删除学生就业信息接口
|
||||
@router.delete("/delete")
|
||||
def delete_student(user_id:int=Query(...,ge=1,le=10000,description="填入合法学生编号"),db:Session=Depends(get_db)):
|
||||
u4 = WorkDao.delete_s_w(db,user_id)
|
||||
return u4
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user