PersonInfoModel; 修改部分方法参数和部分文件位置;移除多余文件;炸毁可启动性
This commit is contained in:
39
src/common/utils/utils_person.py
Normal file
39
src/common/utils/utils_person.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from rich.traceback import install
|
||||
from sqlmodel import select
|
||||
from typing import Optional
|
||||
|
||||
import hashlib
|
||||
|
||||
from src.common.logger import get_logger
|
||||
from src.common.data_models.person_info_data_model import MaiPersonInfo
|
||||
from src.common.database.database_model import PersonInfo
|
||||
from src.common.database.database import get_db_session
|
||||
|
||||
install(extra_lines=3)
|
||||
|
||||
logger = get_logger("person_utils")
|
||||
|
||||
|
||||
class PersonUtils:
|
||||
@staticmethod
|
||||
def get_person_info_by_id(person_id: str) -> Optional[MaiPersonInfo]:
|
||||
"""根据person_id获取用户信息"""
|
||||
try:
|
||||
with get_db_session() as session:
|
||||
statement = select(PersonInfo).filter_by(person_id=person_id)
|
||||
if result := session.exec(statement).first():
|
||||
return MaiPersonInfo.from_db_instance(result)
|
||||
except Exception as e:
|
||||
logger.error(f"查询用户信息失败: {str(e)}")
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def calculate_person_id(platform: str, user_id: str) -> str:
|
||||
"""根据平台和用户ID计算person_id"""
|
||||
return hashlib.sha256(f"{platform}_{user_id}".encode("utf-8")).hexdigest()
|
||||
|
||||
@staticmethod
|
||||
def get_person_info_by_user_id_and_platform(user_id: str, platform: str) -> Optional[MaiPersonInfo]:
|
||||
"""根据user_id和platform获取用户信息"""
|
||||
person_id = PersonUtils.calculate_person_id(platform, user_id)
|
||||
return PersonUtils.get_person_info_by_id(person_id)
|
||||
Reference in New Issue
Block a user