using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App.CodeTable; using OpenAuth.App.CodeTable.Request; using OpenAuth.App.CodeTable.Response; using OpenAuth.App.FormScheme; using OpenAuth.App.FormScheme.Request; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers { /// /// 日 期: 2024-03-02 /// 描 述: 数据对象模型管理 /// [Route("api/[controller]/[action]")] [ApiController] public class CodeTableController : ControllerBase { private readonly CodeTableApp _app; private readonly CodeColumnsApp _ccapp; public CodeTableController(CodeTableApp app, CodeColumnsApp ccapp) { _app = app; _ccapp = ccapp; } /// /// 获取CodeTable的分页数据 /// /// 查询关键字 /// 数据库编码 /// /// /// [HttpGet] [AllowAnonymous] public async Task>>> LoadCodeTablePage(string keyWord, string dbCode, int page, int limit) { return await _app.LoadCodeTablePage(keyWord, dbCode, page, limit); } /// /// 获取字典分类列表 /// /// [HttpGet] [AllowAnonymous] public async Task>> GetEntitys(string dbCode, string tableNames) { var result = new Response>(); try { result.Result = await _app.GetEntitys(dbCode, tableNames.Split(',').ToList()); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 获取表的对象集合数据 /// /// 数据库编码 /// 数据表名集合 /// [HttpGet] [AllowAnonymous] public async Task>> GetForms(string dbCode, string tableNames) { var result = new Response>(); try { var list = await _app.GetEntitys(dbCode, tableNames.Split(',').ToList()); List res = new List(); foreach (var item in list) { var data = new CodeTableColumnsResp(); data.db_codetable = item; data.db_codecolumnsList = await _ccapp.GetList(new DbCodeColumns { CodeTableId = item.Id }); res.Add(data); } result.Result = res; } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 导入表数据 /// /// 数据库编码 /// 表数据 /// [HttpPost] [AllowAnonymous] public async Task> ImportTable(string dbCode, CodeTableReq req) { var result = new Response(); try { await _app.ImportTable(dbCode,req.TableList); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 获取数据库表及视图字段 /// /// /// /// [HttpGet] [AllowAnonymous] public Response> GetTableAndViewColumnList(string dbCode, string tableName) { var result = new Response>(); try { result.Result = _app.GetTableAndViewColumnList(dbCode, tableName); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } } }