新增数据字段拦截器,json序列化解析器

This commit is contained in:
2023-09-26 17:07:40 +08:00
parent 4199736bc7
commit 764a77456e
16 changed files with 314 additions and 4 deletions
@@ -9,6 +9,7 @@ using ZR.Model;
using ZR.Service.System.IService;
using ZR.ServiceCore.Model.Dto;
using ZR.ServiceCore.Model.Generate;
using ZR.ServiceCore.Services.IService;
namespace ZR.Admin.WebApi.Controllers
{
@@ -1,4 +1,6 @@
using ZR.Admin.WebApi.Filters;
using ZR.ServiceCore.Model;
using ZR.ServiceCore.Services.IService;
namespace ZR.Admin.WebApi.Controllers.System;
@@ -6,5 +8,80 @@ namespace ZR.Admin.WebApi.Controllers.System;
[Route("system/field")]
public class SysFieldController : BaseController
{
private readonly ISysFieldService _sysFieldService;
public SysFieldController(ISysFieldService sysFieldService)
{
_sysFieldService = sysFieldService;
}
[HttpGet("getModelList")]
public async Task<IActionResult> GetModelList()
{
var serviceCoreModels = AppDomain.CurrentDomain
.GetAssemblies()
.First(it => it.FullName.Contains("ZR.ServiceCore"))
.ExportedTypes
.Where(p => p.FullName.StartsWith("ZR.ServiceCore.Model"))
.Select(it => new
{
it.FullName,
// Properties = it.GetProperties()
})
.ToList();
return SUCCESS(serviceCoreModels);
}
[HttpGet("getFields")]
public async Task<IActionResult> GetFields([FromQuery] string fullName)
{
var list = await _sysFieldService.Queryable()
.Where(it => it.FullName == fullName)
.ToListAsync();
return SUCCESS(list);
}
[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();
}
return SUCCESS(serviceCoreModels);
}
}
@@ -8,6 +8,7 @@ using ZR.Service.System;
using ZR.Service.System.IService;
using ZR.ServiceCore.Model;
using ZR.ServiceCore.Model.Dto;
using ZR.ServiceCore.Services.IService;
namespace ZR.Admin.WebApi.Controllers.System
{
@@ -4,6 +4,7 @@ using ZR.Model.System;
using ZR.Service.System.IService;
using ZR.ServiceCore.Model;
using ZR.ServiceCore.Model.Dto;
using ZR.ServiceCore.Services.IService;
namespace ZR.Admin.WebApi.Controllers.System
{
@@ -5,6 +5,7 @@ using ZR.Model.System;
using ZR.Service.System.IService;
using ZR.ServiceCore.Model;
using ZR.ServiceCore.Model.Dto;
using ZR.ServiceCore.Services.IService;
namespace ZR.Admin.WebApi.Controllers.System
{