This commit is contained in:
ky_sunl
2021-04-22 13:37:25 +00:00
parent 575a22954f
commit d1c9e5a71e
699 changed files with 1062425 additions and 40640 deletions

View File

@@ -0,0 +1,75 @@
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.FriendlyException;
using Microsoft.AspNetCore.Http;
using System.Threading.Tasks;
namespace Dilon.Core
{
/// <summary>
/// 用户管理
/// </summary>
public class UserManager : IUserManager, IScoped
{
private readonly IRepository<SysUser> _sysUserRep; // 用户表仓储
private readonly IRepository<SysEmp> _sysEmpRep; // 员工表
private readonly IHttpContextAccessor _httpContextAccessor;
public long UserId
{
get => long.Parse(_httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.CLAINM_USERID)?.Value);
}
public string Account
{
get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.CLAINM_ACCOUNT)?.Value;
}
public string Name
{
get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.CLAINM_NAME)?.Value;
}
public bool SuperAdmin
{
get => _httpContextAccessor.HttpContext.User.FindFirst(ClaimConst.CLAINM_SUPERADMIN)?.Value == ((int)AdminType.SuperAdmin).ToString();
}
public SysUser User
{
get => _sysUserRep.Find(UserId);
}
public UserManager(IRepository<SysUser> sysUserRep,
IRepository<SysEmp> sysEmpRep,
IHttpContextAccessor httpContextAccessor)
{
_sysUserRep = sysUserRep;
_sysEmpRep = sysEmpRep;
_httpContextAccessor = httpContextAccessor;
}
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="userId"></param>
/// <param name="tracking"></param>
/// <returns></returns>
public async Task<SysUser> CheckUserAsync(long userId, bool tracking = true)
{
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == userId, tracking);
return user ?? throw Oops.Oh(ErrorCode.D1002);
}
/// <summary>
/// 获取用户员工信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<SysEmp> GetUserEmpInfo(long userId)
{
var emp = await _sysEmpRep.FirstOrDefaultAsync(u => u.Id == userId, false);
return emp ?? throw Oops.Oh(ErrorCode.D1002);
}
}
}