using System; using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers { /// /// 代码生成器相关操作 /// [Route("api/[controller]/[action]")] [ApiController] [ApiExplorerSettings(GroupName = "代码生成器_表_BuilderTables")] public class BuilderTablesController : ControllerBase { private readonly BuilderTableApp _app; /// /// 创建一个代码生成的模版 /// 会自动创建字段明细信息,添加成功后使用BuilderTableColumnsController.Load加载字段明细 /// 返回添加的模版ID /// [HttpPost] public Response Add(AddOrUpdateBuilderTableReq obj) { var result = new Response(); try { result.Result = _app.Add(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 只修改表信息,不会更新明细 /// /// /// [HttpPost] public Response Update(AddOrUpdateBuilderTableReq obj) { var result = new Response(); try { _app.Update(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 加载列表 /// [HttpGet] public async Task> Load([FromQuery]QueryBuilderTableListReq request) { return await _app.Load(request); } /// /// 加载所有的主表(parentId为空的) /// [HttpGet] public async Task AllMain() { return await _app.AllMain(); } /// /// 批量删除代码生成模版和对应的字段信息 /// [HttpPost] public Response Delete([FromBody]string[] ids) { var result = new Response(); try { _app.DelTableAndcolumns(ids); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 创建实体 /// /// /// [HttpPost] public Response CreateEntity(CreateEntityReq obj) { var result = new Response(); try { _app.CreateEntity(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 创建业务逻辑层 /// /// /// [HttpPost] public Response CreateBusiness(CreateBusiReq obj) { var result = new Response(); try { _app.CreateBusiness(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 创建vue界面 /// /// /// [HttpPost] public Response CreateVue(CreateVueReq obj) { var result = new Response(); try { _app.CreateVue(obj); _app.CreateVueApi(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } public BuilderTablesController(BuilderTableApp app) { _app = app; } } }