|
|
|
|
|
""" |
|
@File : user_db.py |
|
@Time : 2024/08/31 |
|
@Project : https://github.com/PeterH0323/Streamer-Sales |
|
@Author : HinGwenWong |
|
@Version : 1.0 |
|
@Desc : 用户信息数据库操作 |
|
""" |
|
|
|
from sqlmodel import Session, select |
|
|
|
from ...web_configs import API_CONFIG |
|
from ..models.user_model import UserBaseInfo, UserInfo |
|
from .init_db import DB_ENGINE |
|
|
|
|
|
def get_db_user_info(id: int = -1, username: str = "", all_info: bool = False) -> UserBaseInfo | UserInfo | None: |
|
"""查询数据库获取用户信息 |
|
|
|
Args: |
|
id (int): 用户 ID |
|
username (str): 用户名 |
|
all_info (bool): 是否返回含有密码串的敏感信息 |
|
|
|
Returns: |
|
UserInfo | None: 用户信息,没有查到返回 None |
|
""" |
|
|
|
if username == "": |
|
|
|
query = select(UserInfo).where(UserInfo.user_id == id) |
|
else: |
|
query = select(UserInfo).where(UserInfo.username == username) |
|
|
|
|
|
with Session(DB_ENGINE) as session: |
|
results = session.exec(query).first() |
|
|
|
|
|
results.avatar = API_CONFIG.REQUEST_FILES_URL + results.avatar |
|
|
|
if results is not None and all_info is False: |
|
|
|
results = UserBaseInfo(**results.model_dump()) |
|
|
|
return results |
|
|