123456789101112131415161718192021222324252627282930313233343536 |
- from typing import Optional, List
- from sqlalchemy.orm import Session
- from ..models.user_model import UserModel
- from .base_store import BaseStore
- class UserStore(BaseStore[UserModel]):
- """
- 用户存储类,继承自BaseStore
- 提供用户相关的特定操作
- """
- def __init__(self, db: Session):
- super().__init__(db, UserModel)
- def get_by_username(self, username: str) -> Optional[UserModel]:
- """根据用户名获取用户"""
- return self.db.query(
- self.model).filter(self.model.username == username).first()
- def get_by_grade(self, grade: str) -> List[UserModel]:
- """根据年级获取用户"""
- return self.db.query(
- self.model).filter(self.model.grade == grade).all()
- def get_by_target_score(self, min_score: int,
- max_score: int) -> List[UserModel]:
- """根据目标分数范围获取用户"""
- return self.db.query(self.model).filter(
- self.model.target_score >= min_score, self.model.target_score
- <= max_score).all()
- def get_by_learning_style(self, learning_style: str) -> List[UserModel]:
- """根据学习风格获取用户"""
- return self.db.query(self.model).filter(
- self.model.learning_style == learning_style).all()
|