ApiInfoController.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. using Vo;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Model;
  4. using Services;
  5. using Model.Base;
  6. using Vo.Admin;
  7. using Mapster;
  8. using Infrastructure;
  9. using Dto.Admin;
  10. using Common;
  11. namespace Controllers.Admin
  12. {
  13. /// <summary>
  14. /// ApiInfo)Controller
  15. /// </summary>
  16. // [Route("${Router}$")]
  17. // [ApiExplorerSettings(GroupName = "ApiInfo")]
  18. public class ApiInfoController : BaseController
  19. {
  20. /// <summary>
  21. /// api分组接口
  22. /// </summary>
  23. private readonly IApiInfoService _ApiInfoService;
  24. private readonly IApiGroupService _ApiGroupService;
  25. private readonly IApiControllerService _ApiControllerService;
  26. private readonly IDatabaseFieldService _DatabaseFieldService;
  27. public ApiInfoController(IApiInfoService ApiInfoService, IApiGroupService ApiGroupService, IApiControllerService ApiControllerService, IDatabaseFieldService DatabaseFieldService)
  28. {
  29. _ApiInfoService = ApiInfoService;
  30. _ApiGroupService = ApiGroupService;
  31. _ApiControllerService = ApiControllerService;
  32. _DatabaseFieldService = DatabaseFieldService;
  33. }
  34. /// <param name="page">分页参数</param>
  35. /// <summary>
  36. /// 列表
  37. /// </summary>
  38. /// <param name="page">分页对象</param>
  39. /// <param name="param">参数请求体</param>
  40. /// <returns>列表</returns>
  41. [HttpGet]
  42. [Route("/v1/omega_source/ApiInfo/getApiInfoList")]
  43. public IActionResult getApiInfoList([FromQuery] PagerInfo page, [FromQuery] ApiInfo param)
  44. {
  45. var response = _ApiInfoService.getApiInfoList(page, param);
  46. return SUCCESS(response);
  47. }
  48. /// <summary>
  49. /// 字段关联接口列表
  50. /// </summary>
  51. /// <param name="param">参数请求体</param>
  52. /// <returns>字段关联接口列表</returns>
  53. [HttpGet]
  54. [Route("/v1/omega_source/ApiInfo/getApiInfoListByProId")]
  55. public IActionResult getApiInfoListByProId([FromQuery] PagerInfo page, [FromQuery] ApiInfo param)
  56. {
  57. var response = _ApiInfoService.getApiInfoListByProId(page, param);
  58. return SUCCESS(response);
  59. }
  60. /// <summary>
  61. /// 详情
  62. /// </summary>
  63. /// <param name="param">参数请求体</param>
  64. /// <returns>详情</returns>
  65. [HttpGet]
  66. [Route("/v1/omega_source/ApiInfo/getApiInfoQuery")]
  67. public IActionResult getApiInfoQuery([FromQuery] ApiInfo param)
  68. {
  69. var response = _ApiInfoService.GetFirst(m => m.id == param.id).Adapt<GetApiInfoQueryVo>();
  70. return SUCCESS(response);
  71. }
  72. /// <summary>
  73. /// 添加
  74. /// </summary>
  75. /// <param name="param">参数请求体</param>
  76. /// <returns>添加</returns>
  77. [HttpPost]
  78. [Route("/v1/omega_source/ApiInfo/addApiInfo")]
  79. public IActionResult addApiInfo([FromBody] AddApiInfoDto param)
  80. {
  81. var modal = param.Adapt<ApiInfo>().ToCreate(HttpContext);
  82. var check = _ApiControllerService.Any(m => m.controllerFilePath == param.controllerFilePath);
  83. if(!check)
  84. {
  85. _ApiControllerService.Add(new ApiController()
  86. {
  87. controllerFilePath = param.controllerFilePath,
  88. serviceId = param.serviceId
  89. });
  90. }
  91. var response = _ApiInfoService.InsertReturnIdentity(modal);
  92. return SUCCESS(response);
  93. }
  94. /// <summary>
  95. /// 修改
  96. /// </summary>
  97. /// <param name="param">参数请求体</param>
  98. /// <returns>修改</returns>
  99. [HttpPut]
  100. [Route("/v1/omega_source/ApiInfo/updateApiInfo")]
  101. public IActionResult updateApiInfo([FromBody] AddApiInfoDto param)
  102. {
  103. var modal = param.Adapt<ApiInfo>().ToUpdate(HttpContext);
  104. var check = _ApiControllerService.Any(m => m.controllerFilePath == param.controllerFilePath);
  105. if(!check)
  106. {
  107. _ApiControllerService.Add(new ApiController()
  108. {
  109. controllerFilePath = param.controllerFilePath,
  110. serviceId = param.serviceId
  111. });
  112. }
  113. var response = _ApiInfoService.Update(modal, true);
  114. return SUCCESS(response);
  115. }
  116. /// <summary>
  117. /// 删除
  118. /// </summary>
  119. /// <param name="id">ID</param>
  120. /// <returns>删除</returns>
  121. [HttpDelete]
  122. [Route("/v1/omega_source/ApiInfo/deleteApiInfo/{id}")]
  123. public IActionResult deleteApiInfo(int id)
  124. {
  125. var response = _ApiInfoService.Delete(id);
  126. return SUCCESS(response);
  127. }
  128. /// <summary>
  129. /// 批量删除
  130. /// </summary>
  131. /// <param name="param">参数请求体</param>
  132. /// <returns>批量删除</returns>
  133. [HttpPut]
  134. [Route("/v1/omega_source/ApiInfo/batchDeleteApiInfo")]
  135. public IActionResult batchDeleteApiInfo([FromBody] BatchDeleteApiInfoDto param)
  136. {
  137. foreach(var id in param.idList)
  138. {
  139. _ApiInfoService.Delete(id);
  140. }
  141. return SUCCESS("ok");
  142. }
  143. /// <summary>
  144. /// 克隆接口
  145. /// </summary>
  146. /// <param name="param">参数请求体</param>
  147. [HttpPost]
  148. [Route("/v1/omega_source/ApiInfo/copyApiInfo")]
  149. public IActionResult copyApiInfo([FromBody] CopyApiInfoDto param)
  150. {
  151. var group = _ApiGroupService.GetFirst(m => m.id == param.targetApiGroupId) ?? new ApiGroup();
  152. _ApiInfoService.copyApiInfo(param, group);
  153. return SUCCESS("ok");
  154. }
  155. /// <summary>
  156. /// 初始化接口
  157. /// </summary>
  158. /// <returns>初始化接口</returns>
  159. [HttpPost]
  160. [Route("/v1/omega_source/ApiInfo/initApiInfo")]
  161. public IActionResult initApiInfo([FromBody] InitApiInfoDto param)
  162. {
  163. _ApiInfoService.initApiInfo(param);
  164. return SUCCESS("ok");
  165. }
  166. }
  167. }