From b932f6f6a0acd6ab2818bee20314e0db0f497279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E6=B0=B8=E8=BE=BE?= Date: Wed, 27 Sep 2023 00:04:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5dto?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BC=A0=E8=BE=93=E5=AF=B9=E8=B1=A1=EF=BC=8C?= =?UTF-8?q?=E5=AF=B9=E8=AF=A5=E8=A7=92=E8=89=B2=E6=B2=A1=E6=9C=89=E5=85=B3?= =?UTF-8?q?=E8=81=94=E7=9A=84=E5=B1=9E=E6=80=A7=E6=98=AF=E5=90=A6=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E8=B5=8B=E5=80=BC=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/System/SysFieldController.cs | 55 +++++++++++++++++-- ZR.ServiceCore/Model/Dto/SysFieldDto.cs | 17 ++++++ .../Services/SysRoleFieldService.cs | 11 ++++ 3 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 ZR.ServiceCore/Model/Dto/SysFieldDto.cs create mode 100644 ZR.ServiceCore/Services/SysRoleFieldService.cs diff --git a/ZR.Admin.WebApi/Controllers/System/SysFieldController.cs b/ZR.Admin.WebApi/Controllers/System/SysFieldController.cs index 8e24ceb..e1a0abe 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysFieldController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysFieldController.cs @@ -1,5 +1,6 @@ using ZR.Admin.WebApi.Filters; using ZR.ServiceCore.Model; +using ZR.ServiceCore.Model.Dto; using ZR.ServiceCore.Services.IService; namespace ZR.Admin.WebApi.Controllers.System; @@ -9,10 +10,12 @@ namespace ZR.Admin.WebApi.Controllers.System; public class SysFieldController : BaseController { private readonly ISysFieldService _sysFieldService; - - public SysFieldController(ISysFieldService sysFieldService) + private readonly ISysRoleFieldService _sysRoleFieldService; + + public SysFieldController(ISysFieldService sysFieldService, ISysRoleFieldService sysRoleFieldService) { _sysFieldService = sysFieldService; + _sysRoleFieldService = sysRoleFieldService; } [HttpGet("getModelList")] @@ -33,11 +36,53 @@ public class SysFieldController : BaseController } [HttpGet("getFields")] - public async Task GetFields([FromQuery] string fullName) + public async Task GetFields([FromQuery] string fullName, long roleId) { - var list = await _sysFieldService.Queryable() + 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(); + 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); } @@ -84,4 +129,6 @@ public class SysFieldController : BaseController return SUCCESS(serviceCoreModels); } + + public async Task AddOrUpdateSysRoleField([FromBody] List sysFieldDtos){} } \ No newline at end of file diff --git a/ZR.ServiceCore/Model/Dto/SysFieldDto.cs b/ZR.ServiceCore/Model/Dto/SysFieldDto.cs new file mode 100644 index 0000000..c535524 --- /dev/null +++ b/ZR.ServiceCore/Model/Dto/SysFieldDto.cs @@ -0,0 +1,17 @@ +namespace ZR.ServiceCore.Model.Dto; + +public class SysFieldDto +{ + [JsonConverter(typeof(ValueToStringConverter))] + public long Id { get; set; } + + public string FieldName { get; set; } + + public string FullName { get; set; } + + public string FieldType { get; set; } + + public string IsClass { get; set; } + + public bool IsPermission { get; set; } +} \ No newline at end of file diff --git a/ZR.ServiceCore/Services/SysRoleFieldService.cs b/ZR.ServiceCore/Services/SysRoleFieldService.cs new file mode 100644 index 0000000..6eeebd3 --- /dev/null +++ b/ZR.ServiceCore/Services/SysRoleFieldService.cs @@ -0,0 +1,11 @@ +using Infrastructure.Attribute; +using ZR.Service; +using ZR.ServiceCore.Model; +using ZR.ServiceCore.Services.IService; + +namespace ZR.ServiceCore.Services; +[AppService(ServiceType = typeof(ISysRoleFieldService), ServiceLifetime = LifeTime.Transient)] +public class SysRoleFieldService : BaseService, ISysRoleFieldService +{ + +} \ No newline at end of file