feat: 完善webfirst模板及表模块
This commit is contained in:
@@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Builder;
|
|||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using SqlSugar;
|
||||||
using Yi.Framework.Infrastructure.AspNetCore;
|
using Yi.Framework.Infrastructure.AspNetCore;
|
||||||
using Yi.Framework.Infrastructure.Sqlsugar;
|
using Yi.Framework.Infrastructure.Sqlsugar;
|
||||||
using Yi.Framework.Module.Caching;
|
using Yi.Framework.Module.Caching;
|
||||||
@@ -33,6 +34,6 @@ public class Startup : AppStartup
|
|||||||
|
|
||||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
{
|
{
|
||||||
|
var db= app.ApplicationServices.GetRequiredService<ISqlSugarClient>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
using System;
|
using Furion.DependencyInjection;
|
||||||
using System.Collections.Generic;
|
using Yi.Framework.Infrastructure.Ddd.Repositories;
|
||||||
using System.Linq;
|
using Yi.Framework.Module.WebFirstManager.Entities;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Furion.DependencyInjection;
|
|
||||||
using Yi.Framework.Module.WebFirstManager.Handler;
|
using Yi.Framework.Module.WebFirstManager.Handler;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Domain
|
namespace Yi.Framework.Module.WebFirstManager.Domain
|
||||||
@@ -13,12 +10,37 @@ namespace Yi.Framework.Module.WebFirstManager.Domain
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class TemplateManager : ITransient
|
public class TemplateManager : ITransient
|
||||||
{
|
{
|
||||||
public ITemplateHandler TemplateVar { get; set; }
|
private IEnumerable<ITemplateHandler> _templateHandlers;
|
||||||
|
private IRepository<TemplateEntity> _repository;
|
||||||
|
private IRepository<FieldEntity> _fieldRepository;
|
||||||
public string Replate(string templateStr, string templateVar, string tableName)
|
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.Text;
|
||||||
using System.Threading.Tasks;
|
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.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Handler
|
namespace Yi.Framework.Module.WebFirstManager.Handler
|
||||||
{
|
{
|
||||||
internal class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler
|
internal class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler,ISingleton
|
||||||
{
|
{
|
||||||
public string Invoker(string str)
|
public string Invoker(string str)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,11 +3,15 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Yi.Framework.Module.WebFirstManager.Entities;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Handler
|
namespace Yi.Framework.Module.WebFirstManager.Handler
|
||||||
{
|
{
|
||||||
public interface ITemplateHandler
|
public interface ITemplateHandler
|
||||||
{
|
{
|
||||||
|
void SetTable(TableEntity table);
|
||||||
|
void SetFields(List<FieldEntity> fields);
|
||||||
|
|
||||||
string Invoker(string str);
|
string Invoker(string str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using EasyTool;
|
using EasyTool;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Handler
|
namespace Yi.Framework.Module.WebFirstManager.Handler
|
||||||
{
|
{
|
||||||
internal class ModelTemplateHandler : TemplateHandlerBase, ITemplateHandler
|
internal class ModelTemplateHandler : TemplateHandlerBase, ITemplateHandler, ISingleton
|
||||||
{
|
{
|
||||||
public string Invoker(string str)
|
public string Invoker(string str)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Handler
|
namespace Yi.Framework.Module.WebFirstManager.Handler
|
||||||
{
|
{
|
||||||
internal class NameSpaceTemplateHandler : TemplateHandlerBase, ITemplateHandler
|
internal class NameSpaceTemplateHandler : TemplateHandlerBase, ITemplateHandler, ISingleton
|
||||||
{
|
{
|
||||||
public string Invoker(string str)
|
public string Invoker(string str)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,7 +10,16 @@ namespace Yi.Framework.Module.WebFirstManager.Handler
|
|||||||
public class TemplateHandlerBase
|
public class TemplateHandlerBase
|
||||||
{
|
{
|
||||||
protected TableEntity Table { get; set; }
|
protected TableEntity Table { get; set; }
|
||||||
|
|
||||||
protected List<FieldEntity> Fields { 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 Microsoft.AspNetCore.Mvc;
|
||||||
using Yi.Framework.Infrastructure.Ddd.Repositories;
|
using Yi.Framework.Infrastructure.Ddd.Repositories;
|
||||||
using Yi.Framework.Infrastructure.Ddd.Services;
|
using Yi.Framework.Infrastructure.Ddd.Services;
|
||||||
|
using Yi.Framework.Module.WebFirstManager.Domain;
|
||||||
using Yi.Framework.Module.WebFirstManager.Dtos.WebFirst;
|
using Yi.Framework.Module.WebFirstManager.Dtos.WebFirst;
|
||||||
using Yi.Framework.Module.WebFirstManager.Entities;
|
using Yi.Framework.Module.WebFirstManager.Entities;
|
||||||
|
|
||||||
@@ -18,34 +19,52 @@ namespace Yi.Framework.Module.WebFirstManager.Impl
|
|||||||
[ApiDescriptionSettings("WebFirstManager")]
|
[ApiDescriptionSettings("WebFirstManager")]
|
||||||
public class WebFirstService : ApplicationService, IWebFirstService, IDynamicApiController, ITransient
|
public class WebFirstService : ApplicationService, IWebFirstService, IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private IRepository<TemplateEntity> _repository;
|
private IRepository<TableEntity> _tableRepository;
|
||||||
private IRepository<TemplateVarEntity> _varRepository;
|
private TemplateManager _templateManager;
|
||||||
public WebFirstService(IRepository<TemplateEntity> repository, IRepository<TemplateVarEntity> varRepository)
|
public WebFirstService(IRepository<TableEntity> tableRepository, TemplateManager templateManager)
|
||||||
{
|
{
|
||||||
_repository = repository;
|
_tableRepository = tableRepository;
|
||||||
_varRepository = varRepository;
|
_templateManager = templateManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 一键构建
|
/// 一键构建生成代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task PostBuildAsync()
|
public async Task PostBuildCodeAsync()
|
||||||
{
|
{
|
||||||
//获取全部模板
|
//获取全部表
|
||||||
var templates = await _repository.GetListAsync();
|
var tables = await _tableRepository.GetListAsync();
|
||||||
var varTemps = await _varRepository.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>
|
<DocumentationFile>Yi.Framework.Module.xml</DocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Remove="WebFirstManager\Dtos\TemplateVar\**" />
|
||||||
|
<EmbeddedResource Remove="WebFirstManager\Dtos\TemplateVar\**" />
|
||||||
|
<None Remove="WebFirstManager\Dtos\TemplateVar\**" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="ImageSharp\HeiCaptcha\fonts\Candara.ttf" />
|
<None Remove="ImageSharp\HeiCaptcha\fonts\Candara.ttf" />
|
||||||
<None Remove="ImageSharp\HeiCaptcha\fonts\impact.ttf" />
|
<None Remove="ImageSharp\HeiCaptcha\fonts\impact.ttf" />
|
||||||
@@ -35,9 +41,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="DictionaryManager\" />
|
<Folder Include="DictionaryManager\" />
|
||||||
<Folder Include="WebFirstManager\Dtos\Template\" />
|
|
||||||
<Folder Include="WebFirstManager\Dtos\Table\" />
|
<Folder Include="WebFirstManager\Dtos\Table\" />
|
||||||
<Folder Include="WebFirstManager\Dtos\TemplateVar\" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -546,27 +546,30 @@
|
|||||||
生成路径
|
生成路径
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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">
|
<member name="T:Yi.Framework.Module.WebFirstManager.Impl.FieldService">
|
||||||
<summary>
|
<summary>
|
||||||
字段管理
|
字段管理
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.PostBuildAsync">
|
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.PostBuildCodeAsync">
|
||||||
<summary>
|
<summary>
|
||||||
一键构建
|
一键构建生成代码
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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)">
|
<member name="M:Yi.Framework.Module.WeChat.IWeChatManager.Code2SessionAsync(Yi.Framework.Module.WeChat.Model.Code2SessionInput)">
|
||||||
<summary>
|
<summary>
|
||||||
获取用户openid
|
获取用户openid
|
||||||
|
|||||||
Reference in New Issue
Block a user