user_dao.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from sqlalchemy.orm import Session
  2. from app.model.user_model import User
  3. class UserDAO:
  4. def __init__(self, db_session: Session):
  5. self.db_session = db_session
  6. def get_all(self):
  7. """获取所有用户"""
  8. return self.db_session.query(User).all()
  9. def get_by_id(self, user_id: int):
  10. """根据ID获取用户"""
  11. return self.db_session.query(User).get(user_id)
  12. def get_by_username(self, username: str):
  13. """根据用户名获取用户"""
  14. return self.db_session.query(User).filter_by(username=username).first()
  15. def get_by_email(self, email: str):
  16. """根据邮箱获取用户"""
  17. return self.db_session.query(User).filter_by(email=email).first()
  18. def create(self, user: User):
  19. """创建新用户"""
  20. self.db_session.add(user)
  21. self.db_session.commit()
  22. return user
  23. def update(self, user: User):
  24. """更新用户信息"""
  25. self.db_session.commit()
  26. return user
  27. def delete(self, user: User):
  28. """删除用户"""
  29. self.db_session.delete(user)
  30. self.db_session.commit()
  31. def exists_by_username(self, username: str):
  32. """检查用户名是否已存在"""
  33. return self.db_session.query(User).filter_by(username=username).first() is not None
  34. def exists_by_email(self, email: str):
  35. """检查邮箱是否已存在"""
  36. return self.db_session.query(User).filter_by(email=email).first() is not None