33 lines
1020 B
Python
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()
|