feat: 完善搭建生成器

This commit is contained in:
橙子
2023-09-21 00:04:55 +08:00
parent 1d499b7052
commit 18eb3a7fbf
8 changed files with 139 additions and 15 deletions

View File

@@ -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
{
/// <summary>
/// 模板领域服务
/// </summary>
public class TemplateManager : ITransient
{
public ITemplateHandler TemplateVar { get; set; }
public string Replate(string templateStr, string templateVar, string tableName)
{
return templateStr.Replace(templateVar, tableName);
}
}
}

View File

@@ -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", "");
}
}
}

View File

@@ -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);
}
}

View File

@@ -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));
}
}
}

View File

@@ -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", "");
}
}
}

View File

@@ -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<FieldEntity> Fields { get; set; }
}
}

View File

@@ -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<TemplateEntity> _repository;
public WebFirstService(IRepository<TemplateEntity> repository) { _repository = repository; }
/// <summary>
/// 根据模板id生成对应的结果
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<WebFirstGetOutputDto> GetAsync(Guid id)
private IRepository<TemplateVarEntity> _varRepository;
public WebFirstService(IRepository<TemplateEntity> repository, IRepository<TemplateVarEntity> varRepository)
{
var entity = await _repository.GetByIdAsync(id);
return entity.Adapt<WebFirstGetOutputDto>();
_repository = repository;
_varRepository = varRepository;
}
/// <summary>
/// 一键构建
/// </summary>
/// <returns></returns>
public async Task PostBuildAsync()
{
//获取全部模板
var templates = await _repository.GetListAsync();
var varTemps = await _varRepository.GetListAsync();
}
private async Task BuildSingleAsync(TemplateEntity template, List<TemplateVarEntity> templateVars)
{
foreach (var tempVar in templateVars)
template.TemplateStr.Replace(tempVar.Value, "model");
}
}
}

View File

@@ -386,6 +386,11 @@
<param name="code"></param>
<returns></returns>
</member>
<member name="T:Yi.Framework.Module.WebFirstManager.Domain.TemplateManager">
<summary>
模板领域服务
</summary>
</member>
<member name="P:Yi.Framework.Module.WebFirstManager.Dtos.Field.FieldCreateInput.Name">
<summary>
字段名称
@@ -556,11 +561,10 @@
字段管理
</summary>
</member>
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.GetAsync(System.Guid)">
<member name="M:Yi.Framework.Module.WebFirstManager.Impl.WebFirstService.PostBuildAsync">
<summary>
根据模板id生成对应的结果
一键构建
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.Module.WeChat.IWeChatManager.Code2SessionAsync(Yi.Framework.Module.WeChat.Model.Code2SessionInput)">