暂存字段权限更改

This commit is contained in:
2023-09-28 16:26:03 +08:00
parent 38eda262d6
commit c592925096
9 changed files with 186 additions and 124 deletions
@@ -2,8 +2,10 @@
using SqlSugar;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model;
using ZR.Model.System;
using ZR.Service.System.IService;
using ZR.ServiceCore.Filters;
using ZR.ServiceCore.Model;
using ZR.ServiceCore.Model.Dto;
@@ -34,7 +36,8 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(RolePermi = "admin")]
// [ActionPermissionFilter(RolePermi = "admin")]
[DataFieldFilter(typeof(PagedInfo<ArticleDto>))]
public IActionResult Query([FromQuery] ArticleQueryDto parm)
{
var response = _ArticleService.GetList(parm);
@@ -1,5 +1,4 @@
using ZR.Admin.WebApi.Filters;
using ZR.ServiceCore.Model;
using ZR.ServiceCore.Model.Dto;
using ZR.ServiceCore.Services.IService;
@@ -19,7 +18,7 @@ public class SysFieldController : BaseController
}
[HttpGet("getModelList")]
public async Task<IActionResult> GetModelList()
public IActionResult GetModelList()
{
var serviceCoreModels = AppDomain.CurrentDomain
.GetAssemblies()
@@ -37,98 +36,15 @@ public class SysFieldController : BaseController
[HttpGet("getFields")]
public async Task<IActionResult> GetFields([FromQuery] string fullName, long roleId)
{
var fields = await _sysFieldService.Queryable()
.Where(it => it.FullName == fullName)
.ToListAsync();
var roleFields = await _sysRoleFieldService
.Queryable()
.Where(it => it.RoleId == roleId)
.Select(it => it.FieldId)
.ToListAsync();
var list = new List<SysFieldDto>();
list = fields.Select(it => new SysFieldDto
{
FieldName = it.FieldName,
FieldType = it.FieldType,
FullName = it.FullName,
Id = it.Id,
IsClass = it.IsClass,
IsPermission = roleFields.Contains(it.Id)
}).ToList();
// fields.ForEach(it =>
// {
// if (it.Id != 0 && roleFields.Contains(it.Id))
// {
// list.Add(new SysFieldDto
// {
// FieldName = it.FieldName,
// FieldType = it.FieldType,
// FullName = it.FullName,
// Id = it.Id,
// IsClass = it.IsClass,
// IsPermission = true
// });
// }
// else
// {
// list.Add(new SysFieldDto
// {
// FieldName = it.FieldName,
// FieldType = it.FieldType,
// FullName = it.FullName,
// Id = it.Id,
// IsClass = it.IsClass,
// IsPermission = false
// });
// }
// });
return SUCCESS(list);
}
=> SUCCESS(await _sysFieldService.GetFields(fullName, roleId));
[HttpPost("initFields")]
public async Task<IActionResult> InitFields()
{
var serviceCoreModels = AppDomain.CurrentDomain
.GetAssemblies()
.First(it => it.FullName.Contains("ZR.ServiceCore"))
.ExportedTypes
.Where(p => p.FullName.StartsWith("ZR.ServiceCore.Model"))
.Select(it => new
{
FullName = it.FullName,
Properties = it.GetProperties().Select(pt => new
{
FieldName = pt.Name,
FieldType = pt.PropertyType.FullName,
IsClass = pt.PropertyType.IsClass,
IsArray = pt.PropertyType.IsArray,
// IsList = pt.PropertyType.IsClass ? pt.DeclaringType.FullName : string.Empty
}).ToList()
// Properties = it.GetProperties()
})
.ToList();
foreach (var serviceCoreModel in serviceCoreModels)
{
var sysFields = new List<SysField>();
foreach (var property in serviceCoreModel.Properties)
{
var sysField = new SysField
{
FieldName = property.FieldName,
FullName = serviceCoreModel.FullName,
FieldType = property.FieldType,
IsClass = property.IsClass ? "1" : "0"
};
sysFields.Add(sysField);
}
await _sysFieldService.Insertable(sysFields).ExecuteReturnSnowflakeIdListAsync();
}
=> SUCCESS(await _sysFieldService.InitFields());
[HttpPut("addOrUpdateSysRoleField/{roleId}")]
public async Task<IActionResult> AddOrUpdateSysRoleField([FromBody] List<SysFieldDto> sysFieldDtos,
[FromRoute] long roleId)
=> SUCCESS(await _sysRoleFieldService.InsertOrUpdateSysRoleField(sysFieldDtos, roleId));
return SUCCESS(serviceCoreModels);
}
public async Task<IActionResult> AddOrUpdateSysRoleField([FromBody] List<SysFieldDto> sysFieldDtos){}
}