This commit is contained in:
咕谷酱
2025-08-22 02:04:24 +08:00
parent e9fbe4163f
commit cc4ad91b40

View File

@@ -163,7 +163,11 @@ async def submit_score(
has_pp, has_pp,
has_leaderboard, has_leaderboard,
) )
score = (await db.exec(select(Score).where(Score.id == score_id))).first() score = (await db.exec(
select(Score)
.options(joinedload(Score.user)) # pyright: ignore[reportArgumentType]
.where(Score.id == score_id)
)).first()
assert score is not None assert score is not None
resp = await ScoreResp.from_db(db, score) resp = await ScoreResp.from_db(db, score)
total_users = (await db.exec(select(func.count()).select_from(User))).first() total_users = (await db.exec(select(func.count()).select_from(User))).first()
@@ -191,11 +195,13 @@ async def submit_score(
await db.commit() await db.commit()
# 成绩提交后刷新用户缓存 - 移至后台任务避免阻塞主流程 # 成绩提交后刷新用户缓存 - 移至后台任务避免阻塞主流程
if current_user.id is not None: # 预先获取用户ID避免在后台任务中触发延迟加载
user_id = current_user.id
if user_id is not None:
background_task.add_task( background_task.add_task(
_refresh_user_cache_background, _refresh_user_cache_background,
redis, redis,
current_user.id, user_id,
score.gamemode score.gamemode
) )
background_task.add_task(process_user_achievement, resp.id) background_task.add_task(process_user_achievement, resp.id)