feat: 完善webfirst模板及表模块
This commit is contained in:
@@ -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<ISqlSugarClient>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
/// </summary>
|
||||
public class TemplateManager : ITransient
|
||||
{
|
||||
public ITemplateHandler TemplateVar { get; set; }
|
||||
|
||||
|
||||
public string Replate(string templateStr, string templateVar, string tableName)
|
||||
private IEnumerable<ITemplateHandler> _templateHandlers;
|
||||
private IRepository<TemplateEntity> _repository;
|
||||
private IRepository<FieldEntity> _fieldRepository;
|
||||
public TemplateManager(IEnumerable<ITemplateHandler> templateHandlers, IRepository<FieldEntity> fieldRepository, IRepository<TemplateEntity> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -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<long>
|
||||
{
|
||||
[SugarColumn( IsPrimaryKey = true)]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 变量名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }=string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 变量值
|
||||
/// </summary>
|
||||
public string Value { get; set; } = string.Empty;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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<FieldEntity> fields);
|
||||
|
||||
string Invoker(string str);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -10,7 +10,16 @@ namespace Yi.Framework.Module.WebFirstManager.Handler
|
||||
public class TemplateHandlerBase
|
||||
{
|
||||
protected TableEntity Table { get; set; }
|
||||
|
||||
protected List<FieldEntity> Fields { get; set; }
|
||||
|
||||
public void SetTable(TableEntity table)
|
||||
{
|
||||
Table = table;
|
||||
}
|
||||
|
||||
public void SetFields(List<FieldEntity> fields)
|
||||
{
|
||||
Fields = fields;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -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<TemplateEntity> _repository;
|
||||
private IRepository<TemplateVarEntity> _varRepository;
|
||||
public WebFirstService(IRepository<TemplateEntity> repository, IRepository<TemplateVarEntity> varRepository)
|
||||
private IRepository<TableEntity> _tableRepository;
|
||||
private TemplateManager _templateManager;
|
||||
public WebFirstService(IRepository<TableEntity> tableRepository, TemplateManager templateManager)
|
||||
{
|
||||
_repository = repository;
|
||||
_varRepository = varRepository;
|
||||
_tableRepository = tableRepository;
|
||||
_templateManager = templateManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 一键构建
|
||||
/// 一键构建生成代码
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
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<TemplateVarEntity> templateVars)
|
||||
|
||||
/// <summary>
|
||||
/// 一键构建生成表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task PostBuildTableAsync()
|
||||
{
|
||||
foreach (var tempVar in templateVars)
|
||||
template.TemplateStr.Replace(tempVar.Value, "model");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 每次去构建一张表的数据
|
||||
/// </summary>
|
||||
/// <param name="table"></param>
|
||||
/// <returns></returns>
|
||||
private async Task BuildSingleTableAsync(TableEntity table)
|
||||
{
|
||||
await _templateManager.HandlerAsync(table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
<DocumentationFile>Yi.Framework.Module.xml</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="WebFirstManager\Dtos\TemplateVar\**" />
|
||||
<EmbeddedResource Remove="WebFirstManager\Dtos\TemplateVar\**" />
|
||||
<None Remove="WebFirstManager\Dtos\TemplateVar\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="ImageSharp\HeiCaptcha\fonts\Candara.ttf" />
|
||||
<None Remove="ImageSharp\HeiCaptcha\fonts\impact.ttf" />
|
||||
@@ -35,9 +41,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="DictionaryManager\" />
|
||||
<Folder Include="WebFirstManager\Dtos\Template\" />
|
||||
<Folder Include="WebFirstManager\Dtos\Table\" />
|
||||
<Folder Include="WebFirstManager\Dtos\TemplateVar\" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
@@ -546,27 +546,30 @@
|
||||
生成路径
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TemplateVarEntity.Name">
|
||||
<summary>
|
||||
变量名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TemplateVarEntity.Value">
|
||||
<summary>
|
||||
变量值
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Yi.Framework.Module.WebFirstManager.Impl.FieldService">
|
||||
<summary>
|
||||
字段管理
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.PostBuildAsync">
|
||||
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.PostBuildCodeAsync">
|
||||
<summary>
|
||||
一键构建
|
||||
一键构建生成代码
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.PostBuildTableAsync">
|
||||
<summary>
|
||||
一键构建生成表
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.BuildSingleTableAsync(Yi.Framework.Module.WebFirstManager.Entities.TableEntity)">
|
||||
<summary>
|
||||
每次去构建一张表的数据
|
||||
</summary>
|
||||
<param name="table"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.Module.WeChat.IWeChatManager.Code2SessionAsync(Yi.Framework.Module.WeChat.Model.Code2SessionInput)">
|
||||
<summary>
|
||||
获取用户openid
|
||||
|
||||
Reference in New Issue
Block a user