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