Files
stu_teacher/dao/users_dao.py
T

33 lines
1020 B
Python

# dao/users_dao.py
# 用户表的数据访问层(认证模块)
from sqlalchemy.orm import Session
from model.user import User
from scheme.users import UserAdd
from core.security import hash_password
class UserDAO:
@staticmethod
def get_by_username(db: Session, username: str):
"""按用户名查询(含软删除检查由调用方处理)"""
return db.query(User).filter(User.username == username).first()
@staticmethod
def add_user(db: Session, user_data: UserAdd) -> User:
db_user = User(
username=user_data.username,
password_hash=hash_password(user_data.password),
role=user_data.role,
teacher_id=user_data.teacher_id,
stu_id=user_data.stu_id,
)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
@staticmethod
def get_by_id(db: Session, user_id: int):
return db.query(User).filter(User.user_id == user_id, User.is_deleted == 0).first()