using Admin.Core.Common; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Admin.Core.Api { /// <summary> /// Controller代码生成 /// </summary> [ApiController] [Route("api/[controller]/[action]")] [Authorize(Permissions.Name)] [AllowAnonymous] public class SeedController : ControllerBase { private readonly SqlSugarClient _sqlSugarClient; private readonly IWebHostEnvironment Env; /// <summary> /// 构造方法 /// </summary> /// <param name="sqlSugarClient"></param> /// <param name="env"></param> public SeedController(ISqlSugarClient sqlSugarClient, IWebHostEnvironment env) { _sqlSugarClient = sqlSugarClient as SqlSugarClient; Env = env; } /// <summary> /// 获取控制器(需指定表名和数据库) /// </summary> /// <param name="ConnID">数据库链接名称</param> /// <param name="tableNames">需要生成的表名</param> /// <returns></returns> [HttpPost] public string GetFrameFilesByTableNamesForController([FromBody] string[] tableNames, [FromQuery] string ConnID = null) { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; var isMuti = Appsettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); var seed = FrameSeed.CreateControllers(_sqlSugarClient, ConnID, isMuti, tableNames); var data = $"库{ConnID}-Controllers层生成:{seed}"; return data; } /// <summary> /// 获取实体(需指定表名和数据库) /// </summary> /// <param name="ConnID">数据库链接名称</param> /// <param name="tableNames">需要生成的表名</param> /// <returns></returns> [HttpPost] public string GetFrameFilesByTableNamesForEntity([FromBody] string[] tableNames, [FromQuery] string ConnID = null) { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; var isMuti = Appsettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); var data = $"库{ConnID}-Models层生成:{FrameSeed.CreateModels(_sqlSugarClient, ConnID, isMuti, tableNames)}"; return data; } /// <summary> /// 获取控制器、服务、仓储、实体(需指定表名和数据库) /// </summary> /// <param name="ConnID">数据库链接名称</param> /// <param name="tableNames">需要生成的表名</param> /// <returns></returns> [HttpPost] public string GetFrameFilesByTableNames([FromBody] string[] tableNames, [FromQuery] string ConnID = null) { try { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; var isMuti = Appsettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); FrameSeed.CreateControllers(_sqlSugarClient, ConnID, isMuti, tableNames); FrameSeed.CreateIServices(_sqlSugarClient, ConnID, isMuti, tableNames); FrameSeed.CreateServices(_sqlSugarClient, ConnID, isMuti, tableNames); FrameSeed.CreateIRepositorys(_sqlSugarClient, ConnID, isMuti, tableNames); FrameSeed.CreateRepository(_sqlSugarClient, ConnID, isMuti, tableNames); FrameSeed.CreateModels(_sqlSugarClient, ConnID, isMuti, tableNames); var data = $"库{ConnID}-控制器、服务、仓储、实体层生成"; return data; } catch (Exception) { throw; } } } }