jm_homework.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from re import S
  2. from typing import Optional
  3. from fastapi import APIRouter
  4. from fastapi import Depends
  5. from sqlalchemy.orm import Session
  6. from app import schemas
  7. import app.crud as crud
  8. from utils.sx_time import sxtimeit
  9. from utils.sx_web import web_try
  10. from fastapi_pagination import Page, add_pagination, paginate, Params
  11. from app import get_db
  12. router = APIRouter(
  13. prefix="/jpt/jm_homework",
  14. tags=["jm_homework-作业管理"],
  15. )
  16. @router.post("/")
  17. @web_try()
  18. @sxtimeit
  19. def create_jm_homework(item: schemas.JmHomeworkCreate, db: Session = Depends(get_db)):
  20. # 根据获取到的文件路径另存一份并改变
  21. return crud.create_jm_homework(db, item)
  22. @router.get("/")
  23. @web_try()
  24. @sxtimeit
  25. def get_jm_homeworks(project_id: str, db: Session = Depends(get_db)):
  26. return crud.get_jm_homeworks(db, project_id)
  27. @router.get("/info")
  28. @web_try()
  29. @sxtimeit
  30. def get_jm_homework_info(homework_id: str, db: Session = Depends(get_db)):
  31. return crud.get_jm_homework_info(db, homework_id)
  32. @router.put("/")
  33. @web_try()
  34. @sxtimeit
  35. def update_jm_homework(jm_id: int, update_item: schemas.JmHomeworkUpdate, db: Session = Depends(get_db)):
  36. # 根据获取到的文件路径另存一份并改变
  37. return crud.update_jm_homework(db, jm_id, update_item)
  38. @router.delete("/")
  39. @web_try()
  40. @sxtimeit
  41. def delete_jm_homework(jm_id: int, db: Session = Depends(get_db)):
  42. jm_log_infos = crud.get_jm_job_infos(db)
  43. jm_job_ids = [jm_job.id for jm_job in jm_log_infos]
  44. res = crud.find_by_homework_and_job(db, jm_job_ids,jm_id)
  45. if len(res) > 0:
  46. raise Exception("该作业正在被定时任务使用,不可删除")
  47. return crud.delete_jm_homework(db, jm_id)