From 18eb3a7fbfaa8fe3a84851c699a3fd38ae59f3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Thu, 21 Sep 2023 00:04:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E6=90=AD=E5=BB=BA?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebFirstManager/Domain/TemplateManager.cs | 25 ++++++++++++ .../Handler/FieldTemplateHandler.cs | 19 ++++++++++ .../Handler/ITemplateHandler.cs | 13 +++++++ .../Handler/ModelTemplateHandler.cs | 17 +++++++++ .../Handler/NameSpaceTemplateHandler.cs | 16 ++++++++ .../Handler/TemplateHandlerBase.cs | 16 ++++++++ .../WebFirstManager/Impl/WebFirstService.cs | 38 +++++++++++++------ .../Yi.Framework.Module.xml | 10 +++-- 8 files changed, 139 insertions(+), 15 deletions(-) create mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs create mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs create mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs create mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ModelTemplateHandler.cs create mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs create mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs new file mode 100644 index 00000000..55e9908a --- /dev/null +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Furion.DependencyInjection; +using Yi.Framework.Module.WebFirstManager.Handler; + +namespace Yi.Framework.Module.WebFirstManager.Domain +{ + /// + /// 模板领域服务 + /// + public class TemplateManager : ITransient + { + public ITemplateHandler TemplateVar { get; set; } + + + public string Replate(string templateStr, string templateVar, string tableName) + { + return templateStr.Replace(templateVar, tableName); + } + } + +} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs new file mode 100644 index 00000000..a84c2ee8 --- /dev/null +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Module.WebFirstManager.Handler +{ + internal class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler + { + public string Invoker(string str) + { + //从数据库中获取到全部字段,然后根据字段生成字符串,进行替换 + return str.Replace("@field", ""); + } + + + } +} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs new file mode 100644 index 00000000..9d3128ca --- /dev/null +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Module.WebFirstManager.Handler +{ + public interface ITemplateHandler + { + string Invoker(string str); + } +} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ModelTemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ModelTemplateHandler.cs new file mode 100644 index 00000000..3aac1cc1 --- /dev/null +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ModelTemplateHandler.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using EasyTool; + +namespace Yi.Framework.Module.WebFirstManager.Handler +{ + internal class ModelTemplateHandler : TemplateHandlerBase, ITemplateHandler + { + public string Invoker(string str) + { + return str.Replace("@model", StrUtil.ToFirstLetterLowerCase(Table.Name)).Replace("@Model", StrUtil.ToFirstLetterUpperCase(Table.Name)); + } + } +} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs new file mode 100644 index 00000000..5f257c8c --- /dev/null +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Module.WebFirstManager.Handler +{ + internal class NameSpaceTemplateHandler : TemplateHandlerBase, ITemplateHandler + { + public string Invoker(string str) + { + return str.Replace("@Namespace", ""); + } + } +} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs new file mode 100644 index 00000000..08ce8c5c --- /dev/null +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Module.WebFirstManager.Entities; + +namespace Yi.Framework.Module.WebFirstManager.Handler +{ + public class TemplateHandlerBase + { + protected TableEntity Table { get; set; } + + protected List Fields { get; set; } + } +} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/WebFirstService.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/WebFirstService.cs index df40ef88..a22003a1 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/WebFirstService.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/WebFirstService.cs @@ -16,22 +16,36 @@ using Yi.Framework.Module.WebFirstManager.Entities; namespace Yi.Framework.Module.WebFirstManager.Impl { [ApiDescriptionSettings("WebFirstManager")] - public class WebFirstService : ApplicationService, IWebFirstService,IDynamicApiController,ITransient + public class WebFirstService : ApplicationService, IWebFirstService, IDynamicApiController, ITransient { private IRepository _repository; - public WebFirstService(IRepository repository) { _repository = repository; } - - /// - /// 根据模板id生成对应的结果 - /// - /// - /// - public async Task GetAsync(Guid id) + private IRepository _varRepository; + public WebFirstService(IRepository repository, IRepository varRepository) { - var entity = await _repository.GetByIdAsync(id); - - return entity.Adapt(); + _repository = repository; + _varRepository = varRepository; } + /// + /// 一键构建 + /// + /// + public async Task PostBuildAsync() + { + //获取全部模板 + var templates = await _repository.GetListAsync(); + var varTemps = await _varRepository.GetListAsync(); + + } + + private async Task BuildSingleAsync(TemplateEntity template, List templateVars) + { + foreach (var tempVar in templateVars) + template.TemplateStr.Replace(tempVar.Value, "model"); + + + + + } } } diff --git a/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.xml b/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.xml index b3733fd2..ff34609e 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.xml +++ b/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.xml @@ -386,6 +386,11 @@ + + + 模板领域服务 + + 字段名称 @@ -556,11 +561,10 @@ 字段管理 - + - 根据模板id生成对应的结果 + 一键构建 -