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;
}
}
}