From 710bb97cd38f574bf2cff71e045fb33b4edc3391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= Date: Thu, 21 Sep 2023 19:55:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84webfirst=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=8F=8A=E8=A1=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Furion.Net6/Yi.Framework.Module/Startup.cs | 3 +- .../WebFirstManager/Domain/TemplateManager.cs | 44 +++++++++++++----- .../Template/TemplateDto.cs} | 4 +- .../Entities/TemplateVarEntity.cs | 27 ----------- .../Handler/FieldTemplateHandler.cs | 3 +- .../Handler/ITemplateHandler.cs | 4 ++ .../Handler/ModelTemplateHandler.cs | 3 +- .../Handler/NameSpaceTemplateHandler.cs | 3 +- .../Handler/TemplateHandlerBase.cs | 11 ++++- .../Impl/TemplateVarService.cs | 16 ------- .../WebFirstManager/Impl/WebFirstService.cs | 45 +++++++++++++------ .../Yi.Framework.Module.csproj | 8 +++- .../Yi.Framework.Module.xml | 27 ++++++----- 13 files changed, 110 insertions(+), 88 deletions(-) rename Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/{ITemplateVarService.cs => Dtos/Template/TemplateDto.cs} (60%) delete mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Entities/TemplateVarEntity.cs delete mode 100644 Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/TemplateVarService.cs diff --git a/Yi.Furion.Net6/Yi.Framework.Module/Startup.cs b/Yi.Furion.Net6/Yi.Framework.Module/Startup.cs index f4eb3b01..868c9fa1 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/Startup.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/Startup.cs @@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using SqlSugar; using Yi.Framework.Infrastructure.AspNetCore; using Yi.Framework.Infrastructure.Sqlsugar; using Yi.Framework.Module.Caching; @@ -33,6 +34,6 @@ public class Startup : AppStartup public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { - + var db= app.ApplicationServices.GetRequiredService(); } } diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs index 55e9908a..05ac7c14 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Domain/TemplateManager.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Furion.DependencyInjection; +using Furion.DependencyInjection; +using Yi.Framework.Infrastructure.Ddd.Repositories; +using Yi.Framework.Module.WebFirstManager.Entities; using Yi.Framework.Module.WebFirstManager.Handler; namespace Yi.Framework.Module.WebFirstManager.Domain @@ -13,12 +10,37 @@ namespace Yi.Framework.Module.WebFirstManager.Domain /// public class TemplateManager : ITransient { - public ITemplateHandler TemplateVar { get; set; } - - - public string Replate(string templateStr, string templateVar, string tableName) + private IEnumerable _templateHandlers; + private IRepository _repository; + private IRepository _fieldRepository; + public TemplateManager(IEnumerable templateHandlers, IRepository fieldRepository, IRepository repository) { - return templateStr.Replace(templateVar, tableName); + _templateHandlers = templateHandlers; + _repository = repository; + _fieldRepository = fieldRepository; + } + public async Task HandlerAsync(TableEntity tableEntity) + { + var templates = await _repository.GetListAsync(); + var fields = await _fieldRepository.GetListAsync(); + foreach (var template in templates) + { + string templateStr = template.TemplateStr; + foreach (var templateHandler in _templateHandlers) + { + templateHandler.SetTable(tableEntity); + templateHandler.SetFields(fields); + templateStr = templateHandler.Invoker(templateStr); + } + + await BuildToFileAsync(templateStr, template); + } + } + + + private async Task BuildToFileAsync(string str, TemplateEntity templateEntity) + { + await File.WriteAllTextAsync(str, templateEntity.BuildPath); } } diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/ITemplateVarService.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Dtos/Template/TemplateDto.cs similarity index 60% rename from Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/ITemplateVarService.cs rename to Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Dtos/Template/TemplateDto.cs index 3b481571..1cb03a1c 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/ITemplateVarService.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Dtos/Template/TemplateDto.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Yi.Framework.Module.WebFirstManager +namespace Yi.Framework.Module.WebFirstManager.Dtos.Template { - public interface ITemplateVarService + public class TemplateDto { } } diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Entities/TemplateVarEntity.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Entities/TemplateVarEntity.cs deleted file mode 100644 index d710d388..00000000 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Entities/TemplateVarEntity.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using SqlSugar; -using Yi.Framework.Infrastructure.Ddd.Entities; - -namespace Yi.Framework.Module.WebFirstManager.Entities -{ - public class TemplateVarEntity : IEntity - { - [SugarColumn( IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 变量名称 - /// - public string Name { get; set; }=string.Empty; - - /// - /// 变量值 - /// - public string Value { get; set; } = string.Empty; - - } -} diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs index a84c2ee8..b57b2fea 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/FieldTemplateHandler.cs @@ -3,10 +3,11 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Furion.DependencyInjection; namespace Yi.Framework.Module.WebFirstManager.Handler { - internal class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler + internal class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler,ISingleton { public string Invoker(string str) { diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs index 9d3128ca..40b17729 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ITemplateHandler.cs @@ -3,11 +3,15 @@ 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 interface ITemplateHandler { + void SetTable(TableEntity table); + void SetFields(List fields); + 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 index 3aac1cc1..a23d12fe 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ModelTemplateHandler.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/ModelTemplateHandler.cs @@ -4,10 +4,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using EasyTool; +using Furion.DependencyInjection; namespace Yi.Framework.Module.WebFirstManager.Handler { - internal class ModelTemplateHandler : TemplateHandlerBase, ITemplateHandler + internal class ModelTemplateHandler : TemplateHandlerBase, ITemplateHandler, ISingleton { public string Invoker(string str) { diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs index 5f257c8c..11775f89 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/NameSpaceTemplateHandler.cs @@ -3,10 +3,11 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Furion.DependencyInjection; namespace Yi.Framework.Module.WebFirstManager.Handler { - internal class NameSpaceTemplateHandler : TemplateHandlerBase, ITemplateHandler + internal class NameSpaceTemplateHandler : TemplateHandlerBase, ITemplateHandler, ISingleton { public string Invoker(string str) { diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs index 08ce8c5c..8f7fabee 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Handler/TemplateHandlerBase.cs @@ -10,7 +10,16 @@ namespace Yi.Framework.Module.WebFirstManager.Handler public class TemplateHandlerBase { protected TableEntity Table { get; set; } - protected List Fields { get; set; } + + public void SetTable(TableEntity table) + { + Table = table; + } + + public void SetFields(List fields) + { + Fields = fields; + } } } diff --git a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/TemplateVarService.cs b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/TemplateVarService.cs deleted file mode 100644 index 107d741b..00000000 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/TemplateVarService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Furion.DependencyInjection; -using Furion.DynamicApiController; -using Microsoft.AspNetCore.Mvc; - -namespace Yi.Framework.Module.WebFirstManager.Impl -{ - [ApiDescriptionSettings("WebFirstManager")] - public class TemplateVarService: ITemplateVarService, IDynamicApiController, ITransient - { - } -} 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 a22003a1..d0e57a30 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/WebFirstService.cs +++ b/Yi.Furion.Net6/Yi.Framework.Module/WebFirstManager/Impl/WebFirstService.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.DataProtection.KeyManagement; using Microsoft.AspNetCore.Mvc; using Yi.Framework.Infrastructure.Ddd.Repositories; using Yi.Framework.Infrastructure.Ddd.Services; +using Yi.Framework.Module.WebFirstManager.Domain; using Yi.Framework.Module.WebFirstManager.Dtos.WebFirst; using Yi.Framework.Module.WebFirstManager.Entities; @@ -18,34 +19,52 @@ namespace Yi.Framework.Module.WebFirstManager.Impl [ApiDescriptionSettings("WebFirstManager")] public class WebFirstService : ApplicationService, IWebFirstService, IDynamicApiController, ITransient { - private IRepository _repository; - private IRepository _varRepository; - public WebFirstService(IRepository repository, IRepository varRepository) + private IRepository _tableRepository; + private TemplateManager _templateManager; + public WebFirstService(IRepository tableRepository, TemplateManager templateManager) { - _repository = repository; - _varRepository = varRepository; + _tableRepository = tableRepository; + _templateManager = templateManager; } /// - /// 一键构建 + /// 一键构建生成代码 /// /// - public async Task PostBuildAsync() + public async Task PostBuildCodeAsync() { - //获取全部模板 - var templates = await _repository.GetListAsync(); - var varTemps = await _varRepository.GetListAsync(); + //获取全部表 + var tables = await _tableRepository.GetListAsync(); + foreach (var table in tables) + { + await BuildSingleTableAsync(table); + } } - private async Task BuildSingleAsync(TemplateEntity template, List templateVars) + + /// + /// 一键构建生成表 + /// + /// + public async Task PostBuildTableAsync() { - foreach (var tempVar in templateVars) - template.TemplateStr.Replace(tempVar.Value, "model"); + } + + + + /// + /// 每次去构建一张表的数据 + /// + /// + /// + private async Task BuildSingleTableAsync(TableEntity table) + { + await _templateManager.HandlerAsync(table); } } } diff --git a/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.csproj b/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.csproj index 8320a5f1..f06491b9 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.csproj +++ b/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.csproj @@ -7,6 +7,12 @@ Yi.Framework.Module.xml + + + + + + @@ -35,9 +41,7 @@ - - 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 ff34609e..5ad6db15 100644 --- a/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.xml +++ b/Yi.Furion.Net6/Yi.Framework.Module/Yi.Framework.Module.xml @@ -546,27 +546,30 @@ 生成路径 - - - 变量名称 - - - - - 变量值 - - 字段管理 - + - 一键构建 + 一键构建生成代码 + + + 一键构建生成表 + + + + + + 每次去构建一张表的数据 + + + + 获取用户openid