diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs
index 1bfad73e..1a10baf5 100644
--- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs
@@ -1,5 +1,4 @@
-using Brick.IFServer.Controllers;
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.ERP.Supplier;
using Yi.Framework.Interface.ERP;
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/StudentController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/StudentController.cs
index 6417b387..b436afe9 100644
--- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/StudentController.cs
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/StudentController.cs
@@ -1,10 +1,9 @@
-
using Microsoft.AspNetCore.Mvc;
using Yi.Framework.Common.Models;
using Yi.Framework.DtoModel.RABC.Student;
using Yi.Framework.Interface.RABC;
-namespace Brick.IFServer.Controllers
+namespace Yi.Framework.ApiMicroservice.Controllers.ERP
{
[ApiController]
[Route("[controller]")]
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ModelTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ModelTemplateProvider.cs
new file mode 100644
index 00000000..a6f3ef05
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ModelTemplateProvider.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Abstract
+{
+ public abstract class ModelTemplateProvider : ProgramTemplateProvider
+ {
+
+ public ModelTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ AddIgnoreEntityField("Id", "TenantId");
+ }
+
+ private string entityPath;
+
+ ///
+ /// 实体路径,该类生成需要实体与模板两个同时构建成
+ ///
+ public string EntityPath
+ {
+ get => this.entityPath;
+ set
+ {
+ value = value!.Replace(TemplateConst.EntityName, EntityName);
+ value = value.Replace(TemplateConst.ModelName, ModelName);
+ this.entityPath = value;
+ }
+ }
+
+
+ ///
+ /// 生成模板忽略实体字段
+ ///
+ private List IgnoreEntityFields { get; set; } = new();
+
+ public override void Build()
+ {
+ if (BuildPath is null)
+ {
+ throw new ArgumentNullException(nameof(BuildPath));
+ }
+ //模板信息
+ var templateData = GetTemplateData();
+
+ //实体信息
+ var enetityDatas = GetEntityData().ToList();
+
+ //获取全部属性字段
+ for (var i = enetityDatas.Count() - 1; i >= 0; i--)
+ {
+ //不是字段属性直接删除跳过
+ if (!enetityDatas[i].Contains("{ get; set; }"))
+ {
+ enetityDatas.RemoveAt(i);
+ continue;
+ }
+ //是字段属性,同时还包含忽略字段
+ foreach (var IgnoreEntityField in IgnoreEntityFields)
+ {
+ if (enetityDatas[i].Contains(IgnoreEntityField))
+ {
+ enetityDatas.RemoveAt(i);
+ continue;
+ }
+ }
+ }
+
+ //拼接实体字段
+ var entityFieldsbuild = string.Join("\r\n", enetityDatas);
+
+
+ //模板替换属性字段
+ templateData = templateData.Replace(TemplateConst.EntityField, entityFieldsbuild);
+
+ templateData = base.ReplaceTemplateDic(templateData);
+
+ if (!Directory.Exists(Path.GetDirectoryName(BuildPath)))
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(BuildPath)!);
+ }
+ File.WriteAllText(BuildPath, templateData);
+ }
+
+ ///
+ /// 获取实体信息
+ ///
+ ///
+ ///
+ public virtual string[] GetEntityData()
+ {
+ if (TemplatePath is null)
+ {
+ throw new ArgumentNullException(nameof(entityPath));
+ }
+ if (!File.Exists(entityPath))
+ {
+ throw new FileNotFoundException($"请检查路径:{entityPath}\r\n未包含实体:{EntityName}");
+ }
+
+ return File.ReadAllLines(entityPath);
+ }
+
+ ///
+ /// 添加忽略实体字段
+ ///
+ ///
+ public void AddIgnoreEntityField(params string[] field)
+ {
+ IgnoreEntityFields.AddRange(field);
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs
index e86a14bc..8cad5e9a 100644
--- a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs
@@ -16,6 +16,8 @@ namespace Yi.Framework.Template.Abstract
EntityName = entityName;
base.AddTemplateDic(TemplateConst.EntityName, EntityName);
base.AddTemplateDic(TemplateConst.ModelName, ModelName);
+ base.AddTemplateDic(TemplateConst.LowerEntityName, EntityName.Substring(0, 1).ToLower() + EntityName.Substring(1));
+ base.AddTemplateDic(TemplateConst.LowerModelName, ModelName.ToLower());
}
///
/// 实体名称
@@ -34,12 +36,22 @@ namespace Yi.Framework.Template.Abstract
get => base.BuildPath;
set
{
- value = value!.Replace(TemplateConst.EntityName, EntityName);
- value = value.Replace(TemplateConst.ModelName, ModelName);
+ value = ReplaceTemplateDic(value!);
+
base.BuildPath = value;
}
}
+ public string ReplaceTemplateDic(string str)
+ {
+ foreach (var ky in TemplateDic)
+ {
+ str = str.Replace(ky.Key, ky.Value);
+ }
+ return str;
+ }
+
+
public override void Build()
{
if (BuildPath is null)
@@ -47,12 +59,9 @@ namespace Yi.Framework.Template.Abstract
throw new ArgumentNullException(nameof(BuildPath));
}
var templateData = GetTemplateData();
- foreach (var ky in TemplateDic)
- {
- templateData = templateData.Replace(ky.Key, ky.Value);
- }
+ templateData = ReplaceTemplateDic(templateData);
if (!Directory.Exists(Path.GetDirectoryName(BuildPath)))
- {
+ {
Directory.CreateDirectory(Path.GetDirectoryName(BuildPath)!);
}
File.WriteAllText(BuildPath, templateData);
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs b/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs
index 02a6a6ca..5dc0ea9e 100644
--- a/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs
@@ -9,13 +9,28 @@ namespace Yi.Framework.Template.Const
public class TemplateConst
{
///
- /// 模块名称
+ /// 模块名称大写
///
public const string ModelName = "#ModelName#";
///
- /// 实体名称
+ /// 模块名称小写
+ ///
+ public const string LowerModelName = "#LowerModelName#";
+
+ ///
+ /// 实体名称大驼峰
///
public const string EntityName = "#EntityName#";
+
+ ///
+ /// 实体名称小驼峰
+ ///
+ public const string LowerEntityName = "#LowerEntityName#";
+
+ ///
+ /// 实体字段
+ ///
+ public const string EntityField = "#EntityField#";
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Program.cs b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs
index cfe78381..0961099d 100644
--- a/Yi.Framework.Net6/Yi.Framework.Template/Program.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs
@@ -1,20 +1,31 @@
using Yi.Framework.Template;
-using Yi.Framework.Template.Provider;
+using Yi.Framework.Template.Provider.Server;
+using Yi.Framework.Template.Provider.Site;
TemplateFactory templateFactory = new();
//选择需要生成的模板提供者
string modelName = "ERP";
-string entityName = "Test";
+List entityNames =new (){ "Supplier", "Purchase", "PurchaseDetails" };
-templateFactory.CreateTemplateProviders((option) =>
+foreach (var entityName in entityNames)
{
- option.Add(new ServceTemplateProvider(modelName, entityName));
- option.Add(new IServceTemplateProvider(modelName, entityName));
-});
+ templateFactory.CreateTemplateProviders((option) =>
+ {
+ option.Add(new ServceTemplateProvider(modelName, entityName));
+ option.Add(new IServceTemplateProvider(modelName, entityName));
+ option.Add(new CreateUpdateInputTemplateProvider(modelName, entityName));
+ option.Add(new GetListOutputTemplateProvider(modelName, entityName));
+ option.Add(new ConstTemplateProvider(modelName, entityName));
+ option.Add(new ProfileTemplateProvider(modelName, entityName));
+ option.Add(new ControllerTemplateProvider(modelName, entityName));
+ option.Add(new ApiTemplateProvider(modelName, entityName));
+ });
+ //开始构建模板
+ templateFactory.BuildTemplate();
+ Console.WriteLine($"Yi.Framework.Template:{entityName}构建完成!");
+}
-//开始构建模板
-templateFactory.BuildTemplate();
-Console.WriteLine("Yi.Framework.Template模板生成完成!");
+Console.WriteLine("Yi.Framework.Template:模板全部生成完成!");
Console.ReadKey();
\ No newline at end of file
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs
new file mode 100644
index 00000000..8cbed5bd
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Abstract;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Provider.Server
+{
+ internal class ConstTemplateProvider : ProgramTemplateProvider
+ {
+ public ConstTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\ConstConfig\{TemplateConst.EntityName}Const.cs";
+ TemplatePath = $@"..\..\..\Template\Server\ConstTemplate.txt";
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs
new file mode 100644
index 00000000..1ed12e25
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Abstract;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Provider.Server
+{
+ public class ControllerTemplateProvider : ProgramTemplateProvider
+ {
+ public ControllerTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.ApiMicroservice\Controllers\{TemplateConst.ModelName}\{TemplateConst.EntityName}Controller.cs";
+ TemplatePath = $@"..\..\..\Template\Server\ControllerTemplate.txt";
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs
new file mode 100644
index 00000000..b808d7ef
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Abstract;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Provider.Server
+{
+ public class CreateUpdateInputTemplateProvider : ModelTemplateProvider
+ {
+ public CreateUpdateInputTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}CreateUpdateInput.cs";
+ TemplatePath = $@"..\..\..\Template\Server\CreateUpdateInputTemplate.txt";
+ EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs";
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs
new file mode 100644
index 00000000..fa6df140
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Abstract;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Provider.Server
+{
+ public class GetListOutputTemplateProvider : ModelTemplateProvider
+ {
+ public GetListOutputTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}GetListOutput.cs";
+ TemplatePath = $@"..\..\..\Template\Server\GetListOutputTemplate.txt";
+ EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs";
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/IServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs
similarity index 54%
rename from Yi.Framework.Net6/Yi.Framework.Template/Provider/IServceTemplateProvider.cs
rename to Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs
index 414b9d8d..fa53c8c6 100644
--- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/IServceTemplateProvider.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
using Yi.Framework.Template.Abstract;
using Yi.Framework.Template.Const;
-namespace Yi.Framework.Template.Provider
+namespace Yi.Framework.Template.Provider.Server
{
public class IServceTemplateProvider : ProgramTemplateProvider
{
- public IServceTemplateProvider(string modelName, string entityName) : base( modelName,entityName)
+ public IServceTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
{
- BuildPath = $@"..\..\..\Code\Yi.Framework.Interface\{TemplateConst.ModelName}\I{TemplateConst.EntityName}Service.cs";
- TemplatePath = $@"..\..\..\Template\IServiceTemplate.txt";
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.Interface\{TemplateConst.ModelName}\I{TemplateConst.EntityName}Service.cs";
+ TemplatePath = $@"..\..\..\Template\Server\IServiceTemplate.txt";
}
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs
new file mode 100644
index 00000000..5211c537
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Abstract;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Provider.Server
+{
+ public class ProfileTemplateProvider : ProgramTemplateProvider
+ {
+ public ProfileTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\MapperConfig\{TemplateConst.EntityName}Profile.cs";
+ TemplatePath = $@"..\..\..\Template\Server\ProfileTemplate.txt";
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/ServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs
similarity index 54%
rename from Yi.Framework.Net6/Yi.Framework.Template/Provider/ServceTemplateProvider.cs
rename to Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs
index 9db4ae64..79a0695b 100644
--- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/ServceTemplateProvider.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
using Yi.Framework.Template.Abstract;
using Yi.Framework.Template.Const;
-namespace Yi.Framework.Template.Provider
+namespace Yi.Framework.Template.Provider.Server
{
public class ServceTemplateProvider : ProgramTemplateProvider
{
- public ServceTemplateProvider(string modelName, string entityName) : base( modelName,entityName)
+ public ServceTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
{
- BuildPath = $@"..\..\..\Code\Yi.Framework.Service\{TemplateConst.ModelName}\{TemplateConst.EntityName}Service.cs";
- TemplatePath = $@"..\..\..\Template\ServiceTemplate.txt";
+ BuildPath = $@"..\..\..\Code_Server\Yi.Framework.Service\{TemplateConst.ModelName}\{TemplateConst.EntityName}Service.cs";
+ TemplatePath = $@"..\..\..\Template\Server\ServiceTemplate.txt";
}
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs
new file mode 100644
index 00000000..8f3afb2e
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Template.Abstract;
+using Yi.Framework.Template.Const;
+
+namespace Yi.Framework.Template.Provider.Site
+{
+ public class ApiTemplateProvider : ProgramTemplateProvider
+ {
+ public ApiTemplateProvider(string modelName, string entityName) : base(modelName, entityName)
+ {
+ BuildPath = $@"..\..\..\Code_Site\src\api\{TemplateConst.ModelName}\{TemplateConst.LowerEntityName}Api.js";
+ TemplatePath = $@"..\..\..\Template\Site\ApiTemplate.txt";
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ConstTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ConstTemplate.txt
new file mode 100644
index 00000000..4c589964
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ConstTemplate.txt
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Yi.Framework.DtoModel.#ModelName#.#EntityName#.ConstConfig
+{
+ public class #EntityName#Const
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ControllerTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ControllerTemplate.txt
new file mode 100644
index 00000000..2951131e
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ControllerTemplate.txt
@@ -0,0 +1,81 @@
+using Microsoft.AspNetCore.Mvc;
+using Yi.Framework.Common.Models;
+using Yi.Framework.DtoModel.#ModelName#.#EntityName#;
+using Yi.Framework.Interface.#ModelName#;
+
+namespace Yi.Framework.ApiMicroservice.Controllers.#ModelName#
+{
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class #EntityName#Controller : ControllerBase
+ {
+ private readonly ILogger<#EntityName#Controller> _logger;
+ private readonly I#EntityName#Service _#LowerEntityName#Service;
+ public #EntityName#Controller(ILogger<#EntityName#Controller> logger, I#EntityName#Service #LowerEntityName#Service)
+ {
+ _logger = logger;
+ _#LowerEntityName#Service = #LowerEntityName#Service;
+ }
+
+ ///
+ /// 分页查
+ ///
+ ///
+ [HttpGet]
+ public async Task PageList([FromQuery] #EntityName#CreateUpdateInput input, [FromQuery] PageParModel page)
+ {
+ var result = await _#LowerEntityName#Service.PageListAsync(input, page);
+ return Result.Success().SetData(result);
+ }
+
+ ///
+ /// 单查
+ ///
+ ///
+ [HttpGet]
+ [Route("{id}")]
+ public async Task GetById(long id)
+ {
+ var result = await _#LowerEntityName#Service.GetByIdAsync(id);
+ return Result.Success().SetData(result);
+ }
+
+ ///
+ /// 增
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task Create(#EntityName#CreateUpdateInput input)
+ {
+ var result = await _#LowerEntityName#Service.CreateAsync(input);
+ return Result.Success().SetData(result);
+ }
+
+ ///
+ /// 更
+ ///
+ ///
+ ///
+ ///
+ [HttpPut]
+ [Route("{id}")]
+ public async Task Update(long id, #EntityName#CreateUpdateInput input)
+ {
+ var result = await _#LowerEntityName#Service.UpdateAsync(id, input);
+ return Result.Success().SetData(result);
+ }
+
+ ///
+ /// 删
+ ///
+ ///
+ ///
+ [HttpDelete]
+ public async Task Del(List ids)
+ {
+ await _#LowerEntityName#Service.DeleteAsync(ids);
+ return Result.Success();
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/CreateUpdateInputTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/CreateUpdateInputTemplate.txt
new file mode 100644
index 00000000..de35e69a
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/CreateUpdateInputTemplate.txt
@@ -0,0 +1,15 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.#ModelName#.#EntityName#
+{
+ public class #EntityName#CreateUpdateInput : EntityDto
+ {
+#EntityField#
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListOutputTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListOutputTemplate.txt
new file mode 100644
index 00000000..52e3c644
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListOutputTemplate.txt
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.#ModelName#.#EntityName#
+{
+ public class #EntityName#GetListOutput: EntityDto
+ {
+#EntityField#
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/IServiceTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/IServiceTemplate.txt
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.Template/Template/IServiceTemplate.txt
rename to Yi.Framework.Net6/Yi.Framework.Template/Template/Server/IServiceTemplate.txt
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ProfileTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ProfileTemplate.txt
new file mode 100644
index 00000000..f545b835
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ProfileTemplate.txt
@@ -0,0 +1,20 @@
+using AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.#ModelName#.Entitys;
+
+namespace Yi.Framework.DtoModel.#ModelName#.#EntityName#.MapperConfig
+{
+ public class Suppli#ModelName#rofile:Profile
+ {
+ public Suppli#ModelName#rofile()
+ {
+ CreateMap<#EntityName#CreateUpdateInput, #EntityName#Entity>();
+ CreateMap<#EntityName#Entity, #EntityName#GetListOutput>();
+
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/ServiceTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ServiceTemplate.txt
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.Template/Template/ServiceTemplate.txt
rename to Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ServiceTemplate.txt
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Site/ApiTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Site/ApiTemplate.txt
new file mode 100644
index 00000000..dc12e694
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/Site/ApiTemplate.txt
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/#LowerEntityName#/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/#LowerEntityName#/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/#LowerEntityName#/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/#LowerEntityName#/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/#LowerEntityName#/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj b/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj
index 82887671..49318819 100644
--- a/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj
+++ b/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj
@@ -7,22 +7,42 @@
Exe
+
-
-
+
Always
-
+
Always
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+ Always
+
+
+
+ Always
+