using Vo;
using Microsoft.AspNetCore.Mvc;
using Model;
using Services;
using Model.Base;
using Vo.Admin;
using Mapster;
using Infrastructure;
using Dto.Admin;
using Util;
using Common;
using Tasks;
namespace Controllers.Admin
{
///
/// DatabaseTable)Controller
///
// [Route("${Router}$")]
// [ApiExplorerSettings(GroupName = "DatabaseTable")]
public class DatabaseTableController : BaseController
{
///
/// api分组接口
///
private readonly IDatabaseTableService _DatabaseTableService;
private readonly IDatabaseInfoService _DatabaseInfoService;
public DatabaseTableController(IDatabaseTableService DatabaseTableService, IDatabaseInfoService DatabaseInfoService)
{
_DatabaseTableService = DatabaseTableService;
_DatabaseInfoService = DatabaseInfoService;
}
/// 分页参数
///
/// 列表
///
/// 分页对象
/// 参数请求体
/// 列表
[HttpGet]
[Route("/v1/omega_source/DatabaseTable/getDatabaseTableList")]
public IActionResult getDatabaseTableList([FromQuery] PagerInfo page, [FromQuery] DatabaseTable param)
{
var response = _DatabaseTableService.getDatabaseTableList(page, param);
return SUCCESS(response);
}
///
/// 详情
///
/// 参数请求体
/// 详情
[HttpGet]
[Route("/v1/omega_source/DatabaseTable/getDatabaseTableQuery")]
public IActionResult getDatabaseTableQuery([FromQuery] DatabaseTable param)
{
var response = _DatabaseTableService.GetFirst(m => m.id == param.id).Adapt();
return SUCCESS(response);
}
///
/// 添加
///
/// 参数请求体
/// 添加
[HttpPost]
[Route("/v1/omega_source/DatabaseTable/addDatabaseTable")]
public IActionResult addDatabaseTable([FromBody] DatabaseTable param)
{
var modal = param.Adapt().ToCreate(HttpContext);
var response = _DatabaseTableService.addDatabaseTable(modal);
return SUCCESS(response);
}
///
/// 修改
///
/// 参数请求体
/// 修改
[HttpPut]
[Route("/v1/omega_source/DatabaseTable/updateDatabaseTable")]
public IActionResult updateDatabaseTable([FromBody] DatabaseTable param)
{
var modal = param.Adapt().ToUpdate(HttpContext);
var response = _DatabaseTableService.Update(modal, true);
return SUCCESS(response);
}
///
/// 删除
///
/// ID
/// 删除
[HttpDelete]
[Route("/v1/omega_source/DatabaseTable/deleteDatabaseTable/{id}")]
public IActionResult deleteDatabaseTable(int id)
{
var response = _DatabaseTableService.Delete(id);
return SUCCESS(response);
}
///
/// 克隆表
///
/// 参数请求体
/// 克隆表
[HttpPost]
[Route("/v1/omega_source/DatabaseTable/copyDatabaseTable")]
public IActionResult copyDatabaseTable([FromBody] CopyDatabaseTableDto param)
{
_DatabaseTableService.copyDatabaseTable(param);
return SUCCESS("ok");
}
///
/// 生成
///
/// 参数请求体
/// 生成
[HttpPut]
[Route("/v1/omega_source/DatabaseTable/makeDatabaseTable")]
public IActionResult makeDatabaseTable([FromBody] MakeDatabaseTableDto param)
{
if(param.id.Length == 0)
{
return ToResponse(ResultCode.FAIL, "表ID不能为空");
}
TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
var tableId = param.id[0];
var databaseTable = _DatabaseTableService.GetFirst(m => m.id == tableId) ?? new DatabaseTable();
var databaseInfo = _DatabaseInfoService.GetFirst(m => m.id == databaseTable.databaseId) ?? new DatabaseInfo();
string res = _DatabaseTableService.makeDatabaseTable(param, databaseInfo, loginUser);
string id = MakeHelper.Instance.DoQueue(res);
Dictionary dic = new Dictionary();
dic.Add("makeObjectId", id);
return SUCCESS(dic);
}
///
/// 根据服务ID查询列表
///
/// 分页对象
/// 参数请求体
/// 根据服务ID查询列表
[HttpGet]
[Route("/v1/omega_source/DatabaseTable/getDatabaseTableListByIds")]
public IActionResult getDatabaseTableListByIds([FromQuery] PagerInfo page, [FromQuery] GetDatabaseTableListByIdsDto param)
{
var response = _DatabaseTableService.getDatabaseTableListByIds(page, param);
return SUCCESS(response);
}
[HttpGet]
[Route("/v1/omega_source/DatabaseTable/getTableListByIds")]
public IActionResult getTableListByIds([FromQuery] GetTableListByIdsDto param)
{
List idList = Tools.SpitIntArrary(param.ids).ToList();
var response = _DatabaseTableService.GetList(m => idList.Contains(m.id)).ToList();
return SUCCESS(response);
}
}
}