using Vo;
using Microsoft.AspNetCore.Mvc;
using Model;
using Services;
using Model.Base;
using Vo.Admin;
using Mapster;
using Infrastructure;
using Dto.Admin;
using Common;
namespace Controllers.Admin
{
///
/// ApiInfo)Controller
///
// [Route("${Router}$")]
// [ApiExplorerSettings(GroupName = "ApiInfo")]
public class ApiInfoController : BaseController
{
///
/// api分组接口
///
private readonly IApiInfoService _ApiInfoService;
private readonly IApiGroupService _ApiGroupService;
private readonly IApiControllerService _ApiControllerService;
public ApiInfoController(IApiInfoService ApiInfoService, IApiGroupService ApiGroupService, IApiControllerService ApiControllerService)
{
_ApiInfoService = ApiInfoService;
_ApiGroupService = ApiGroupService;
_ApiControllerService = ApiControllerService;
}
/// 分页参数
///
/// 列表
///
/// 分页对象
/// 参数请求体
/// 列表
[HttpGet]
[Route("/v1/omega_source/ApiInfo/getApiInfoList")]
public IActionResult getApiInfoList([FromQuery] PagerInfo page, [FromQuery] ApiInfo param)
{
var response = _ApiInfoService.getApiInfoList(page, param);
return SUCCESS(response);
}
///
/// 字段关联接口列表
///
/// 参数请求体
/// 字段关联接口列表
[HttpGet]
[Route("/v1/omega_source/ApiInfo/getApiInfoListByProId")]
public IActionResult getApiInfoListByProId([FromQuery] PagerInfo page, [FromQuery] ApiInfo param)
{
var response = _ApiInfoService.getApiInfoListByProId(page, param);
return SUCCESS(response);
}
///
/// 详情
///
/// 参数请求体
/// 详情
[HttpGet]
[Route("/v1/omega_source/ApiInfo/getApiInfoQuery")]
public IActionResult getApiInfoQuery([FromQuery] ApiInfo param)
{
var response = _ApiInfoService.GetFirst(m => m.id == param.id).Adapt();
return SUCCESS(response);
}
///
/// 添加
///
/// 参数请求体
/// 添加
[HttpPost]
[Route("/v1/omega_source/ApiInfo/addApiInfo")]
public IActionResult addApiInfo([FromBody] AddApiInfoDto param)
{
var modal = param.Adapt().ToCreate(HttpContext);
var check = _ApiControllerService.Any(m => m.controllerFilePath == param.controllerFilePath);
if(!check)
{
_ApiControllerService.Add(new ApiController()
{
controllerFilePath = param.controllerFilePath,
serviceId = param.serviceId
});
}
var response = _ApiInfoService.InsertReturnIdentity(modal);
return SUCCESS(response);
}
///
/// 修改
///
/// 参数请求体
/// 修改
[HttpPut]
[Route("/v1/omega_source/ApiInfo/updateApiInfo")]
public IActionResult updateApiInfo([FromBody] AddApiInfoDto param)
{
var modal = param.Adapt().ToCreate(HttpContext);
var check = _ApiControllerService.Any(m => m.controllerFilePath == param.controllerFilePath);
if(!check)
{
_ApiControllerService.Add(new ApiController()
{
controllerFilePath = param.controllerFilePath,
serviceId = param.serviceId
});
}
var response = _ApiInfoService.Update(modal, true);
return SUCCESS(response);
}
///
/// 删除
///
/// ID
/// 删除
[HttpDelete]
[Route("/v1/omega_source/ApiInfo/deleteApiInfo/{id}")]
public IActionResult deleteApiInfo(int id)
{
var response = _ApiInfoService.Delete(id);
return SUCCESS(response);
}
///
/// 批量删除
///
/// 参数请求体
/// 批量删除
[HttpPut]
[Route("/v1/omega_source/ApiInfo/batchDeleteApiInfo")]
public IActionResult batchDeleteApiInfo([FromBody] BatchDeleteApiInfoDto param)
{
foreach(var id in param.idList)
{
_ApiInfoService.Delete(id);
}
return SUCCESS("ok");
}
///
/// 克隆接口
///
/// 参数请求体
[HttpPost]
[Route("/v1/omega_source/ApiInfo/copyApiInfo")]
public IActionResult copyApiInfo([FromBody] CopyApiInfoDto param)
{
var group = _ApiGroupService.GetFirst(m => m.id == param.targetGroupId) ?? new ApiGroup();
_ApiInfoService.copyApiInfo(param, group);
return SUCCESS("ok");
}
///
/// 初始化接口
///
/// 初始化接口
[HttpPost]
[Route("/v1/omega_source/ApiInfo/initApiInfo")]
public IActionResult initApiInfo([FromBody] InitApiInfoDto param)
{
_ApiInfoService.initApiInfo(param);
return SUCCESS("ok");
}
}
}