Files
hsa/Html/apps/services/user_service.py
2025-09-03 17:17:14 +08:00

43 lines
1.3 KiB
Python

# myapp/services/user_service.py
import os
from typing import Tuple
from flask import current_app, session
# 假设你已有这两个 loader
from db.user import load_user_from_json
def _username_from_session() -> str:
"""通过 session['user_id'] -> username"""
user_uuid = session.get("user_uuid")
if not user_uuid:
return None
uuid2username = current_app.extensions["uuid2username"]
return uuid2username.get(user_uuid)
def get_or_load_current_user():
"""
返回当前用户对象(如 user_uuid2UserClass 中没有则从 JSON 载入并缓存)
"""
user_uuid = session.get("user_uuid")
if not user_uuid:
return None
username = _username_from_session()
if not username:
return None
user_map = current_app.extensions["user_uuid2UserClass"]
if user_uuid not in user_map:
user_map[user_uuid] = load_user_from_json(
username, user_data_dir=current_app.config["USER_DATA_DIR"]
)
return user_map[user_uuid]
def add_course_for_current_user(course_id: str, course_data):
user_obj = get_or_load_current_user()
if user_obj is None:
return False
# 你的 UserClass 应该有 select_new_course 接口
user_obj.select_new_course(course_id, course_data)
return True