|
@@ -120,53 +120,43 @@ namespace Admin.Core.Service.Admin.Auth
|
|
|
return ResponseOutput.NotOk("未登录!");
|
|
|
}
|
|
|
|
|
|
- //用户信息
|
|
|
- var user = await _userRepository.Select.WhereDynamic(User.Id)
|
|
|
- .ToOneAsync(m => new {
|
|
|
- m.NickName,
|
|
|
- m.UserName,
|
|
|
- m.Avatar
|
|
|
- });
|
|
|
-
|
|
|
- //用户菜单
|
|
|
- var menus = await _permissionRepository.Select
|
|
|
- .Where(a => new[] { PermissionType.Group, PermissionType.Menu }.Contains(a.Type))
|
|
|
- .Where(a =>
|
|
|
- _permissionRepository.Orm.Select<RolePermissionEntity>()
|
|
|
- .InnerJoin<UserRoleEntity>((b, c) => b.RoleId == c.RoleId && c.UserId == User.Id)
|
|
|
- .Where(b => b.PermissionId == a.Id)
|
|
|
- .Any()
|
|
|
- )
|
|
|
- .OrderBy(a => a.ParentId)
|
|
|
- .OrderBy(a => a.Sort)
|
|
|
- .ToListAsync(a => new
|
|
|
- {
|
|
|
- a.Id,
|
|
|
- a.ParentId,
|
|
|
- a.Path,
|
|
|
- ViewPath = a.View.Path,
|
|
|
- a.Label,
|
|
|
-
|
|
|
- a.Icon,
|
|
|
- a.Opened,
|
|
|
- a.Closable,
|
|
|
- a.Hidden,
|
|
|
- a.NewWindow,
|
|
|
- a.External
|
|
|
- });
|
|
|
-
|
|
|
- //用户权限点
|
|
|
- var permissions = await _permissionRepository.Select
|
|
|
- .Where(a => new[] { PermissionType.Api, PermissionType.Dot }.Contains(a.Type))
|
|
|
- .Where(a =>
|
|
|
- _permissionRepository.Orm.Select<RolePermissionEntity>()
|
|
|
- .InnerJoin<UserRoleEntity>((b, c) => b.RoleId == c.RoleId && c.UserId == User.Id)
|
|
|
- .Where(b => b.PermissionId == a.Id)
|
|
|
- .Any()
|
|
|
- )
|
|
|
- .ToListAsync(a => a.Code);
|
|
|
-
|
|
|
- return ResponseOutput.Ok(new { user, menus, permissions });
|
|
|
+ var key = string.Format(CacheKey.UserInfo, User.Id);
|
|
|
+ var output = await _cache.GetOrSetAsync(key, async () =>
|
|
|
+ {
|
|
|
+ var authUserInfoOutput = new AuthUserInfoOutput { };
|
|
|
+ //用户信息
|
|
|
+ authUserInfoOutput.User = await _userRepository.Select.WhereDynamic(User.Id)
|
|
|
+ .ToOneAsync<AuthUserProfileDto>();
|
|
|
+
|
|
|
+ //用户菜单
|
|
|
+ authUserInfoOutput.Menus = await _permissionRepository.Select
|
|
|
+ .Where(a => new[] { PermissionType.Group, PermissionType.Menu }.Contains(a.Type))
|
|
|
+ .Where(a =>
|
|
|
+ _permissionRepository.Orm.Select<RolePermissionEntity>()
|
|
|
+ .InnerJoin<UserRoleEntity>((b, c) => b.RoleId == c.RoleId && c.UserId == User.Id)
|
|
|
+ .Where(b => b.PermissionId == a.Id)
|
|
|
+ .Any()
|
|
|
+ )
|
|
|
+ .OrderBy(a => a.ParentId)
|
|
|
+ .OrderBy(a => a.Sort)
|
|
|
+ .ToListAsync(a => new AuthUserMenuDto { ViewPath = a.View.Path });
|
|
|
+
|
|
|
+ //用户权限点
|
|
|
+ authUserInfoOutput.Permissions = await _permissionRepository.Select
|
|
|
+ .Where(a => new[] { PermissionType.Api, PermissionType.Dot }.Contains(a.Type))
|
|
|
+ .Where(a =>
|
|
|
+ _permissionRepository.Orm.Select<RolePermissionEntity>()
|
|
|
+ .InnerJoin<UserRoleEntity>((b, c) => b.RoleId == c.RoleId && c.UserId == User.Id)
|
|
|
+ .Where(b => b.PermissionId == a.Id)
|
|
|
+ .Any()
|
|
|
+ )
|
|
|
+ .ToListAsync(a => a.Code);
|
|
|
+
|
|
|
+ return authUserInfoOutput;
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ return ResponseOutput.Ok(output);
|
|
|
}
|
|
|
|
|
|
public async Task<IResponseOutput> GetVerifyCodeAsync(string lastKey)
|