mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
fix(usage): 完善 cache-affinity 时间线的用户名回退与模型空值兜底
- 当 auth 用户查询失败时回退到历史 username,避免时间线丢失用户信息 - SQL 投影对 usage.model 使用 COALESCE 兜底空值 - IntervalTimelineCard 在刷新间隔为 0 时跳过定时刷新 - Usage 页面关闭时间线卡片的自动轮询
This commit is contained in:
@@ -86,11 +86,20 @@ pub(super) async fn build_admin_usage_cache_affinity_interval_timeline_response(
|
||||
|
||||
if include_user_info && user_id.is_none() {
|
||||
let user_ids: Vec<_> = grouped.keys().cloned().collect();
|
||||
let user_map = load_usage_cache_affinity_usernames(state, &user_ids).await?;
|
||||
for (user_id, username) in user_map {
|
||||
usernames_by_user_id.insert(user_id, username);
|
||||
let mut should_use_legacy_usernames = !state.has_auth_user_data_reader();
|
||||
match load_usage_cache_affinity_usernames(state, &user_ids).await {
|
||||
Ok(user_map) => {
|
||||
usernames_by_user_id.extend(user_map);
|
||||
}
|
||||
Err(err) => {
|
||||
tracing::warn!(
|
||||
error = ?err,
|
||||
"admin usage cache affinity interval timeline user lookup failed"
|
||||
);
|
||||
should_use_legacy_usernames = true;
|
||||
}
|
||||
}
|
||||
if !state.has_auth_user_data_reader() {
|
||||
if should_use_legacy_usernames {
|
||||
for (user_id, username) in legacy_usernames_by_user_id {
|
||||
usernames_by_user_id.entry(user_id).or_insert(username);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user