diff --git a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs
index ec6384c..0c65c48 100644
--- a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs
@@ -12,6 +12,7 @@ using ZR.CodeGenerator.Model;
using ZR.CodeGenerator.Service;
using ZR.Common;
using ZR.Model;
+using ZR.Model.System;
using ZR.Model.System.Dto;
using ZR.Model.System.Generate;
using ZR.Service.System.IService;
@@ -28,16 +29,18 @@ namespace ZR.Admin.WebApi.Controllers
private readonly CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService();
private readonly IGenTableService GenTableService;
private readonly IGenTableColumnService GenTableColumnService;
-
+ private readonly ISysMenuService SysMenuService;
private readonly IWebHostEnvironment WebHostEnvironment;
public CodeGeneratorController(
IGenTableService genTableService,
IGenTableColumnService genTableColumnService,
- IWebHostEnvironment webHostEnvironment)
+ IWebHostEnvironment webHostEnvironment,
+ ISysMenuService sysMenuService)
{
GenTableService = genTableService;
GenTableColumnService = genTableColumnService;
WebHostEnvironment = webHostEnvironment;
+ SysMenuService = sysMenuService;
}
///
@@ -257,7 +260,7 @@ namespace ZR.Admin.WebApi.Controllers
dto.GenTable = genTableInfo;
//自定义路径
if (genTableInfo.GenType == "1")
- {
+ {
string tempPath = WebHostEnvironment.ContentRootPath;
var parentPath = tempPath[..tempPath.LastIndexOf(@"\")];
//代码生成文件夹路径
@@ -275,7 +278,10 @@ namespace ZR.Admin.WebApi.Controllers
CodeGeneratorTool.Generate(dto);
//下载文件
FileUtil.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName);
-
+ if (genTableInfo.Options.GenerateMenu)
+ {
+ SysMenuService.AddSysMenu(genTableInfo, dto.ReplaceDto.PermissionPrefix, dto.ReplaceDto.ShowBtnEdit, dto.ReplaceDto.ShowBtnExport);
+ }
return SUCCESS(new { path = "/Generatecode/" + zipReturnFileName, fileName = dto.ZipFileName });
}
diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs
index cf74cb4..091c937 100644
--- a/ZR.CodeGenerator/CodeGeneratorTool.cs
+++ b/ZR.CodeGenerator/CodeGeneratorTool.cs
@@ -79,7 +79,7 @@ namespace ZR.CodeGenerator
}
GenerateVueJs(dto);
GenerateSql(dto);
-
+ dto.ReplaceDto = replaceDto;
if (dto.IsPreview) return;
foreach (var item in dto.GenCodes)
diff --git a/ZR.CodeGenerator/Model/GenerateDto.cs b/ZR.CodeGenerator/Model/GenerateDto.cs
index 47fb4ba..ab35089 100644
--- a/ZR.CodeGenerator/Model/GenerateDto.cs
+++ b/ZR.CodeGenerator/Model/GenerateDto.cs
@@ -58,6 +58,7 @@ namespace ZR.CodeGenerator.Model
///
public string VueParentPath { get; set; }
#endregion
+ public ReplaceDto ReplaceDto { get; set; }
}
public class GenCode
diff --git a/ZR.Model/System/Generate/GenTable.cs b/ZR.Model/System/Generate/GenTable.cs
index cde1f43..d62734a 100644
--- a/ZR.Model/System/Generate/GenTable.cs
+++ b/ZR.Model/System/Generate/GenTable.cs
@@ -107,5 +107,9 @@ namespace ZR.Model.System.Generate
/// 是否生成仓储层
///
public int GenerateRepo { get; set; }
+ ///
+ /// 自动生成菜单
+ ///
+ public bool GenerateMenu { get; set; }
}
}
diff --git a/ZR.Service/System/IService/ISysMenuService.cs b/ZR.Service/System/IService/ISysMenuService.cs
index 2eb3abc..367d646 100644
--- a/ZR.Service/System/IService/ISysMenuService.cs
+++ b/ZR.Service/System/IService/ISysMenuService.cs
@@ -2,6 +2,7 @@
using ZR.Model.System.Dto;
using ZR.Model.System;
using ZR.Model.System.Vo;
+using ZR.Model.System.Generate;
namespace ZR.Service.System.IService
{
@@ -37,6 +38,8 @@ namespace ZR.Service.System.IService
List BuildMenus(List menus);
List BuildMenuTreeSelect(List menus);
+
+ void AddSysMenu(GenTable genTableInfo, string permPrefix, bool showEdit, bool showExport);
}
///
diff --git a/ZR.Service/System/SysMenuService.cs b/ZR.Service/System/SysMenuService.cs
index 54b963b..62aecb3 100644
--- a/ZR.Service/System/SysMenuService.cs
+++ b/ZR.Service/System/SysMenuService.cs
@@ -7,8 +7,10 @@ using System.Linq;
using ZR.Common;
using ZR.Model.System;
using ZR.Model.System.Dto;
+using ZR.Model.System.Generate;
using ZR.Model.System.Vo;
using ZR.Service.System.IService;
+using static System.Runtime.InteropServices.JavaScript.JSType;
namespace ZR.Service
{
@@ -561,5 +563,114 @@ namespace ZR.Service
}
#endregion
+
+ public void AddSysMenu(GenTable genTableInfo, string permPrefix, bool showEdit, bool showExport)
+ {
+ var menu = GetFirst(f => f.MenuName == genTableInfo.FunctionName);
+ if (menu is null)
+ {
+ menu = new()
+ {
+ MenuName = genTableInfo.FunctionName,
+ ParentId = genTableInfo.Options.ParentMenuId,
+ OrderNum = 0,
+ Path = genTableInfo.BusinessName,
+ Component = $"{genTableInfo.ModuleName.FirstLowerCase()}/{genTableInfo.BusinessName}",
+ Perms = $"{permPrefix}:list",
+ IsFrame = "0",
+ IsCache = "1",
+ MenuType = "C",
+ Visible = "0",
+ Status = "0",
+ Icon = "icon1",
+ Create_by = "system",
+ };
+ menu.MenuId = AddMenu(menu);
+ }
+
+ List menuList = new();
+
+ SysMenu menuQuery = new()
+ {
+ MenuName = "查询",
+ ParentId = menu.MenuId,
+ OrderNum = 1,
+ Perms = $"{permPrefix}:query",
+ IsFrame = "0",
+ MenuType = "F",
+ Visible = "0",
+ Status = "0",
+ Icon = "",
+ };
+ SysMenu menuAdd = new()
+ {
+ MenuName = "新增",
+ ParentId = menu.MenuId,
+ OrderNum = 2,
+ Perms = $"{permPrefix}:add",
+ IsFrame = "0",
+ MenuType = "F",
+ Visible = "0",
+ Status = "0",
+ Icon = "",
+ };
+ SysMenu menuDel = new()
+ {
+ MenuName = "删除",
+ ParentId = menu.MenuId,
+ OrderNum = 3,
+ Perms = $"{permPrefix}:delete",
+ IsFrame = "0",
+ MenuType = "F",
+ Visible = "0",
+ Status = "0",
+ Icon = "",
+ };
+
+ SysMenu menuEdit = new()
+ {
+ MenuName = "修改",
+ ParentId = menu.MenuId,
+ OrderNum = 4,
+ Perms = $"{permPrefix}:edit",
+ IsFrame = "0",
+ MenuType = "F",
+ Visible = "0",
+ Status = "0",
+ Icon = "",
+ };
+
+ SysMenu menuExport = new()
+ {
+ MenuName = "导出",
+ ParentId = menu.MenuId,
+ OrderNum = 5,
+ Perms = $"{permPrefix}:export",
+ IsFrame = "0",
+ MenuType = "F",
+ Visible = "0",
+ Status = "0",
+ Icon = "",
+ };
+
+ menuList.Add(menuQuery);
+ menuList.Add(menuAdd);
+ menuList.Add(menuDel);
+ if (showEdit)
+ {
+ menuList.Add(menuEdit);
+ }
+ if (showExport)
+ {
+ menuList.Add(menuExport);
+ }
+ //Insert(menuList);
+
+ var x = Storageable(menuList)
+ .WhereColumns(it => new { it.MenuName, it.ParentId })
+ .ToStorage();
+ x.AsInsertable.ExecuteCommand();//插入可插入部分;
+ x.AsUpdateable.ExecuteCommand();
+ }
}
}