using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure.Model; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using ZR.CodeGenerator; using ZR.CodeGenerator.Service; using ZR.Model; using ZR.Model.CodeGenerator; using ZR.Model.Vo; using ZR.Service.IService; using ZR.Service.System; namespace ZR.Admin.WebApi.Controllers { /// /// 代码生成 /// [Route("codeGenerator")] public class CodeGeneratorController : BaseController { //public ICodeGeneratorService CodeGeneratorService; //public CodeGeneratorController(ICodeGeneratorService codeGeneratorService) //{ // CodeGeneratorService = codeGeneratorService; //} private CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService(); /// /// 获取所有数据库的信息 /// /// [HttpGet("GetListDataBase")] //[YuebonAuthorize("GetListDataBase")] //[NoPermissionRequired] public IActionResult GetListDataBase() { return SUCCESS(_CodeGeneraterService.GetAllDataBases()); } /// ///获取所有表根据数据名 /// /// 数据库名 /// 表名 /// 分页信息 /// [HttpGet("FindListTable")] public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager) { if (string.IsNullOrEmpty(dbName)) { dbName = "ZrAdmin"; } List list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager); var vm = new VMPageResult(list, pager); return SUCCESS(vm); } /// /// 代码生成器 /// /// /// 要生成代码的表 /// 项目命名空间 /// 要删除表名的字符串用英文逗号","隔开 /// [HttpGet("Generate")] [Log(Title = "代码生成", BusinessType = BusinessType.OTHER)] public IActionResult Generate(string dbName, string baseSpace, string tables, string replaceTableNameStr) { if (string.IsNullOrEmpty(baseSpace)) { throw new CustomException(ResultCode.CUSTOM_ERROR, "命名空间不能为空"); } string[] tableList = tables.Split(","); List tableInfos = new List();// CodeGeneratorService.GetAllTables(tables); foreach (var item in tableList) { tableInfos.Add(new DbTableInfo() { TableName = item }); } CodeGeneratorTool.Generate(dbName, baseSpace, tableInfos, replaceTableNameStr, true); return SUCCESS(null); } } }