diff --git a/employment_api.py b/employment_api.py deleted file mode 100644 index 9d3a400..0000000 --- a/employment_api.py +++ /dev/null @@ -1,116 +0,0 @@ -# api/employment_api.py -# 本文件定义学生就业信息相关的所有 API 路由(Controller 层) -from fastapi import APIRouter, Depends, HTTPException, Query -from sqlalchemy.orm import Session -from typing import List, Optional - -from sqlalchemy_fastapi_demo.database import get_db -from sqlalchemy_fastapi_demo.dao.employment import EmploymentBaseDAO,EmploymentOfferDAO -from sqlalchemy_fastapi_demo.model.employment import EmploymentBase, EmploymentOffer -from sqlalchemy_fastapi_demo.scheme.employment import EmploymentOfferUpdate, EmploymentBaseUpdate, EmploymentBaseCreate,EmploymentOfferCreate,EmploymentQuery,EmploymentOfferQueryResponse,EmploymentBaseQueryResponse -router = APIRouter() - -#-----------多条件查询就业协议信息----------- -@router.get("/offer/search/",response_model=List[EmploymentOfferQueryResponse],summary="多条件查询就业协议信息") -def search_offer( - stu_id: Optional[int] = Query(None, description="学生学号"), - offer_id: Optional[int] = Query(None, description="offer编号,需同时提供学生编号"), - skip: int = Query(0, ge=0, description="跳过的记录条数"), - limit: int = Query(10, ge=1, le=200, description="返回最大记录数"), - db: Session = Depends(get_db) -): - #捕获异常 - try: - data_list = EmploymentOfferDAO.different_choice_query( - db=db, stu_id=stu_id, offer_id=offer_id, skip=skip, limit=limit - ) - except ValueError as e: - raise HTTPException(status_code=400, detail=str(e)) - return data_list -#-----------多条件查询就业基础信息----------- -@router.get("/base/search/",response_model=List[EmploymentBaseQueryResponse],summary="多条件查询就业基础信息") -def search_base( - query: EmploymentQuery = Depends(), - skip: int = Query(0, ge=0, description="跳过的记录条数"), - limit: int = Query(10, ge=1, le=200, description="返回最大记录数"), - db: Session = Depends(get_db) -): - # 多条件筛选就业基础信息 + 分页 - if query.min_salary is not None and query.max_salary is not None and query.min_salary > query.max_salary: - raise HTTPException(status_code=400, detail="最低薪资不能大于最高薪资") - - data_list = EmploymentBaseDAO.different_choice_query( - db=db, - stu_id=query.stu_id, - company_name=query.company_name, - min_salary=query.min_salary, - max_salary=query.max_salary, - skip=skip, - limit=limit - ) - return data_list -#-----------添加就业基础信息----------- -@router.post("/base/add/",response_model=EmploymentBaseQueryResponse,summary="添加就业基础信息") -def add_base(obj: EmploymentBaseCreate, db: Session = Depends(get_db)): - items = EmploymentBaseDAO.get_by_stu_id(db, obj.stu_id) - if items: - raise HTTPException(status_code=400, detail="该学生的就业基础信息已存在,不可重复新增") - - new_obj = EmploymentBase( - stu_id=obj.stu_id, - employment_open_time=obj.employment_open_time, - job_time=obj.job_time, - company_name=obj.company_name, - salary=obj.salary, - is_deleted=0 - ) - res = EmploymentBaseDAO.create(db, new_obj) - return res -#-----------添加就业协议信息----------- -@router.post("/offer/add/",response_model=EmploymentOfferQueryResponse,summary="添加就业协议信息") -def add_offer(obj: EmploymentOfferCreate, db: Session = Depends(get_db)): - new_obj = EmploymentOffer( - stu_id=obj.stu_id, - offer_id=obj.offer_id, - offer_time=obj.offer_time, - is_deleted=0 - ) - res = EmploymentOfferDAO.create(db, new_obj) - return res -#-----------修改就业基础信息----------- -@router.put("/base/{stu_id}/",response_model=EmploymentBaseQueryResponse,summary="修改就业基础信息") -def update_base(stu_id: int, obj: EmploymentBaseUpdate, db: Session = Depends(get_db)): - update_data = obj.model_dump(exclude_unset=True) - try: - res = EmploymentBaseDAO.update(db, stu_id, update_data) - except ValueError as e: - raise HTTPException(status_code=400, detail=str(e)) - if not res: - raise HTTPException(status_code=404, detail="未找到该学生就业基础信息") - return res -#-----------修改就业协议信息----------- -@router.put("/offer/{offer_id}", response_model=EmploymentOfferQueryResponse,summary="修改就业协议信息") -def update_offer(stu_id:int,offer_id: int, obj: EmploymentOfferUpdate, db: Session = Depends(get_db)): - # offer 表主键是 (stu_id, offer_id),定位记录需要两者 - try: - res = EmploymentOfferDAO.update(db, stu_id, offer_id, obj.offer_time) - except ValueError as e: - # 捕获校验异常,返回标准400错误给前端 - raise HTTPException(status_code=400, detail=str(e)) - if not res: - raise HTTPException(status_code=404, detail="未找到该就业协议记录") - return res -#-----------逻辑删除就业基础信息----------- -@router.delete("/base/{stu_id}/",summary="删除就业基础信息") -def delete_base(stu_id: int, db: Session = Depends(get_db)): - ok = EmploymentBaseDAO.delete(db, stu_id) - if not ok: - raise HTTPException(status_code=404, detail="记录不存在或已经删除") - return {"code": 200, "msg": "删除成功"} -#-----------逻辑删除就业协议信息----------- -@router.delete("/offer/{stu_id}/{offer_id}",summary="修改就业协议信息") -def delete_offer(stu_id: int, offer_id: int, db: Session = Depends(get_db)): - ok = EmploymentOfferDAO.delete(db, stu_id, offer_id) - if not ok: - raise HTTPException(status_code=404, detail="记录不存在或已经删除") - return {"code": 200, "msg": "删除成功"}