diff --git a/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs
index 40dda60..1cd51c3 100644
--- a/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs
+++ b/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs
@@ -151,8 +151,8 @@ namespace ZR.Admin.WebApi.Controllers
BusinessName = CodeGeneratorTool.GetBusinessName(tableName),
FunctionAuthor = ConfigUtils.Instance.GetConfig(GenConstants.Gen_author),
TableName = tableName,
- TableComment = string.IsNullOrEmpty(tabInfo.Description) ? tableName : tabInfo.Description,
- FunctionName = string.IsNullOrEmpty(tabInfo.Description) ? tableName : tabInfo.Description,
+ TableComment = tabInfo?.Description,
+ FunctionName = tabInfo?.Description,
Create_by = userName,
};
genTable.TableId = GenTableService.ImportGenTable(genTable);
diff --git a/ZR.Admin.WebApi/Startup.cs b/ZR.Admin.WebApi/Startup.cs
index c95ff8f..4535ce5 100644
--- a/ZR.Admin.WebApi/Startup.cs
+++ b/ZR.Admin.WebApi/Startup.cs
@@ -1,7 +1,6 @@
using Hei.Captcha;
using Infrastructure;
using Infrastructure.Extensions;
-using JinianNet.JNTemplate;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection;
@@ -43,7 +42,7 @@ namespace ZR.Admin.WebApi
{
c.AddPolicy("Policy", policy =>
{
- policy.WithOrigins(corsUrls.Split(',', System.StringSplitOptions.RemoveEmptyEntries))
+ policy.WithOrigins(corsUrls.Split(',', StringSplitOptions.RemoveEmptyEntries))
.AllowAnyHeader()//允许任意头
.AllowCredentials()//允许cookie
.AllowAnyMethod();//允许任意方法
diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
index 72b53d5..9a98f68 100644
--- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
+++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
@@ -17,12 +17,6 @@
-
-
-
-
-
-
diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json
index 58dd587..8723085 100644
--- a/ZR.Admin.WebApi/appsettings.json
+++ b/ZR.Admin.WebApi/appsettings.json
@@ -37,7 +37,7 @@
"dbType": 1, //MySql = 0, SqlServer = 1
"autoPre": true, //自动去除表前缀
"author": "zr",
- "tablePrefix": "live_,sys_" //"表前缀(生成类名不会包含表前缀,多个用逗号分隔)",
+ "tablePrefix": "sys_" //"表前缀(生成类名不会包含表前缀,多个用逗号分隔)",
},
//邮箱配置信息
"MailOptions": {
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ControllersTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ControllersTemplate.txt
deleted file mode 100644
index e4639a5..0000000
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ControllersTemplate.txt
+++ /dev/null
@@ -1,154 +0,0 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using SqlSugar;
-using Infrastructure;
-using Infrastructure.Attribute;
-using Infrastructure.Enums;
-using Infrastructure.Model;
-using Mapster;
-using {ModelsNamespace}.Dto;
-using {ModelsNamespace}.Models;
-using {ServicesNamespace}.Business;
-using {ApiControllerNamespace}.Extensions;
-using {ApiControllerNamespace}.Filters;
-using ZR.Common;
-using Infrastructure.Extensions;
-using System.Linq;
-
-namespace {ApiControllerNamespace}.Controllers
-{
- ///
- /// {FunctionName}Controller
- ///
- /// @author {Author}
- /// @date {DateTime}
- ///
- [Verify]
- [Route("{ModuleName}/{ModelName}")]
- public class {ModelName}Controller: BaseController
- {
- ///
- /// {FunctionName}鎺ュ彛
- ///
- private readonly I{ModelName}Service _{ModelName}Service;
-
- public {ModelName}Controller(I{ModelName}Service {ModelName}Service)
- {
- _{ModelName}Service = {ModelName}Service;
- }
-
- ///
- /// 鏌ヨ{FunctionName}鍒楄〃
- ///
- ///
- [HttpGet("list")]
- [ActionPermissionFilter(Permission = "{Permission}:list")]
- public IActionResult Query{ModelName}([FromQuery] {ModelName}QueryDto parm)
- {
- //寮濮嬫嫾瑁呮煡璇㈡潯浠
- var predicate = Expressionable.Create<{ModelName}>();
-
- //TODO 鑷繁瀹炵幇鎼滅储鏉′欢鏌ヨ璇硶鍙傝僑qlsugar锛岄粯璁ゆ煡璇㈡墍鏈
- //predicate = predicate.And(m => m.Name.Contains(parm.Name));
-{QueryCondition}
- var response = _{ModelName}Service.GetPages(predicate.ToExpression(), parm);
-
- return SUCCESS(response);
- }
-
- ///
- /// 鏌ヨ{FunctionName}璇︽儏
- ///
- ///
- ///
- [HttpGet("{{PrimaryKey}}")]
- [ActionPermissionFilter(Permission = "{Permission}:query")]
- public IActionResult Get{ModelName}({PKCsharpType} {PrimaryKey})
- {
- var response = _{ModelName}Service.GetFirst(x => x.{PrimaryKey} == {PrimaryKey});
-
- return SUCCESS(response);
- }
-
- ///
- /// 娣诲姞{FunctionName}
- ///
- ///
- [HttpPost]
- [ActionPermissionFilter(Permission = "{Permission}:add")]
- [Log(Title = "{FunctionName}", BusinessType = BusinessType.INSERT)]
- public IActionResult Add{ModelName}([FromBody] {ModelName}Dto parm)
- {
- if (parm == null)
- {
- throw new CustomException("璇锋眰鍙傛暟閿欒");
- }
- //浠 Dto 鏄犲皠鍒 瀹炰綋
- var model = parm.Adapt<{ModelName}>().ToCreate(HttpContext);
-
- return SUCCESS(_{ModelName}Service.Insert(model, it => new
- {
-{InsertColumn}
- }));
- }
-
- ///
- /// 鏇存柊{FunctionName}
- ///
- ///
- [HttpPut]
- [ActionPermissionFilter(Permission = "{Permission}:update")]
- [Log(Title = "{FunctionName}", BusinessType = BusinessType.UPDATE)]
- public IActionResult Update{ModelName}([FromBody] {ModelName}Dto parm)
- {
- if (parm == null)
- {
- throw new CustomException("璇锋眰瀹炰綋涓嶈兘涓虹┖");
- }
- //浠 Dto 鏄犲皠鍒 瀹炰綋
- var model = parm.Adapt<{ModelName}>().ToUpdate(HttpContext);
-
- var response = _{ModelName}Service.Update(w => w.{PrimaryKey} == model.{PrimaryKey}, it => new {ModelName}()
- {
- //Update 瀛楁鏄犲皠
-{UpdateColumn}
- });
-
- return SUCCESS(response);
- }
-
- ///
- /// 鍒犻櫎{FunctionName}
- ///
- ///
- [HttpDelete("{ids}")]
- [ActionPermissionFilter(Permission = "{Permission}:delete")]
- [Log(Title = "{FunctionName}", BusinessType = BusinessType.DELETE)]
- public IActionResult Delete{ModelName}(string ids)
- {
- int[] idsArr = Tools.SpitIntArrary(ids);
- if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"鍒犻櫎澶辫触Id 涓嶈兘涓虹┖")); }
-
- var response = _{ModelName}Service.Delete(idsArr);
-
- return SUCCESS(response);
- }
-
- ///
- /// {FunctionName}瀵煎嚭
- ///
- ///
- [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "{FunctionName}")]
- [HttpGet("export")]
- [ActionPermissionFilter(Permission = "{Permission}:export")]
- public IActionResult Export()
- {
- var list = _{ModelName}Service.GetAll();
-
- string sFileName = ExportExcel(list, "{ModelName}", "{FunctionName}");
- return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
- }
- }
-}
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/InputDtoTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/InputDtoTemplate.txt
deleted file mode 100644
index e44f353..0000000
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/InputDtoTemplate.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using ${ModelsNamespace}.Dto;
-using ${ModelsNamespace}.Models;
-
-namespace ${DtosNamespace}.Dto
-{
- ///
- /// ${FunctionName}杈撳叆瀵硅薄妯″瀷
- ///
- public class ${ModelTypeName}Dto
- {
-${PropertyName}
- }
-
- ///
- /// ${FunctionName}鏌ヨ瀵硅薄妯″瀷
- ///
- public class ${ModelTypeName}QueryDto: PagerInfo
- {
-${QueryProperty}
- public DateTime? BeginTime { get; set; }
- public DateTime? EndTime { get; set; }
- }
-}
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ModelTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ModelTemplate.txt
deleted file mode 100644
index 61111a4..0000000
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ModelTemplate.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using SqlSugar;
-
-namespace {ModelsNamespace}.Models
-{
- ///
- /// {FunctionName}锛屾暟鎹疄浣撳璞
- ///
- /// @author {Author}
- /// @date {DateTime}
- ///
- [SugarTable("{TableName}")]
- public class {ModelTypeName}
- {
-{PropertyName}
- }
-}
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt
index bca3905..3c2519d 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt
@@ -1,25 +1,25 @@
锘-- 鑿滃崟
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time, remark)
-VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${replaceDto.ViewsFileName}/index', 0, 0, 'C', '0', '0', '${replaceDto.permission}:list', 'icon1', '', sysdate(), '${genTable.functionName}鑿滃崟');
+VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${replaceDto.ViewsFileName}/index', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', '', sysdate(), '${genTable.functionName}鑿滃崟');
-- 鎸夐挳鐖惰彍鍗昳d
SELECT @menuId := LAST_INSERT_ID();
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time)
-VALUES ('${genTable.functionName}鏌ヨ', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:query', '', sysdate());
+VALUES ('${genTable.functionName}鏌ヨ', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:query', '', sysdate());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time)
-VALUES ('${genTable.functionName}鏂板', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:add', '', sysdate());
+VALUES ('${genTable.functionName}鏂板', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:add', '', sysdate());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time)
-VALUES ('${genTable.functionName}鍒犻櫎', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:delete', '', sysdate());
+VALUES ('${genTable.functionName}鍒犻櫎', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:delete', '', sysdate());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time)
-VALUES ('${genTable.functionName}淇敼', @menuId, 4, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:update', '', sysdate());
+VALUES ('${genTable.functionName}淇敼', @menuId, 4, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:update', '', sysdate());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time)
-VALUES ('${genTable.functionName}瀵煎嚭', @menuId, 5, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:export', '', sysdate());
+VALUES ('${genTable.functionName}瀵煎嚭', @menuId, 5, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:export', '', sysdate());
SELECT * FROM sys_menu WHERE parentId = @menuId;
SELECT * FROM sys_menu WHERE menuId = @menuId;
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/RepositoryTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/RepositoryTemplate.txt
deleted file mode 100644
index a073a0c..0000000
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/RepositoryTemplate.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-锘縰sing System;
-using Infrastructure.Attribute;
-using {RepositoriesNamespace}.System;
-using {ModelsNamespace}.Models;
-
-namespace {RepositoriesNamespace}
-{
- ///
- /// {FunctionName}浠撳偍鎺ュ彛鐨勫疄鐜
- ///
- /// @author {Author}
- /// @date {DateTime}
- ///
- [AppService(ServiceLifetime = LifeTime.Transient)]
- public class {ModelTypeName}Repository : BaseRepository<{ModelTypeName}>
- {
- #region 涓氬姟閫昏緫浠g爜
- #endregion
- }
-}
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt
index 39a8a5f..1ea135d 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt
@@ -1,25 +1,25 @@
锘-- ${genTable.functionName}鑿滃崟
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time, remark)
-VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${replaceDto.ViewsFileName}/index', 0, 0, 'C', '0', '0', '${replaceDto.permission}:list', 'icon1', GETDATE(), '${genTable.functionName}');
+VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${replaceDto.ViewsFileName}/index', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', GETDATE(), '${genTable.functionName}');
-- 鎸夐挳鐖惰彍鍗昳d
declare @menuId int = @@identity
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time)
-VALUES ('${genTable.functionName}鏌ヨ', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:query', '', '', GETDATE());
+VALUES ('${genTable.functionName}鏌ヨ', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:query', '', '', GETDATE());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time)
-VALUES ('${genTable.functionName}鏂板', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:add', '', '', GETDATE());
+VALUES ('${genTable.functionName}鏂板', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:add', '', '', GETDATE());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time)
-VALUES ('${genTable.functionName}鍒犻櫎', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:delete', '', '', GETDATE());
+VALUES ('${genTable.functionName}鍒犻櫎', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:delete', '', '', GETDATE());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time)
-VALUES ('${genTable.functionName}淇敼', @menuId, 4, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:update', '', '', GETDATE());
+VALUES ('${genTable.functionName}淇敼', @menuId, 4, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:update', '', '', GETDATE());
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time)
-VALUES ('${genTable.functionName}瀵煎嚭', @menuId, 5, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.permission}:export', '', '', GETDATE());
+VALUES ('${genTable.functionName}瀵煎嚭', @menuId, 5, '#', NULL, 0, 0, 'F', '0', '0', '${replaceDto.PermissionPrefix}:export', '', '', GETDATE());
SELECT * FROM sys_menu WHERE parentId = @menuId;
SELECT * FROM sys_menu WHERE menuId = @menuId;
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
new file mode 100644
index 0000000..58e9925
--- /dev/null
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
@@ -0,0 +1,154 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using SqlSugar;
+using Infrastructure;
+using Infrastructure.Attribute;
+using Infrastructure.Enums;
+using Infrastructure.Model;
+using Mapster;
+using ${options.ModelsNamespace}.Dto;
+using ${options.ModelsNamespace}.Models;
+using ${options.ServicesNamespace}.Business;
+using ${options.ApiControllerNamespace}.Extensions;
+using ${options.ApiControllerNamespace}.Filters;
+using ZR.Common;
+using Infrastructure.Extensions;
+using System.Linq;
+
+namespace ${options.ApiControllerNamespace}.Controllers
+{
+ ///
+ /// ${genTable.functionName}Controller
+ ///
+ /// @author ${replaceDto.Author}
+ /// @date ${replaceDto.AddTime}
+ ///
+ [Verify]
+ [Route("${genTable.ModuleName}/${replaceDto.ModelTypeName}")]
+ public class ${replaceDto.ModelTypeName}Controller : BaseController
+ {
+ ///
+ /// ${genTable.FunctionName}鎺ュ彛
+ ///
+ private readonly I${replaceDto.ModelTypeName}Service _${replaceDto.ModelTypeName}Service;
+
+ public ${replaceDto.ModelTypeName}Controller(I${replaceDto.ModelTypeName}Service ${replaceDto.ModelTypeName}Service)
+ {
+ _${replaceDto.ModelTypeName}Service = ${replaceDto.ModelTypeName}Service;
+ }
+
+ ///
+ /// 鏌ヨ${genTable.FunctionName}鍒楄〃
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:list")]
+ public IActionResult Query${replaceDto.ModelTypeName}([FromQuery] ${replaceDto.ModelTypeName}QueryDto parm)
+ {
+ //寮濮嬫嫾瑁呮煡璇㈡潯浠
+ var predicate = Expressionable.Create<${replaceDto.ModelTypeName}>();
+
+ //TODO 鑷繁瀹炵幇鎼滅储鏉′欢鏌ヨ璇硶鍙傝僑qlsugar锛岄粯璁ゆ煡璇㈡墍鏈
+ //predicate = predicate.And(m => m.Name.Contains(parm.Name));
+${QueryCondition}
+ var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 鏌ヨ${genTable.FunctionName}璇︽儏
+ ///
+ ///
+ ///
+ [HttpGet("{${replaceDto.PKName}}")]
+ [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:query")]
+ public IActionResult Get${replaceDto.ModelTypeName}(${replaceDto.PKType} ${replaceDto.PKName})
+ {
+ var response = _${replaceDto.ModelTypeName}Service.GetFirst(x => x.${replaceDto.PKName} == ${replaceDto.PKName});
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 娣诲姞${genTable.FunctionName}
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:add")]
+ [Log(Title = "${genTable.FunctionName}", BusinessType = BusinessType.INSERT)]
+ public IActionResult Add${replaceDto.ModelTypeName}([FromBody] ${replaceDto.ModelTypeName}Dto parm)
+ {
+ if (parm == null)
+ {
+ throw new CustomException("璇锋眰鍙傛暟閿欒");
+ }
+ //浠 Dto 鏄犲皠鍒 瀹炰綋
+ var model = parm.Adapt<${replaceDto.ModelTypeName}>().ToCreate(HttpContext);
+
+ return SUCCESS(_${replaceDto.ModelTypeName}Service.Insert(model, it => new
+ {
+${InsertColumn}
+ }));
+ }
+
+ ///
+ /// 鏇存柊${genTable.FunctionName}
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:update")]
+ [Log(Title = "${genTable.FunctionName}", BusinessType = BusinessType.UPDATE)]
+ public IActionResult Update${replaceDto.ModelTypeName}([FromBody] ${replaceDto.ModelTypeName}Dto parm)
+ {
+ if (parm == null)
+ {
+ throw new CustomException("璇锋眰瀹炰綋涓嶈兘涓虹┖");
+ }
+ //浠 Dto 鏄犲皠鍒 瀹炰綋
+ var model = parm.Adapt<${replaceDto.ModelTypeName}>().ToUpdate(HttpContext);
+
+ var response = _${replaceDto.ModelTypeName}Service.Update(w => w.${replaceDto.PKName} == model.${replaceDto.PKName}, it => new ${replaceDto.ModelTypeName}()
+ {
+ //Update 瀛楁鏄犲皠
+${UpdateColumn}
+ });
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 鍒犻櫎${genTable.FunctionName}
+ ///
+ ///
+ [HttpDelete("{ids}")]
+ [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:delete")]
+ [Log(Title = "${genTable.FunctionName}", BusinessType = BusinessType.DELETE)]
+ public IActionResult Delete${replaceDto.ModelTypeName}(string ids)
+ {
+ int[] idsArr = Tools.SpitIntArrary(ids);
+ if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"鍒犻櫎澶辫触Id 涓嶈兘涓虹┖")); }
+
+ var response = _${replaceDto.ModelTypeName}Service.Delete(idsArr);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// ${genTable.FunctionName}瀵煎嚭
+ ///
+ ///
+ [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "${genTable.FunctionName}")]
+ [HttpGet("export")]
+ [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:export")]
+ public IActionResult Export()
+ {
+ var list = _${replaceDto.ModelTypeName}Service.GetAll();
+
+ string sFileName = ExportExcel(list, "${replaceDto.ModelTypeName}", "${genTable.FunctionName}");
+ return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
+ }
+ }
+}
\ No newline at end of file
diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs
index 06bf51d..9883b3d 100644
--- a/ZR.CodeGenerator/CodeGeneratorTool.cs
+++ b/ZR.CodeGenerator/CodeGeneratorTool.cs
@@ -52,7 +52,7 @@ namespace ZR.CodeGenerator
ReplaceDto replaceDto = new();
replaceDto.ModelTypeName = dto.GenTable.ClassName;//琛ㄥ悕瀵瑰簲C# 瀹炰綋绫诲悕
replaceDto.TableName = dto.GenTable.TableName;//琛ㄥ悕
- replaceDto.Permission = $"{dto.GenTable.ModuleName}:{dto.GenTable.ClassName.ToLower()}";//鏉冮檺
+ replaceDto.PermissionPrefix = $"{dto.GenTable.ModuleName}:{dto.GenTable.ClassName.ToLower()}";//鏉冮檺
replaceDto.Author = dto.GenTable.FunctionAuthor;
replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName);
@@ -94,12 +94,10 @@ namespace ZR.CodeGenerator
}
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
- //replaceDto.ModelProperty += CodeGenerateTemplate.GetModelTemplate(dbFieldInfo);
- replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
CodeGenerateTemplate.TplVueJsMethod(dbFieldInfo, replaceDto);
+ replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
- //replaceDto.InputDtoProperty += CodeGenerateTemplate.GetDtoProperty(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.TplQueryFormHtml(dbFieldInfo);
}
replaceDto.VueDataContent = sb1.ToString();
@@ -144,7 +142,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate("TplModel.txt");
var result = tpl.Render();
- generateDto.GenCodes.Add(new GenCode(1, "瀹炰綋绫", fullPath, result));
+ generateDto.GenCodes.Add(new GenCode(1, "Model", fullPath, result));
}
///
@@ -159,7 +157,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate("TplDto.txt");
var result = tpl.Render();
- generateDto.GenCodes.Add(new GenCode(2, "鏁版嵁浼犺緭瀹炰綋绫", fullPath, result));
+ generateDto.GenCodes.Add(new GenCode(2, "Dto", fullPath, result));
}
#endregion
@@ -177,7 +175,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate("TplRepository.txt");
var result = tpl.Render();
- generateDto.GenCodes.Add(new GenCode(3, "浠撳偍灞", fullPath, result));
+ generateDto.GenCodes.Add(new GenCode(3, "Repository", fullPath, result));
}
#endregion
@@ -195,7 +193,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate("IServiceTemplate.txt");
var result = tpl.Render();
- generateDto.GenCodes.Add(new GenCode(4, "鎺ュ彛灞", fullPath, result));
+ generateDto.GenCodes.Add(new GenCode(4, "IService", fullPath, result));
}
///
@@ -208,7 +206,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate("ServiceTemplate.txt");
var result = tpl.Render();
- generateDto.GenCodes.Add(new GenCode(4, "鏈嶅姟灞", fullPath, result));
+ generateDto.GenCodes.Add(new GenCode(4, "Service", fullPath, result));
}
#endregion
@@ -217,36 +215,47 @@ namespace ZR.CodeGenerator
///
/// 鐢熸垚鎺у埗鍣ˋpiControllers鏂囦欢
///
+ //private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto)
+ //{
+ // var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs");
+
+ // var content = FileHelper.ReadTemplate("ControllersTemplate.txt")
+ // .Replace("{ApiControllerNamespace}", _option.ApiControllerNamespace)
+ // .Replace("{ServicesNamespace}", _option.ServicesNamespace)
+ // .Replace("{ModelsNamespace}", _option.ModelsNamespace)
+ // .Replace("{FunctionName}", generateDto.GenTable.FunctionName)
+ // .Replace("{ModelName}", replaceDto.ModelTypeName)
+ // .Replace("{Permission}", replaceDto.Permission)
+ // .Replace("{PrimaryKey}", replaceDto.PKName)
+ // .Replace("{ModuleName}", generateDto.GenTable.ModuleName)
+ // .Replace("{PKCsharpType}", replaceDto.PKType)
+ // .Replace("{Author}", replaceDto.Author)
+ // .Replace("{DateTime}", replaceDto.AddTime);
+
+ // if (replaceDto.UpdateColumn != null)
+ // {
+ // content = content.Replace("{UpdateColumn}", replaceDto.UpdateColumn.TrimEnd('\n'));
+ // }
+ // if (replaceDto.InsertColumn != null)
+ // {
+ // content = content.Replace("{InsertColumn}", replaceDto.InsertColumn.TrimEnd('\n'));
+ // }
+ // if (replaceDto.QueryCondition != null)
+ // {
+ // content = content.Replace("{QueryCondition}", replaceDto.QueryCondition);
+ // }
+ // generateDto.GenCodes.Add(new GenCode(5, "鎺у埗鍣", fullPath, content));
+ //}
private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto)
{
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs");
- var content = FileHelper.ReadTemplate("ControllersTemplate.txt")
- .Replace("{ApiControllerNamespace}", _option.ApiControllerNamespace)
- .Replace("{ServicesNamespace}", _option.ServicesNamespace)
- .Replace("{ModelsNamespace}", _option.ModelsNamespace)
- .Replace("{FunctionName}", generateDto.GenTable.FunctionName)
- .Replace("{ModelName}", replaceDto.ModelTypeName)
- .Replace("{Permission}", replaceDto.Permission)
- .Replace("{PrimaryKey}", replaceDto.PKName)
- .Replace("{ModuleName}", generateDto.GenTable.ModuleName)
- .Replace("{PKCsharpType}", replaceDto.PKType)
- .Replace("{Author}", replaceDto.Author)
- .Replace("{DateTime}", replaceDto.AddTime);
-
- if (replaceDto.UpdateColumn != null)
- {
- content = content.Replace("{UpdateColumn}", replaceDto.UpdateColumn.TrimEnd('\n'));
- }
- if (replaceDto.InsertColumn != null)
- {
- content = content.Replace("{InsertColumn}", replaceDto.InsertColumn.TrimEnd('\n'));
- }
- if (replaceDto.QueryCondition != null)
- {
- content = content.Replace("{QueryCondition}", replaceDto.QueryCondition);
- }
- generateDto.GenCodes.Add(new GenCode(5, "鎺у埗鍣", fullPath, content));
+ var tpl = FileHelper.ReadJtTemplate("TplControllers.txt");
+ tpl.Set("QueryCondition", replaceDto.QueryCondition);
+ tpl.Set("InsertColumn", replaceDto.InsertColumn.TrimEnd('\n'));
+ tpl.Set("UpdateColumn", replaceDto.UpdateColumn.TrimEnd('\n'));
+ var result = tpl.Render();
+ generateDto.GenCodes.Add(new GenCode(5, "Controller", fullPath, result));
}
#endregion
@@ -262,7 +271,7 @@ namespace ZR.CodeGenerator
.Replace("{VueViewListContent}", replaceDto.VueViewListHtml)//鏌ヨ table鍒
.Replace("{VueViewFormContent}", replaceDto.VueViewFormHtml)//娣诲姞銆佷慨鏀硅〃鍗
.Replace("{ModelTypeName}", replaceDto.ModelTypeName)
- .Replace("{Permission}", replaceDto.Permission)
+ .Replace("{Permission}", replaceDto.PermissionPrefix)
.Replace("{VueViewFormResetHtml}", replaceDto.VueViewFormResetHtml)
.Replace("{vueJsMethod}", replaceDto.VueJsMethod)
.Replace("{vueQueryFormHtml}", replaceDto.VueQueryFormHtml)
@@ -312,7 +321,7 @@ namespace ZR.CodeGenerator
break;
}
var tpl = FileHelper.ReadJtTemplate($"{tempName}.txt");
-
+ tpl.Set("parentId", generateDto.GenTable.ParentMenuId);
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(8, "sql", fullPath, result));
}
@@ -355,8 +364,8 @@ namespace ZR.CodeGenerator
{
int lastIndex = tableName.LastIndexOf("_");
int nameLength = tableName.Length;
- string businessName = tableName.Substring(lastIndex + 1, nameLength);
- return businessName;
+ string businessName = tableName.Substring(nameLength - lastIndex + 1);
+ return businessName.ToLower();
}
///
@@ -494,7 +503,7 @@ namespace ZR.CodeGenerator
///
private static void InitJntTemplate(GenerateDto dto, ReplaceDto replaceDto)
{
- //Engine.Current.Clean();
+ Engine.Current.Clean();
//jnt妯℃澘寮曟搸鍏ㄥ眬鍙橀噺
Engine.Configure((options) =>
@@ -503,6 +512,8 @@ namespace ZR.CodeGenerator
options.TagSuffix = "}";
options.TagFlag = '$';
options.OutMode = OutMode.Auto;
+ //options.DisableeLogogram = true;//绂佺敤绠鍐
+ options.Data.Set("${flag}", "$");//鐗规畩鏍囩鏇挎崲
options.Data.Set("replaceDto", replaceDto);
options.Data.Set("options", dto.GenOptions);
options.Data.Set("genTable", dto.GenTable);
diff --git a/ZR.CodeGenerator/Model/ReplaceDto.cs b/ZR.CodeGenerator/Model/ReplaceDto.cs
index 13ca6aa..2fcea95 100644
--- a/ZR.CodeGenerator/Model/ReplaceDto.cs
+++ b/ZR.CodeGenerator/Model/ReplaceDto.cs
@@ -20,7 +20,7 @@ namespace ZR.CodeGenerator.Model
///
/// 鎺у埗鍣ㄦ潈闄
///
- public string Permission { get; set; }
+ public string PermissionPrefix { get; set; }
///
/// C#绫诲悕
///