This commit is contained in:
2021-06-01 10:52:51 +08:00
4 changed files with 113 additions and 12 deletions

View File

@@ -137,7 +137,7 @@ namespace Ewide.Core
/// <summary> /// <summary>
/// 已有相同组织机构,编码或名称相同 /// 已有相同组织机构,编码或名称相同
/// </summary> /// </summary>
[ErrorCodeItemMetadata("已有相同编码组织机构")] [ErrorCodeItemMetadata("已有相同组织机构,编码或名称相同")]
D2002, D2002,
/// <summary> /// <summary>

View File

@@ -10,10 +10,10 @@ namespace Ewide.Core
{ {
= 1, = 1,
= 11, = 2,
= 21, = 3,
= 31 = 4
} }
} }

View File

@@ -1,4 +1,5 @@
using System.Threading.Tasks; using System.Collections.Generic;
using System.Threading.Tasks;
namespace Ewide.Core namespace Ewide.Core
{ {
@@ -10,7 +11,15 @@ namespace Ewide.Core
SysUser User { get; } SysUser User { get; }
string UserId { get; } string UserId { get; }
Task<SysUser> CheckUserAsync(string userId, bool tracking = true); Task<SysUser> CheckUserAsync(string userId);
Task<SysUser> CheckUserAsync();
Task<SysEmp> GetUserEmpInfo(string userId); Task<SysEmp> GetUserEmpInfo(string userId);
Task<SysEmp> GetUserEmpInfo();
Task<SysOrg> GetUserOrgInfo(string userId);
Task<SysOrg> GetUserOrgInfo();
Task<List<string>> GetUserRoleIdList(string userId);
Task<List<string>> GetUserRoleIdList();
Task<List<SysRole>> GetUserRoleList(string userId);
Task<List<SysRole>> GetUserRoleList();
} }
} }

View File

@@ -2,7 +2,10 @@
using Furion.DependencyInjection; using Furion.DependencyInjection;
using Furion.FriendlyException; using Furion.FriendlyException;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
namespace Ewide.Core namespace Ewide.Core
{ {
@@ -12,7 +15,10 @@ namespace Ewide.Core
public class UserManager : IUserManager, IScoped public class UserManager : IUserManager, IScoped
{ {
private readonly IRepository<SysUser> _sysUserRep; // 用户表仓储 private readonly IRepository<SysUser> _sysUserRep; // 用户表仓储
private readonly IRepository<SysRole> _sysRoleRep;
private readonly IRepository<SysUserRole> _sysUserRoleRep;
private readonly IRepository<SysEmp> _sysEmpRep; // 员工表 private readonly IRepository<SysEmp> _sysEmpRep; // 员工表
private readonly IRepository<SysOrg> _sysOrgRep;
private readonly IHttpContextAccessor _httpContextAccessor; private readonly IHttpContextAccessor _httpContextAccessor;
public string UserId public string UserId
@@ -40,12 +46,19 @@ namespace Ewide.Core
get => _sysUserRep.Find(UserId); get => _sysUserRep.Find(UserId);
} }
public UserManager(IRepository<SysUser> sysUserRep, public UserManager(
IRepository<SysEmp> sysEmpRep, IRepository<SysUser> sysUserRep,
IHttpContextAccessor httpContextAccessor) IRepository<SysRole> sysRoleRep,
IRepository<SysUserRole> sysUserRoleRep,
IRepository<SysEmp> sysEmpRep,
IRepository<SysOrg> sysOrgRep,
IHttpContextAccessor httpContextAccessor)
{ {
_sysUserRep = sysUserRep; _sysUserRep = sysUserRep;
_sysRoleRep = sysRoleRep;
_sysUserRoleRep = sysUserRoleRep;
_sysEmpRep = sysEmpRep; _sysEmpRep = sysEmpRep;
_sysOrgRep = sysOrgRep;
_httpContextAccessor = httpContextAccessor; _httpContextAccessor = httpContextAccessor;
} }
@@ -53,14 +66,22 @@ namespace Ewide.Core
/// 获取用户信息 /// 获取用户信息
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <param name="tracking"></param>
/// <returns></returns> /// <returns></returns>
public async Task<SysUser> CheckUserAsync(string userId, bool tracking = true) public async Task<SysUser> CheckUserAsync(string userId)
{ {
var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == userId, tracking); var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == userId, false);
return user ?? throw Oops.Oh(ErrorCode.D1002); return user ?? throw Oops.Oh(ErrorCode.D1002);
} }
/// <summary>
/// 获取用户信息
/// </summary>
/// <returns></returns>
public async Task<SysUser> CheckUserAsync()
{
return await CheckUserAsync(UserId);
}
/// <summary> /// <summary>
/// 获取用户员工信息 /// 获取用户员工信息
/// </summary> /// </summary>
@@ -71,5 +92,76 @@ namespace Ewide.Core
var emp = await _sysEmpRep.FirstOrDefaultAsync(u => u.Id == userId, false); var emp = await _sysEmpRep.FirstOrDefaultAsync(u => u.Id == userId, false);
return emp ?? throw Oops.Oh(ErrorCode.D1002); return emp ?? throw Oops.Oh(ErrorCode.D1002);
} }
/// <summary>
/// 获取用户员工信息
/// </summary>
/// <returns></returns>
public async Task<SysEmp> GetUserEmpInfo()
{
return await GetUserEmpInfo(UserId);
}
/// <summary>
/// 获取用户部门信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<SysOrg> GetUserOrgInfo(string userId)
{
var emp = await GetUserEmpInfo(userId);
var org = await _sysOrgRep.FirstOrDefaultAsync(u => u.Id == emp.OrgId, false);
return org ?? throw Oops.Oh(ErrorCode.D1002);
}
/// <summary>
/// 获取用户部门信息
/// </summary>
/// <returns></returns>
public async Task<SysOrg> GetUserOrgInfo()
{
return await GetUserOrgInfo(UserId);
}
/// <summary>
/// 获取用户角色Id列表
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<List<string>> GetUserRoleIdList(string userId)
{
var roleIds = await _sysUserRoleRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.SysRoleId).ToListAsync();
return roleIds;
}
/// <summary>
/// 获取用户角色Id列表
/// </summary>
/// <returns></returns>
public async Task<List<string>> GetUserRoleIdList()
{
return await GetUserRoleIdList(UserId);
}
/// <summary>
/// 获取用户角色列表
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<List<SysRole>> GetUserRoleList(string userId)
{
var roleIds = await GetUserRoleIdList(userId);
var roles = await _sysRoleRep.DetachedEntities.Where(u => roleIds.Contains(u.Id)).ToListAsync();
return roles;
}
/// <summary>
/// 获取用户角色列表
/// </summary>
/// <returns></returns>
public async Task<List<SysRole>> GetUserRoleList()
{
return await GetUserRoleList(UserId);
}
} }
} }