ApiInfoController.cs 5.9 KB

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