chore:修改目录

This commit is contained in:
陈淳
2023-04-15 17:33:42 +08:00
parent 0401e97ed3
commit eb8e076732
119 changed files with 1881 additions and 200 deletions

View File

@@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Infrastructure.AspNetCore
{
public static class StratUrlsExtensions
{
public static IWebHostBuilder UseStartUrlsServer(this IWebHostBuilder hostBuilder, IConfiguration configuration, string option = "StartUrl")
{
return hostBuilder.UseUrls(configuration.GetValue<string>(option));
}
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Module.DictionaryManager
{
/// <summary>
/// 常量定义
/// </summary>
public class DictionaryConst
{
}
}

View File

@@ -0,0 +1,50 @@
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Framework.Module.DictionaryManager.Dtos.Dictionary;
using Yi.Framework.Module.DictionaryManager.Entities;
namespace Yi.Framework.Module.DictionaryManager
{
/// <summary>
/// Dictionary服务实现
/// </summary>
public class DictionaryService : CrudAppService<DictionaryEntity, DictionaryGetOutputDto, DictionaryGetListOutputDto, long, DictionaryGetListInputVo, DictionaryCreateInputVo, DictionaryUpdateInputVo>,
IDictionaryService,IDynamicApiController,ITransient
{
/// <summary>
/// 查询
/// </summary>
public override async Task<PagedResultDto<DictionaryGetListOutputDto>> GetListAsync(DictionaryGetListInputVo input)
{
RefAsync<int> total = 0;
var entities = await _DbQueryable.WhereIF(input.DictType is not null, x => x.DictType == input.DictType)
.WhereIF(input.DictLabel is not null, x => x.DictLabel!.Contains(input.DictLabel!))
.WhereIF(input.State is not null, x => x.State == input.State)
.ToPageListAsync(input.PageNum, input.PageSize, total);
return new PagedResultDto<DictionaryGetListOutputDto>
{
Total = total,
Items = await MapToGetListOutputDtosAsync(entities)
};
}
/// <summary>
/// 根据字典类型获取字典列表
/// </summary>
/// <param name="dicType"></param>
/// <returns></returns>
[Route("/api/dictionary/dic-type/{dicType}")]
public async Task<List<DictionaryGetListOutputDto>> GetDicType([FromRoute] string dicType)
{
var entities = await _repository.GetListAsync(u => u.DictType == dicType && u.State == true);
var result = await MapToGetListOutputDtosAsync(entities);
return result;
}
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Module.DictionaryManager
{
/// <summary>
/// 常量定义
/// </summary>
public class DictionaryTypeConst
{
}
}

View File

@@ -0,0 +1,37 @@
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType;
using Yi.Framework.Module.DictionaryManager.Entities;
namespace Yi.Framework.Module.DictionaryManager
{
/// <summary>
/// DictionaryType服务实现
/// </summary>
public class DictionaryTypeService : CrudAppService<DictionaryTypeEntity, DictionaryTypeGetOutputDto, DictionaryTypeGetListOutputDto, long, DictionaryTypeGetListInputVo, DictionaryTypeCreateInputVo, DictionaryTypeUpdateInputVo>,
IDictionaryTypeService, IDynamicApiController, ITransient
{
public async override Task<PagedResultDto<DictionaryTypeGetListOutputDto>> GetListAsync(DictionaryTypeGetListInputVo input)
{
RefAsync<int> total = 0;
var entities = await _DbQueryable.WhereIF(input.DictName is not null, x => x.DictName.Contains(input.DictName!))
.WhereIF(input.DictType is not null, x => x.DictType!.Contains(input.DictType!))
.WhereIF(input.State is not null, x => x.State == input.State)
.WhereIF(input.StartTime is not null && input.EndTime is not null, x => x.CreationTime >= input.StartTime && x.CreationTime <= input.EndTime)
.ToPageListAsync(input.PageNum, input.PageSize, total);
return new PagedResultDto<DictionaryTypeGetListOutputDto>
{
Total = total,
Items = await MapToGetListOutputDtosAsync(entities)
};
}
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Module.DictionaryManager.Dtos.Dictionary
{
/// <summary>
/// Dictionary输入创建对象
/// </summary>
public class DictionaryCreateInputVo
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string? Remark { get; set; }
public string? ListClass { get; set; }
public string? CssClass { get; set; }
public string DictType { get; set; } = string.Empty;
public string? DictLabel { get; set; }
public string DictValue { get; set; } = string.Empty;
public bool IsDefault { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Framework.Module.DictionaryManager.Dtos.Dictionary
{
public class DictionaryGetListInputVo : PagedAndSortedResultRequestDto
{
public string? DictType { get; set; }
public string? DictLabel { get; set; }
public bool? State { get; set; }
}
}

View File

@@ -0,0 +1,19 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Framework.Module.DictionaryManager.Dtos.Dictionary
{
public class DictionaryGetListOutputDto : IEntityDto<long>
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string? Remark { get; set; }
public string? ListClass { get; set; }
public string? CssClass { get; set; }
public string DictType { get; set; } = string.Empty;
public string? DictLabel { get; set; }
public string DictValue { get; set; } = string.Empty;
public bool IsDefault { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Framework.Module.DictionaryManager.Dtos.Dictionary
{
public class DictionaryGetOutputDto : IEntityDto<long>
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string? Remark { get; set; }
public string? ListClass { get; set; }
public string? CssClass { get; set; }
public string DictType { get; set; } = string.Empty;
public string? DictLabel { get; set; }
public string DictValue { get; set; } = string.Empty;
public bool IsDefault { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Module.DictionaryManager.Dtos.Dictionary
{
public class DictionaryUpdateInputVo
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string? Remark { get; set; }
public string? ListClass { get; set; }
public string? CssClass { get; set; }
public string DictType { get; set; } = string.Empty;
public string? DictLabel { get; set; }
public string DictValue { get; set; } = string.Empty;
public bool IsDefault { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType
{
/// <summary>
/// DictionaryType输入创建对象
/// </summary>
public class DictionaryTypeCreateInputVo
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string DictName { get; set; } = string.Empty;
public string DictType { get; set; } = string.Empty;
public string? Remark { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType
{
public class DictionaryTypeGetListInputVo : PagedAllResultRequestDto
{
public string? DictName { get; set; }
public string? DictType { get; set; }
public string? Remark { get; set; }
public bool? State { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType
{
public class DictionaryTypeGetListOutputDto : IEntityDto<long>
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string DictName { get; set; } = string.Empty;
public string DictType { get; set; } = string.Empty;
public string? Remark { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType
{
public class DictionaryTypeGetOutputDto : IEntityDto<long>
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string DictName { get; set; } = string.Empty;
public string DictType { get; set; } = string.Empty;
public string? Remark { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
namespace Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType
{
public class DictionaryTypeUpdateInputVo
{
public long Id { get; set; }
public DateTime CreationTime { get; set; } = DateTime.Now;
public long? CreatorId { get; set; }
public string DictName { get; set; } = string.Empty;
public string DictType { get; set; } = string.Empty;
public string? Remark { get; set; }
public bool State { get; set; }
}
}

View File

@@ -0,0 +1,71 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Framework.Module.DictionaryManager.Entities
{
[SugarTable("Dictionary")]
public class DictionaryEntity : AuditedObject, IEntity<long>, ISoftDelete, IOrderNum, IState
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public long Id { get; set; }
/// <summary>
/// 逻辑删除
/// </summary>
public bool IsDeleted { get; set; }
/// <summary>
/// 排序
/// </summary>
public int OrderNum { get; set; } = 0;
/// <summary>
/// 状态
/// </summary>
public bool State { get; set; } = true;
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName = "Remark")]
public string? Remark { get; set; }
/// <summary>
/// tag类型
///</summary>
[SugarColumn(ColumnName = "ListClass")]
public string? ListClass { get; set; }
/// <summary>
/// tagClass
///</summary>
[SugarColumn(ColumnName = "CssClass")]
public string? CssClass { get; set; }
/// <summary>
/// 字典类型
///</summary>
[SugarColumn(ColumnName = "DictType")]
public string DictType { get; set; } = string.Empty;
/// <summary>
/// 字典标签
///</summary>
[SugarColumn(ColumnName = "DictLabel")]
public string? DictLabel { get; set; }
/// <summary>
/// 字典值
///</summary>
[SugarColumn(ColumnName = "DictValue")]
public string DictValue { get; set; } = string.Empty;
/// <summary>
/// 是否为该类型的默认值
///</summary>
[SugarColumn(ColumnName = "IsDefault")]
public bool IsDefault { get; set; }
}
}

View File

@@ -0,0 +1,50 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Framework.Module.DictionaryManager.Entities
{
[SugarTable("DictionaryType")]
public class DictionaryTypeEntity : AuditedObject, IEntity<long>, ISoftDelete, IOrderNum
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public long Id { get; set; }
/// <summary>
/// 逻辑删除
/// </summary>
public bool IsDeleted { get; set; }
/// <summary>
/// 排序
/// </summary>
public int OrderNum { get; set; } = 0;
/// <summary>
/// 状态
/// </summary>
public bool? State { get; set; } = true;
/// <summary>
/// 字典名称
///</summary>
[SugarColumn(ColumnName = "DictName")]
public string DictName { get; set; } = string.Empty;
/// <summary>
/// 字典类型
///</summary>
[SugarColumn(ColumnName = "DictType")]
public string DictType { get; set; } = string.Empty;
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName = "Remark")]
public string? Remark { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Framework.Module.DictionaryManager.Dtos.Dictionary;
namespace Yi.Framework.Module.DictionaryManager
{
/// <summary>
/// Dictionary服务抽象
/// </summary>
public interface IDictionaryService : ICrudAppService<DictionaryGetOutputDto, DictionaryGetListOutputDto, long, DictionaryGetListInputVo, DictionaryCreateInputVo, DictionaryUpdateInputVo>
{
}
}

View File

@@ -0,0 +1,13 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Framework.Module.DictionaryManager.Dtos.DictionaryType;
namespace Yi.Framework.Module.DictionaryManager
{
/// <summary>
/// DictionaryType服务抽象
/// </summary>
public interface IDictionaryTypeService : ICrudAppService<DictionaryTypeGetOutputDto, DictionaryTypeGetListOutputDto, long, DictionaryTypeGetListInputVo, DictionaryTypeCreateInputVo, DictionaryTypeUpdateInputVo>
{
}
}

View File

@@ -0,0 +1,43 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Framework.Module.FileManager
{
/// <summary>
/// 文件表
///</summary>
[SugarTable("File")]
public class FileEntity : IEntity<long>, IAuditedObject
{
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]
public long Id { get; set; }
/// <summary>
/// 文件类型
///</summary>
[SugarColumn(ColumnName = "FileContentType")]
public string? FileContentType { get; set; }
/// <summary>
/// 文件大小
///</summary>
[SugarColumn(ColumnName = "FileSize")]
public decimal FileSize { get; set; }
/// <summary>
/// 文件名
///</summary>
[SugarColumn(ColumnName = "FileName")]
public string FileName { get; set; }
/// <summary>
/// 文件路径
///</summary>
[SugarColumn(ColumnName = "FilePath")]
public string FilePath { get; set; }
public DateTime CreationTime { get; set; }
public long? CreatorId { get; set; }
public long? LastModifierId { get; set; }
public DateTime? LastModificationTime { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Framework.Module.FileManager
{
public class FileGetListOutputDto : IEntityDto
{
public long Id { get; set; }
}
}

View File

@@ -0,0 +1,143 @@
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Mapster;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Yi.Framework.Infrastructure.AspNetCore;
using Yi.Framework.Infrastructure.Const;
using Yi.Framework.Infrastructure.Ddd.Repositories;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Framework.Infrastructure.Enums;
using Yi.Framework.Infrastructure.Helper;
using Yi.Framework.Module.ImageSharp;
namespace Yi.Framework.Module.FileManager
{
/// <summary>
/// 文件处理
/// </summary>
public class FileService : ApplicationService, IFileService, IDynamicApiController, ITransient
{
private readonly IRepository<FileEntity> _repository;
private readonly ImageSharpManager _imageSharpManager;
private readonly HttpContext _httpContext;
public FileService(IRepository<FileEntity> repository, ImageSharpManager imageSharpManager, IHttpContextAccessor httpContextAccessor
)
{
_repository = repository;
_imageSharpManager = imageSharpManager;
if (httpContextAccessor.HttpContext is null)
{
throw new ApplicationException("HttpContext为空");
}
_httpContext = httpContextAccessor.HttpContext;
}
/// <summary>
/// 下载文件,是否缩略图
/// </summary>
/// <returns></returns>
[Route("/api/file/{code}/{isThumbnail?}")]
public async Task<IActionResult> Get([FromRoute] long code, [FromRoute] bool? isThumbnail)
{
var file = await _repository.GetByIdAsync(code);
if (file is null)
{
return new NotFoundResult();
}
var path = file.FilePath;
//如果为缩略图,需要修改路径
if (isThumbnail is true)
{
path = $"{PathConst.wwwroot}/{FileTypeEnum.Thumbnail}/{file.Id}{Path.GetExtension(file.FileName)}";
}
//路径为: 文件路径/文件id+文件扩展名
if (!File.Exists(path))
{
return new NotFoundResult();
}
var steam = await File.ReadAllBytesAsync(path);
//设置附件下载,下载名称
_httpContext.FileAttachmentHandle(file.FileName);
return new FileContentResult(steam, file.FileContentType ?? @"text/plain");
}
/// <summary>
/// 上传文件
/// </summary>
/// <returns></returns>
public async Task<List<FileGetListOutputDto>> Post([FromForm] IFormFileCollection file)
{
if (file.Count() == 0)
{
throw new ArgumentException("文件上传为空!");
}
//批量插入
List<FileEntity> entities = new();
foreach (var f in file)
{
FileEntity data = new();
data.Id = SnowflakeHelper.NextId;
data.FileSize = (decimal)f.Length / 1024;
data.FileName = f.FileName;
data.FileContentType = MimeHelper.GetMimeMapping(f.FileName);
var type = MimeHelper.GetFileType(f.FileName);
//落盘文件文件名为雪花id+自己的扩展名
string filename = data.Id.ToString() + Path.GetExtension(f.FileName);
string typePath = $"{PathConst.wwwroot}/{type}";
if (!Directory.Exists(typePath))
{
Directory.CreateDirectory(typePath);
}
var filePath = Path.Combine(typePath, filename);
data.FilePath = filePath;
//生成文件
using (var stream = new FileStream(filePath, FileMode.CreateNew, FileAccess.ReadWrite))
{
await f.CopyToAsync(stream);
//如果是图片类型,还需要生成缩略图,当然,如果图片很小,直接复制过去即可
if (FileTypeEnum.Image.Equals(type))
{
string thumbnailPath = $"{PathConst.wwwroot}/{FileTypeEnum.Thumbnail}";
if (!Directory.Exists(thumbnailPath))
{
Directory.CreateDirectory(thumbnailPath);
}
string thumbnailFilePath = Path.Combine(thumbnailPath, filename);
try
{
_imageSharpManager.ImageCompress(f.FileName, f.OpenReadStream(), thumbnailFilePath);
}
catch
{
var result = new byte[stream.Length];
await stream.ReadAsync(result, 0, result.Length);
await File.WriteAllBytesAsync(thumbnailFilePath, result);
}
}
};
entities.Add(data);
}
await _repository.InsertRangeAsync(entities);
return entities.Adapt<List<FileGetListOutputDto>>();
}
}
}

View File

@@ -0,0 +1,6 @@
namespace Yi.Framework.Module.FileManager
{
public interface IFileService
{
}
}

View File

@@ -29,5 +29,9 @@
<EmbeddedResource Include="ImageSharp\HeiCaptcha\fonts\monbaiti.ttf" />
<EmbeddedResource Include="ImageSharp\HeiCaptcha\fonts\STCAIYUN.ttf" />
</ItemGroup>
<ItemGroup>
<Folder Include="DictionaryManager\" />
</ItemGroup>
</Project>

View File

@@ -2,17 +2,17 @@
using Yi.Framework.Infrastructure.Ddd.Repositories;
using Yi.Framework.Infrastructure.Exceptions;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Rbac.Core.ConstClasses;
using Yi.Furion.Rbac.Core.Dtos;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Core.Rbac.ConstClasses;
using Yi.Furion.Core.Rbac.Dtos;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Domain
namespace Yi.Furion.Application.Rbac.Domain
{
/// <summary>
/// 用户领域服务
/// </summary>
public class AccountManager:ITransient
public class AccountManager : ITransient
{
private readonly IRepository<UserEntity> _repository;
public AccountManager(IRepository<UserEntity> repository)

View File

@@ -1,10 +1,10 @@
using Yi.Framework.Infrastructure.Ddd.Repositories;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Domain
namespace Yi.Furion.Application.Rbac.Domain
{
public class RoleManager:ITransient
public class RoleManager : ITransient
{
private IRepository<RoleEntity> _repository;
private IRepository<RoleMenuEntity> _roleMenuRepository;

View File

@@ -1,10 +1,10 @@
using Yi.Framework.Infrastructure.Ddd.Repositories;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Domain
namespace Yi.Furion.Application.Rbac.Domain
{
public class UserManager:ITransient
public class UserManager : ITransient
{
private readonly IRepository<UserEntity> _repository;
private readonly IRepository<UserRoleEntity> _repositoryUserRole;

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class CaptchaImageDto
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class LoginInputVo
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class PhoneCaptchaImageDto
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class RegisterDto
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class RestPasswordDto
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class UpdateIconDto
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Account
namespace Yi.Furion.Application.Rbac.Dtos.Account
{
public class UpdatePasswordDto
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Dept
namespace Yi.Furion.Application.Rbac.Dtos.Dept
{
/// <summary>
/// Dept输入创建对象

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Furion.Rbac.Application.System.Dtos.Dept
namespace Yi.Furion.Application.Rbac.Dtos.Dept
{
public class DeptGetListInputVo : PagedAllResultRequestDto
{

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Furion.Rbac.Application.System.Dtos.Dept
namespace Yi.Furion.Application.Rbac.Dtos.Dept
{
public class DeptGetListOutputDto : IEntityDto<long>
{

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Furion.Rbac.Application.System.Dtos.Dept
namespace Yi.Furion.Application.Rbac.Dtos.Dept
{
public class DeptGetOutputDto : IEntityDto<long>
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Dept
namespace Yi.Furion.Application.Rbac.Dtos.Dept
{
public class DeptUpdateInputVo
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Menu
namespace Yi.Furion.Application.Rbac.Dtos.Menu
{
/// <summary>
/// Menu输入创建对象

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Furion.Rbac.Application.System.Dtos.Menu
namespace Yi.Furion.Application.Rbac.Dtos.Menu
{
public class MenuGetListInputVo : PagedAndSortedResultRequestDto
{

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Menu
namespace Yi.Furion.Application.Rbac.Dtos.Menu
{
public class MenuGetListOutputDto : IEntityDto<long>
{

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Menu
namespace Yi.Furion.Application.Rbac.Dtos.Menu
{
public class MenuGetOutputDto : IEntityDto<long>
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Menu
namespace Yi.Furion.Application.Rbac.Dtos.Menu
{
public class MenuUpdateInputVo
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Application.System.Dtos.Post
namespace Yi.Furion.Application.Rbac.Dtos.Post
{
/// <summary>
/// Post输入创建对象

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Furion.Rbac.Application.System.Dtos.Post
namespace Yi.Furion.Application.Rbac.Dtos.Post
{
public class PostGetListInputVo : PagedAndSortedResultRequestDto
{

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Furion.Rbac.Application.System.Dtos.Post
namespace Yi.Furion.Application.Rbac.Dtos.Post
{
public class PostGetListOutputDto : IEntityDto<long>
{

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
namespace Yi.Furion.Rbac.Application.System.Dtos.Post
namespace Yi.Furion.Application.Rbac.Dtos.Post
{
public class PostGetOutputDto : IEntityDto<long>
{

View File

@@ -1,4 +1,4 @@
namespace Yi.Furion.Rbac.Application.System.Dtos.Post
namespace Yi.Furion.Application.Rbac.Dtos.Post
{
public class PostUpdateInputVo
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Role
namespace Yi.Furion.Application.Rbac.Dtos.Role
{
/// <summary>
/// Role输入创建对象

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Furion.Rbac.Application.System.Dtos.Role
namespace Yi.Furion.Application.Rbac.Dtos.Role
{
public class RoleGetListInputVo : PagedAllResultRequestDto
{

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Role
namespace Yi.Furion.Application.Rbac.Dtos.Role
{
public class RoleGetListOutputDto : IEntityDto<long>
{

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Role
namespace Yi.Furion.Application.Rbac.Dtos.Role
{
public class RoleGetOutputDto : IEntityDto<long>
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.Role
namespace Yi.Furion.Application.Rbac.Dtos.Role
{
public class RoleUpdateInputVo
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.User
namespace Yi.Furion.Application.Rbac.Dtos.User
{
public class ProfileUpdateInputVo
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.User
namespace Yi.Furion.Application.Rbac.Dtos.User
{
/// <summary>
/// User输入创建对象

View File

@@ -1,6 +1,6 @@
using Yi.Framework.Infrastructure.Ddd.Dtos;
namespace Yi.Furion.Rbac.Application.System.Dtos.User
namespace Yi.Furion.Application.Rbac.Dtos.User
{
public class UserGetListInputVo : PagedAllResultRequestDto
{

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.User
namespace Yi.Furion.Application.Rbac.Dtos.User
{
public class UserGetListOutputDto : IEntityDto<long>
{

View File

@@ -1,10 +1,10 @@
using Yi.Framework.Infrastructure.Ddd.Dtos.Abstract;
using Yi.Furion.Rbac.Application.System.Dtos.Dept;
using Yi.Furion.Rbac.Application.System.Dtos.Post;
using Yi.Furion.Rbac.Application.System.Dtos.Role;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Application.Rbac.Dtos.Dept;
using Yi.Furion.Application.Rbac.Dtos.Post;
using Yi.Furion.Application.Rbac.Dtos.Role;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.User
namespace Yi.Furion.Application.Rbac.Dtos.User
{
public class UserGetOutputDto : IEntityDto<long>
{

View File

@@ -1,6 +1,6 @@
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Application.System.Dtos.User
namespace Yi.Furion.Application.Rbac.Dtos.User
{
public class UserUpdateInputVo
{

View File

@@ -4,16 +4,16 @@ using UAParser;
using Yi.Framework.Infrastructure.AspNetCore;
using Yi.Framework.Infrastructure.Ddd.Repositories;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Rbac.Core.Etos;
using Yi.Furion.Core.Rbac.Entities;
using Yi.Furion.Core.Rbac.Etos;
namespace Yi.Furion.Rbac.Application.System.Event
namespace Yi.Furion.Application.Rbac.Event
{
public class LoginEventHandler : IEventSubscriber,ISingleton
public class LoginEventHandler : IEventSubscriber, ISingleton
{
private readonly IRepository<LoginLogEntity> _loginLogRepository;
private readonly IHttpContextAccessor _httpContextAccessor;
private HttpContext _httpContext=> _httpContextAccessor.HttpContext;
private HttpContext _httpContext => _httpContextAccessor.HttpContext;
public LoginEventHandler(IRepository<LoginLogEntity> loginLogRepository, IHttpContextAccessor httpContextAccessor)
{
_loginLogRepository = loginLogRepository;
@@ -22,7 +22,7 @@ namespace Yi.Furion.Rbac.Application.System.Event
//[EventSubscribe(nameof(LoginEventSource))]
public Task HandlerAsync(EventHandlerExecutingContext context)
{
var eventData=(LoginEventArgs)context.Source.Payload;
var eventData = (LoginEventArgs)context.Source.Payload;
var loginLogEntity = GetLoginLogInfo(_httpContext);
loginLogEntity.Id = SnowflakeHelper.NextId;
loginLogEntity.LogMsg = eventData.UserName + "登录系统";

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Furion.Rbac.Application.System.Dtos.Dept;
using Yi.Furion.Application.Rbac.Dtos.Dept;
namespace Yi.Furion.Rbac.Application.System.Services
namespace Yi.Furion.Application.Rbac.Services
{
/// <summary>
/// Dept服务抽象

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Furion.Rbac.Application.System.Dtos.Menu;
using Yi.Furion.Application.Rbac.Dtos.Menu;
namespace Yi.Furion.Rbac.Application.System.Services
namespace Yi.Furion.Application.Rbac.Services
{
/// <summary>
/// Menu服务抽象

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Furion.Rbac.Application.System.Dtos.Post;
using Yi.Furion.Application.Rbac.Dtos.Post;
namespace Yi.Furion.Rbac.Application.System.Services
namespace Yi.Furion.Application.Rbac.Services
{
/// <summary>
/// Post服务抽象

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Furion.Rbac.Application.System.Dtos.Role;
using Yi.Furion.Application.Rbac.Dtos.Role;
namespace Yi.Furion.Rbac.Application.System.Services
namespace Yi.Furion.Application.Rbac.Services
{
/// <summary>
/// Role服务抽象

View File

@@ -1,7 +1,7 @@
using Yi.Framework.Infrastructure.Ddd.Services.Abstract;
using Yi.Furion.Rbac.Application.System.Dtos.User;
using Yi.Furion.Application.Rbac.Dtos.User;
namespace Yi.Furion.Rbac.Application.System.Services
namespace Yi.Furion.Application.Rbac.Services
{
/// <summary>
/// User服务抽象

View File

@@ -9,15 +9,15 @@ using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Framework.Infrastructure.Exceptions;
using Yi.Framework.Module.ImageSharp.HeiCaptcha;
using Yi.Framework.Module.Sms.Aliyun;
using Yi.Furion.Rbac.Application.System.Domain;
using Yi.Furion.Rbac.Application.System.Dtos.Account;
using Yi.Furion.Rbac.Core.ConstClasses;
using Yi.Furion.Rbac.Core.Dtos;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Rbac.Core.Etos;
using Yi.Furion.Rbac.Sqlsugar.Core.Repositories;
using Yi.Furion.Application.Rbac.Domain;
using Yi.Furion.Application.Rbac.Dtos.Account;
using Yi.Furion.Core.Rbac.ConstClasses;
using Yi.Furion.Core.Rbac.Dtos;
using Yi.Furion.Core.Rbac.Entities;
using Yi.Furion.Core.Rbac.Etos;
using Yi.Furion.Sqlsugar.Core.Repositories;
namespace Yi.Furion.Rbac.Application.System.Services.Impl
namespace Yi.Furion.Application.Rbac.Services.Impl
{
public class AccountService : ApplicationService, ITransient, IDynamicApiController
{
@@ -251,16 +251,16 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
throw new UserFriendlyException("用户已存在,注册失败");
}
var newUser = new UserEntity(input.UserName, input.Password, input.Phone);
var newUser = new UserEntity(input.UserName, input.Password, input.Phone);
var entity = await _userRepository.InsertReturnEntityAsync(newUser);
//赋上一个初始角色
var roleRepository = _roleRepository;
var role = await roleRepository.GetFirstAsync(x => x.RoleCode == UserConst.GuestRoleCode);
if (role is not null)
{
await _userManager.GiveUserSetRoleAsync(new List<long> { entity.Id }, new List<long> { role.Id });
}
var entity = await _userRepository.InsertReturnEntityAsync(newUser);
//赋上一个初始角色
var roleRepository = _roleRepository;
var role = await roleRepository.GetFirstAsync(x => x.RoleCode == UserConst.GuestRoleCode);
if (role is not null)
{
await _userManager.GiveUserSetRoleAsync(new List<long> { entity.Id }, new List<long> { role.Id });
}
return true;
}

View File

@@ -1,10 +1,10 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Furion.Rbac.Application.System.Dtos.Dept;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Application.Rbac.Dtos.Dept;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Services.Impl
namespace Yi.Furion.Application.Rbac.Services.Impl
{
/// <summary>
/// Dept服务实现

View File

@@ -1,10 +1,11 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Furion.Rbac.Application.System.Dtos.Menu;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Application.Rbac.Dtos.Menu;
using Yi.Furion.Application.Rbac.Services;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Services.Impl
namespace Yi.Furion.Application.Rbac.Services.Impl
{
/// <summary>
/// Menu服务实现

View File

@@ -1,10 +1,10 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Furion.Rbac.Application.System.Dtos.Post;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Application.Rbac.Dtos.Post;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Services.Impl
namespace Yi.Furion.Application.Rbac.Services.Impl
{
/// <summary>
/// Post服务实现

View File

@@ -1,11 +1,11 @@
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Furion.Rbac.Application.System.Domain;
using Yi.Furion.Rbac.Application.System.Dtos.Role;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Application.Rbac.Domain;
using Yi.Furion.Application.Rbac.Dtos.Role;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Application.System.Services.Impl
namespace Yi.Furion.Application.Rbac.Services.Impl
{
/// <summary>
/// Role服务实现
@@ -14,8 +14,8 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
IRoleService, ITransient, IDynamicApiController
{
public RoleService(RoleManager roleManager) =>
(_roleManager) =
(roleManager);
_roleManager =
roleManager;
private RoleManager _roleManager { get; set; }
@@ -45,10 +45,10 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
RoleGetOutputDto outputDto;
//using (var uow = _unitOfWorkManager.CreateContext())
//{
var entity = await MapToEntityAsync(input);
await _repository.InsertAsync(entity);
outputDto = await MapToGetOutputDtoAsync(entity);
await _roleManager.GiveRoleSetMenuAsync(new List<long> { entity.Id }, input.MenuIds);
var entity = await MapToEntityAsync(input);
await _repository.InsertAsync(entity);
outputDto = await MapToGetOutputDtoAsync(entity);
await _roleManager.GiveRoleSetMenuAsync(new List<long> { entity.Id }, input.MenuIds);
// uow.Commit();
//}
@@ -67,13 +67,13 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
var dto = new RoleGetOutputDto();
//using (var uow = _unitOfWorkManager.CreateContext())
//{
var entity = await _repository.GetByIdAsync(id);
await MapToEntityAsync(input, entity);
await _repository.UpdateAsync(entity);
var entity = await _repository.GetByIdAsync(id);
await MapToEntityAsync(input, entity);
await _repository.UpdateAsync(entity);
await _roleManager.GiveRoleSetMenuAsync(new List<long> { id }, input.MenuIds);
await _roleManager.GiveRoleSetMenuAsync(new List<long> { id }, input.MenuIds);
dto = await MapToGetOutputDtoAsync(entity);
dto = await MapToGetOutputDtoAsync(entity);
// uow.Commit();
//}
return dto;

View File

@@ -4,13 +4,13 @@ using Yi.Framework.Infrastructure.Ddd.Dtos;
using Yi.Framework.Infrastructure.Ddd.Services;
using Yi.Framework.Infrastructure.Exceptions;
using Yi.Framework.Module.OperLogManager;
using Yi.Furion.Rbac.Application.System.Domain;
using Yi.Furion.Rbac.Application.System.Dtos.User;
using Yi.Furion.Rbac.Core.ConstClasses;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Rbac.Sqlsugar.Core.Repositories;
using Yi.Furion.Application.Rbac.Domain;
using Yi.Furion.Application.Rbac.Dtos.User;
using Yi.Furion.Core.Rbac.ConstClasses;
using Yi.Furion.Core.Rbac.Entities;
using Yi.Furion.Sqlsugar.Core.Repositories;
namespace Yi.Furion.Rbac.Application.System.Services.Impl
namespace Yi.Furion.Application.Rbac.Services.Impl
{
/// <summary>
/// User服务实现
@@ -21,13 +21,13 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
public UserService(UserManager userManager, IUserRepository userRepository, ICurrentUser currentUser) =>
(_userManager, _userRepository, _currentUser) =
(_userManager, _userRepository, _currentUser) =
(userManager, userRepository, currentUser);
private UserManager _userManager { get; set; }
private IUserRepository _userRepository { get; set; }
private ICurrentUser _currentUser { get; set; }
/// <summary>
@@ -89,13 +89,13 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
//using (var uow = _unitOfWorkManager.CreateContext())
//{
var returnEntity = await _repository.InsertReturnEntityAsync(entities);
await _userManager.GiveUserSetRoleAsync(new List<long> { returnEntity.Id }, input.RoleIds);
await _userManager.GiveUserSetPostAsync(new List<long> { returnEntity.Id }, input.PostIds);
//uow.Commit();
var returnEntity = await _repository.InsertReturnEntityAsync(entities);
await _userManager.GiveUserSetRoleAsync(new List<long> { returnEntity.Id }, input.RoleIds);
await _userManager.GiveUserSetPostAsync(new List<long> { returnEntity.Id }, input.PostIds);
//uow.Commit();
var result = await MapToGetOutputDtoAsync(returnEntity);
return result;
var result = await MapToGetOutputDtoAsync(returnEntity);
return result;
//}
}
/// <summary>
@@ -135,9 +135,9 @@ namespace Yi.Furion.Rbac.Application.System.Services.Impl
await MapToEntityAsync(input, entity);
//using (var uow = _unitOfWorkManager.CreateContext())
//{
var res1 = await _repository.UpdateAsync(entity);
await _userManager.GiveUserSetRoleAsync(new List<long> { id }, input.RoleIds);
await _userManager.GiveUserSetPostAsync(new List<long> { id }, input.PostIds);
var res1 = await _repository.UpdateAsync(entity);
await _userManager.GiveUserSetRoleAsync(new List<long> { id }, input.RoleIds);
await _userManager.GiveUserSetPostAsync(new List<long> { id }, input.PostIds);
// uow.Commit();
//}
return await MapToGetOutputDtoAsync(entity);

View File

@@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<NoWarn>1701;1702;1591</NoWarn>
<DocumentationFile>Yi.Furion.Rbac.Application.xml</DocumentationFile>
<DocumentationFile>Yi.Furion.Application.xml</DocumentationFile>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
@@ -12,7 +12,7 @@
<ItemGroup>
<None Remove="applicationsettings.json" />
<None Remove="Yi.Furion.Rbac.Application.xml" />
<None Remove="Yi.Furion.Application.xml" />
</ItemGroup>
<ItemGroup>
@@ -24,11 +24,11 @@
<ItemGroup>
<ProjectReference Include="..\Yi.Framework.Infrastructure\Yi.Framework.Infrastructure.csproj" />
<ProjectReference Include="..\Yi.Framework.Module\Yi.Framework.Module.csproj" />
<ProjectReference Include="..\Yi.Furion.Rbac.EntityFramework.Core\Yi.Furion.Rbac.Sqlsugar.Core.csproj" />
<ProjectReference Include="..\Yi.Furion.Sqlsugar.Core\Yi.Furion.Sqlsugar.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="System\Dtos\" />
<Folder Include="Bbs\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,364 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Yi.Furion.Application</name>
</assembly>
<members>
<member name="T:Yi.Furion.Application.Rbac.Domain.AccountManager">
<summary>
用户领域服务
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.AccountManager.LoginValidationAsync(System.String,System.String,System.Action{Yi.Furion.Core.Rbac.Entities.UserEntity})">
<summary>
登录效验
</summary>
<param name="userName"></param>
<param name="password"></param>
<param name="userAction"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.AccountManager.ExistAsync(System.String,System.Action{Yi.Furion.Core.Rbac.Entities.UserEntity})">
<summary>
判断账户合法存在
</summary>
<param name="userName"></param>
<param name="userAction"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.AccountManager.UserInfoToClaim(Yi.Furion.Core.Rbac.Dtos.UserRoleMenuDto)">
<summary>
令牌转换
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.AccountManager.UpdatePasswordAsync(System.Int64,System.String,System.String)">
<summary>
更新密码
</summary>
<param name="userId"></param>
<param name="newPassword"></param>
<param name="oldPassword"></param>
<returns></returns>
<exception cref="T:Yi.Framework.Infrastructure.Exceptions.UserFriendlyException"></exception>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.AccountManager.RestPasswordAsync(System.Int64,System.String)">
<summary>
重置密码
</summary>
<param name="userId"></param>
<param name="password"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.RoleManager.GiveRoleSetMenuAsync(System.Collections.Generic.List{System.Int64},System.Collections.Generic.List{System.Int64})">
<summary>
给角色设置菜单
</summary>
<param name="roleIds"></param>
<param name="menuIds"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.UserManager.GiveUserSetRoleAsync(System.Collections.Generic.List{System.Int64},System.Collections.Generic.List{System.Int64})">
<summary>
给用户设置角色
</summary>
<param name="userIds"></param>
<param name="roleIds"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Domain.UserManager.GiveUserSetPostAsync(System.Collections.Generic.List{System.Int64},System.Collections.Generic.List{System.Int64})">
<summary>
给用户设置岗位
</summary>
<param name="userIds"></param>
<param name="postIds"></param>
<returns></returns>
</member>
<member name="P:Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto.UserName">
<summary>
账号
</summary>
</member>
<member name="P:Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto.Password">
<summary>
密码
</summary>
</member>
<member name="P:Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto.Uuid">
<summary>
唯一标识码
</summary>
</member>
<member name="P:Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto.Phone">
<summary>
电话
</summary>
</member>
<member name="P:Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto.Code">
<summary>
验证码
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Dtos.Dept.DeptCreateInputVo">
<summary>
Dept输入创建对象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Dtos.Menu.MenuCreateInputVo">
<summary>
Menu输入创建对象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Dtos.Post.PostCreateInputVo">
<summary>
Post输入创建对象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Dtos.Role.RoleCreateInputVo">
<summary>
Role输入创建对象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Dtos.User.UserCreateInputVo">
<summary>
User输入创建对象
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Event.LoginEventHandler.GetClientInfo(Microsoft.AspNetCore.Http.HttpContext)">
<summary>
获取客户端信息
</summary>
<param name="context"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Event.LoginEventHandler.GetLoginLogInfo(Microsoft.AspNetCore.Http.HttpContext)">
<summary>
记录用户登陆信息
</summary>
<param name="context"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.IDeptService">
<summary>
Dept服务抽象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.IMenuService">
<summary>
Menu服务抽象
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.ValidationImageCaptcha(Yi.Furion.Application.Rbac.Dtos.Account.LoginInputVo)">
<summary>
效验图片登录验证码,无需和账号绑定
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.ValidationPhoneCaptcha(Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto)">
<summary>
效验电话验证码,需要与电话号码绑定
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.PostLoginAsync(Yi.Furion.Application.Rbac.Dtos.Account.LoginInputVo)">
<summary>
登录
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.GetCaptchaImage">
<summary>
生成验证码
</summary>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.ValidationPhone(System.String)">
<summary>
验证电话号码
</summary>
<param name="str_handset"></param>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.PostCaptchaPhone(Yi.Furion.Application.Rbac.Dtos.Account.PhoneCaptchaImageDto)">
<summary>
注册 手机验证码
</summary>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.PostRegisterAsync(Yi.Furion.Application.Rbac.Dtos.Account.RegisterDto)">
<summary>
注册,需要验证码通过
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.Get">
<summary>
查询已登录的账户信息
</summary>
<returns></returns>
<exception cref="T:Yi.Framework.Infrastructure.Exceptions.AuthException"></exception>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.GetVue3Router">
<summary>
获取当前登录用户的前端路由
</summary>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.PostLogout">
<summary>
退出登录
</summary>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.UpdatePasswordAsync(Yi.Furion.Application.Rbac.Dtos.Account.UpdatePasswordDto)">
<summary>
更新密码
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.RestPasswordAsync(System.Int64,Yi.Furion.Application.Rbac.Dtos.Account.RestPasswordDto)">
<summary>
重置密码
</summary>
<param name="userId"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.AccountService.UpdateIconAsync(Yi.Furion.Application.Rbac.Dtos.Account.UpdateIconDto)">
<summary>
更新头像
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.Impl.DeptService">
<summary>
Dept服务实现
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.DeptService.GetListRoleIdAsync(System.Int64)">
<summary>
通过角色id查询该角色全部部门
</summary>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.DeptService.GetListAsync(Yi.Furion.Application.Rbac.Dtos.Dept.DeptGetListInputVo)">
<summary>
多查
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.Impl.MenuService">
<summary>
Menu服务实现
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.MenuService.GetListRoleIdAsync(System.Int64)">
<summary>
查询当前角色的菜单
</summary>
<param name="roleId"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.Impl.PostService">
<summary>
Post服务实现
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.Impl.RoleService">
<summary>
Role服务实现
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.RoleService.CreateAsync(Yi.Furion.Application.Rbac.Dtos.Role.RoleCreateInputVo)">
<summary>
添加角色
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.RoleService.UpdateAsync(System.Int64,Yi.Furion.Application.Rbac.Dtos.Role.RoleUpdateInputVo)">
<summary>
修改角色
</summary>
<param name="id"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.RoleService.UpdateStateAsync(System.Int64,System.Boolean)">
<summary>
更新状态
</summary>
<param name="id"></param>
<param name="state"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.Impl.UserService">
<summary>
User服务实现
</summary>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.UserService.GetListAsync(Yi.Furion.Application.Rbac.Dtos.User.UserGetListInputVo)">
<summary>
查询用户
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.UserService.CreateAsync(Yi.Furion.Application.Rbac.Dtos.User.UserCreateInputVo)">
<summary>
添加用户
</summary>
<param name="input"></param>
<returns></returns>
<exception cref="T:Yi.Framework.Infrastructure.Exceptions.UserFriendlyException"></exception>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.UserService.GetAsync(System.Int64)">
<summary>
单查
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.UserService.UpdateAsync(System.Int64,Yi.Furion.Application.Rbac.Dtos.User.UserUpdateInputVo)">
<summary>
更新用户
</summary>
<param name="id"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.UserService.UpdateProfileAsync(Yi.Furion.Application.Rbac.Dtos.User.ProfileUpdateInputVo)">
<summary>
更新个人中心
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.Furion.Application.Rbac.Services.Impl.UserService.UpdateStateAsync(System.Int64,System.Boolean)">
<summary>
更新状态
</summary>
<param name="id"></param>
<param name="state"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.IPostService">
<summary>
Post服务抽象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.IRoleService">
<summary>
Role服务抽象
</summary>
</member>
<member name="T:Yi.Furion.Application.Rbac.Services.IUserService">
<summary>
User服务抽象
</summary>
</member>
</members>
</doc>

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.ConstClasses
namespace Yi.Furion.Core.Rbac.ConstClasses
{
/// <summary>
/// 常量定义

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.ConstClasses
namespace Yi.Furion.Core.Rbac.ConstClasses
{
/// <summary>
/// 常量定义

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.ConstClasses
namespace Yi.Furion.Core.Rbac.ConstClasses
{
/// <summary>
/// 常量定义

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.ConstClasses
namespace Yi.Furion.Core.Rbac.ConstClasses
{
/// <summary>
/// 常量定义

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.ConstClasses
namespace Yi.Furion.Core.Rbac.ConstClasses
{
/// <summary>
/// 常量定义

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Yi.Furion.Rbac.Core.Entities;
using Yi.Furion.Core.Rbac.Entities;
namespace Yi.Furion.Rbac.Core.Dtos
namespace Yi.Furion.Core.Rbac.Dtos
{
public class UserRoleMenuDto
{

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using static Yi.Framework.Infrastructure.Helper.TreeHelper;
namespace Yi.Furion.Rbac.Core.Dtos
namespace Yi.Furion.Core.Rbac.Dtos
{
public class Vue3RouterDto : ITreeModel<Vue3RouterDto>
{

View File

@@ -7,7 +7,7 @@ using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
/// <summary>
/// 部门表

View File

@@ -3,7 +3,7 @@ using SqlSugar;
using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
[SugarTable("LoginLog")]
public class LoginLogEntity : IEntity<long>, ICreationAuditedObject

View File

@@ -6,10 +6,10 @@ using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Rbac.Core.Dtos;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.Dtos;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
/// <summary>
/// 菜单表

View File

@@ -4,7 +4,7 @@ using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
/// <summary>
/// 岗位表

View File

@@ -5,7 +5,7 @@ using System.Text.Json.Serialization;
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities;
namespace Yi.Furion.Core.Rbac.Entities;
/// <summary>
/// 角色部门关系表

View File

@@ -4,9 +4,9 @@ using SqlSugar;
using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
/// <summary>
/// 角色表

View File

@@ -5,7 +5,7 @@ using System.Text.Json.Serialization;
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities;
namespace Yi.Furion.Core.Rbac.Entities;
/// <summary>
/// 角色菜单关系表
///</summary>

View File

@@ -5,9 +5,9 @@ using Yi.Framework.Infrastructure.Data.Auditing;
using Yi.Framework.Infrastructure.Data.Entities;
using Yi.Framework.Infrastructure.Ddd.Entities;
using Yi.Framework.Infrastructure.Helper;
using Yi.Furion.Rbac.Core.EnumClasses;
using Yi.Furion.Core.Rbac.EnumClasses;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
/// <summary>
/// 用户表

View File

@@ -5,7 +5,7 @@ using System.Text.Json.Serialization;
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities;
namespace Yi.Furion.Core.Rbac.Entities;
/// <summary>
/// 用户岗位表
///</summary>

View File

@@ -4,7 +4,7 @@ using System.Linq;
using SqlSugar;
using Yi.Framework.Infrastructure.Ddd.Entities;
namespace Yi.Furion.Rbac.Core.Entities
namespace Yi.Furion.Core.Rbac.Entities
{
/// <summary>
/// 用户角色关系表

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.EnumClasses
namespace Yi.Furion.Core.Rbac.EnumClasses
{
public enum DataScopeEnum
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.EnumClasses
namespace Yi.Furion.Core.Rbac.EnumClasses
{
public enum MenuTypeEnum
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Furion.Rbac.Core.EnumClasses
namespace Yi.Furion.Core.Rbac.EnumClasses
{
/// <summary>
/// 性别

View File

@@ -6,7 +6,7 @@ using System.Threading;
using System.Threading.Tasks;
using Furion.EventBus;
namespace Yi.Furion.Rbac.Core.Etos
namespace Yi.Furion.Core.Rbac.Etos
{
public class LoginEventSource : IEventSource
{

View File

@@ -4,13 +4,13 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<NoWarn>1701;1702;1591</NoWarn>
<DocumentationFile>Yi.Furion.Rbac.Core.xml</DocumentationFile>
<DocumentationFile>Yi.Furion.Core.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<None Remove="Yi.Furion.Rbac.Core.xml" />
<None Remove="Yi.Furion.Core.xml" />
</ItemGroup>
@@ -27,4 +27,10 @@
<ItemGroup>
<Folder Include="Bbs\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,622 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Yi.Furion.Core</name>
</assembly>
<members>
<member name="T:Yi.Furion.Core.Rbac.ConstClasses.DeptConst">
<summary>
常量定义
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.ConstClasses.MenuConst">
<summary>
常量定义
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.ConstClasses.PostConst">
<summary>
常量定义
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.ConstClasses.RoleConst">
<summary>
常量定义
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.ConstClasses.UserConst">
<summary>
常量定义
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.DeptEntity">
<summary>
部门表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.IsDeleted">
<summary>
逻辑删除
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.CreationTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.CreatorId">
<summary>
创建者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.LastModifierId">
<summary>
最后修改者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.LastModificationTime">
<summary>
最后修改时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.OrderNum">
<summary>
排序
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.State">
<summary>
状态
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.DeptName">
<summary>
部门名称
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.DeptCode">
<summary>
部门编码
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.Leader">
<summary>
负责人
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.ParentId">
<summary>
父级id
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.DeptEntity.Remark">
<summary>
描述
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.LoginLogEntity.LoginUser">
<summary>
登录用户
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.LoginLogEntity.LoginLocation">
<summary>
登录地点
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.LoginLogEntity.LoginIp">
<summary>
登录Ip
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.LoginLogEntity.Browser">
<summary>
浏览器
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.LoginLogEntity.Os">
<summary>
操作系统
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.LoginLogEntity.LogMsg">
<summary>
登录信息
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.MenuEntity">
<summary>
菜单表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.IsDeleted">
<summary>
逻辑删除
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.CreationTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.CreatorId">
<summary>
创建者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.LastModifierId">
<summary>
最后修改者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.LastModificationTime">
<summary>
最后修改时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.OrderNum">
<summary>
排序
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.State">
<summary>
状态
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.MenuName">
<summary>
菜单名
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.MenuType">
<summary>
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.PermissionCode">
<summary>
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.ParentId">
<summary>
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.MenuIcon">
<summary>
菜单图标
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.Router">
<summary>
菜单组件路由
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.IsLink">
<summary>
是否为外部链接
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.IsCache">
<summary>
是否缓存
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.IsShow">
<summary>
是否显示
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.Remark">
<summary>
描述
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.Component">
<summary>
组件路径
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.MenuEntity.Query">
<summary>
路由参数
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.MenuEntityExtensions">
<summary>
实体扩展
</summary>
</member>
<member name="M:Yi.Furion.Core.Rbac.Entities.MenuEntityExtensions.Vue3RouterBuild(System.Collections.Generic.List{Yi.Furion.Core.Rbac.Entities.MenuEntity})">
<summary>
构建vue3路由
</summary>
<param name="menus"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.PostEntity">
<summary>
岗位表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.IsDeleted">
<summary>
逻辑删除
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.CreationTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.CreatorId">
<summary>
创建者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.LastModifierId">
<summary>
最后修改者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.LastModificationTime">
<summary>
最后修改时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.OrderNum">
<summary>
排序
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.State">
<summary>
状态
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.PostCode">
<summary>
岗位编码
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.PostName">
<summary>
岗位名称
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.PostEntity.Remark">
<summary>
描述
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.RoleDeptEntity">
<summary>
角色部门关系表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleDeptEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleDeptEntity.RoleId">
<summary>
角色id
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleDeptEntity.DeptId">
<summary>
部门id
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.RoleEntity">
<summary>
角色表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.IsDeleted">
<summary>
逻辑删除
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.CreationTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.CreatorId">
<summary>
创建者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.LastModifierId">
<summary>
最后修改者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.LastModificationTime">
<summary>
最后修改时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.OrderNum">
<summary>
排序
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.RoleName">
<summary>
角色名
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.RoleCode">
<summary>
角色编码
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.Remark">
<summary>
描述
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.DataScope">
<summary>
角色数据范围
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleEntity.State">
<summary>
状态
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.RoleMenuEntity">
<summary>
角色菜单关系表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleMenuEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleMenuEntity.RoleId">
<summary>
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.RoleMenuEntity.MenuId">
<summary>
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.UserEntity">
<summary>
用户表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.IsDeleted">
<summary>
逻辑删除
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Name">
<summary>
姓名
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Age">
<summary>
年龄
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.UserName">
<summary>
用户名
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Password">
<summary>
密码
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Salt">
<summary>
加密盐值
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Icon">
<summary>
头像
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Nick">
<summary>
昵称
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Email">
<summary>
邮箱
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Ip">
<summary>
Ip
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Address">
<summary>
地址
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Phone">
<summary>
电话
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Introduction">
<summary>
简介
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Sex">
<summary>
性别
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.DeptId">
<summary>
部门id
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.CreationTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.CreatorId">
<summary>
创建者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.LastModifierId">
<summary>
最后修改者
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.LastModificationTime">
<summary>
最后修改时间
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.OrderNum">
<summary>
排序
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.State">
<summary>
状态
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Roles">
<summary>
角色
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Posts">
<summary>
岗位
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserEntity.Dept">
<summary>
部门
</summary>
</member>
<member name="M:Yi.Furion.Core.Rbac.Entities.UserEntity.BuildPassword(System.String)">
<summary>
构建密码MD5盐值加密
</summary>
</member>
<member name="M:Yi.Furion.Core.Rbac.Entities.UserEntity.JudgePassword(System.String)">
<summary>
判断密码和加密后的密码是否相同
</summary>
<param name="password"></param>
<returns></returns>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.UserPostEntity">
<summary>
用户岗位表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserPostEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserPostEntity.UserId">
<summary>
用户id
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserPostEntity.PostId">
<summary>
岗位id
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.Entities.UserRoleEntity">
<summary>
用户角色关系表
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserRoleEntity.Id">
<summary>
主键
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserRoleEntity.RoleId">
<summary>
角色id
</summary>
</member>
<member name="P:Yi.Furion.Core.Rbac.Entities.UserRoleEntity.UserId">
<summary>
用户id
</summary>
</member>
<member name="T:Yi.Furion.Core.Rbac.EnumClasses.SexEnum">
<summary>
性别
</summary>
</member>
<member name="F:Yi.Furion.Core.Rbac.EnumClasses.SexEnum.Male">
<summary>
男性
</summary>
</member>
<member name="F:Yi.Furion.Core.Rbac.EnumClasses.SexEnum.Woman">
<summary>
女性
</summary>
</member>
<member name="F:Yi.Furion.Core.Rbac.EnumClasses.SexEnum.Unknown">
<summary>
未知
</summary>
</member>
</members>
</doc>

Some files were not shown because too many files have changed in this diff Show More