app_register.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from datetime import datetime
  2. from app.models.public_api_model import AppRegisterModel
  3. from Log import logger
  4. # from app.models import current_time
  5. from sqlalchemy.orm import Session
  6. from typing import Type
  7. class AppRegisterDao:
  8. def __init__(self, db: Session):
  9. self.db = db
  10. def get_app_by_id(self, api_id: str) -> Type[AppRegisterModel] | None:
  11. session = self.db.query(AppRegisterModel).filter_by(id=api_id).first()
  12. return session
  13. def update_app(self, app_id: str, status: int):
  14. logger.error("更新数据: app register---------------------------")
  15. try:
  16. self.db.query(AppRegisterModel).filter(AppRegisterModel.id==app_id).update({"status":status, "updated_at": datetime.now()})
  17. self.db.commit()
  18. except Exception as e:
  19. logger.error(e)
  20. self.db.rollback()
  21. raise Exception("更新失败!")
  22. def insert_app(self, app_id: str, status: int):
  23. logger.error("新增数据: app register---------------------------")
  24. new_session = AppRegisterModel(
  25. id=app_id,
  26. status=status
  27. )
  28. self.db.add(new_session)
  29. self.db.commit()
  30. self.db.refresh(new_session)
  31. return new_session
  32. def update_and_insert_app(self, app_id: str, status: int):
  33. logger.error("更新或者添加数据: app register---------------------------")
  34. token_boj = self.get_app_by_id(app_id)
  35. if token_boj:
  36. self.update_app(app_id, status)
  37. else:
  38. self.insert_app(app_id, status)
  39. def get_apps(self):
  40. app_list = self.db.query(AppRegisterModel).filter_by(status=1).all()
  41. return [i.to_dict() for i in app_list]