jm_homework.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import time
  2. from typing import List
  3. from app import models, schemas
  4. from sqlalchemy.orm import Session
  5. from app.crud.constant import find_and_update
  6. from configs.globals import g
  7. from app.crud.jm_homework_datasource_relation import get_jm_relations
  8. def create_jm_homework(db: Session, item: models.JmHomework):
  9. db.add(item)
  10. db.commit()
  11. db.refresh(item)
  12. return item
  13. def get_jm_homeworks(db: Session, project_id: str):
  14. res: List[models.JmHomework] = db.query(models.JmHomework)\
  15. .filter(models.JmHomework.project_id == g.project_id)\
  16. .filter(models.JmHomework.status == 1)\
  17. .order_by(models.JmHomework.create_time.desc()).all()
  18. return res
  19. def get_jm_homework_info(db: Session, homework_id: int):
  20. item = db.query(models.JmHomework)\
  21. .filter(models.JmHomework.id == homework_id).first()
  22. if item.type == 'Dag':
  23. relations = get_jm_relations(db,homework_id)
  24. item.__dict__.update({"hd_relation":relations})
  25. return item
  26. def get_jm_homework_by_name(db: Session, name: str):
  27. db_item = db.query(models.JmHomework).filter(models.JmHomework.name == name)\
  28. .filter(models.JmHomework.project_id == g.project_id)\
  29. .filter(models.JmHomework.status != 0).first()
  30. return db_item
  31. def update_jm_homework(db: Session, id: int, update_item: models.JmHomework):
  32. db.commit()
  33. db.flush()
  34. db.refresh(update_item)
  35. return update_item
  36. def delete_jm_homework(db: Session, id: int):
  37. db_item = db.query(models.JmHomework).filter(models.JmHomework.id == id).first()
  38. if not db_item:
  39. raise Exception('未找到该作业')
  40. db_item.status = 0
  41. db.commit()
  42. db.flush()
  43. db.refresh(db_item)
  44. return db_item
  45. def get_jm_homeworks_by_ids(db: Session, ids: List[int]):
  46. res: List[models.JmHomework] = db.query(models.JmHomework)\
  47. .filter(models.JmHomework.id.in_(ids)).all()
  48. return res
  49. def get_jm_homework_by_dag_url(db: Session, dag_url: str):
  50. res: List[models.JmHomework] = db.query(models.JmHomework)\
  51. .filter(models.JmHomework.dag_url == dag_url)\
  52. .filter(models.JmHomework.status == 1).all()
  53. return res