UserManager.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. namespace Admin.NET.Core;
  2. /// <summary>
  3. /// 当前登录用户
  4. /// </summary>
  5. public class UserManager : IScoped
  6. {
  7. private readonly SqlSugarRepository<SysUser> _sysUserRep;
  8. private readonly IHttpContextAccessor _httpContextAccessor;
  9. public long UserId
  10. {
  11. get => long.Parse(_httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.UserId)?.Value);
  12. }
  13. public string Account
  14. {
  15. get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.Account)?.Value;
  16. }
  17. public string RealName
  18. {
  19. get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.RealName)?.Value;
  20. }
  21. public bool SuperAdmin
  22. {
  23. get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.AccountType)?.Value == ((int)AccountTypeEnum.SuperAdmin).ToString();
  24. }
  25. public long OrgId
  26. {
  27. get => long.Parse(_httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.OrgId)?.Value);
  28. }
  29. public string OpenId
  30. {
  31. get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.OpenId)?.Value;
  32. }
  33. public SysUser User
  34. {
  35. get => _sysUserRep.GetFirst(u => u.Id == UserId);
  36. }
  37. public UserManager(SqlSugarRepository<SysUser> sysUserRep,
  38. IHttpContextAccessor httpContextAccessor)
  39. {
  40. _sysUserRep = sysUserRep;
  41. _httpContextAccessor = httpContextAccessor;
  42. }
  43. /// <summary>
  44. /// 获取用户信息
  45. /// </summary>
  46. /// <param name="userId"></param>
  47. /// <returns></returns>
  48. public async Task<SysUser> CheckUserAsync(long userId)
  49. {
  50. var user = await _sysUserRep.GetFirstAsync(u => u.Id == userId);
  51. return user ?? throw Oops.Oh(ErrorCodeEnum.D1002);
  52. }
  53. }