fix: 登录 UserInfo 构建改为串行查询,避免 DbContext 并发异常

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zzh 2026-07-18 23:26:47 +08:00
parent 2188a3ce6e
commit b0813ea12d

View File

@ -460,13 +460,9 @@ public partial class AuthService(
return cached;
}
// 用户资料与权限并行,避免串行打两次慢查询
var userTask = userService.GetAsync(userId, cancellationToken);
var permissionsTask = userService.GetUserPermissionsAsync(userId, cancellationToken);
await Task.WhenAll(userTask, permissionsTask);
var userInfo = await userTask;
var permissions = await permissionsTask;
// 同一 scoped DbContext 不能并行查询,必须串行
var userInfo = await userService.GetAsync(userId, cancellationToken);
var permissions = await userService.GetUserPermissionsAsync(userId, cancellationToken);
var menus = await BuildMenusByPermissionsAsync(permissions, cancellationToken);
var dto = new UserInfoDto