ApiInfoController.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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. foreach(var item in modal.apiParam)
  92. {
  93. var linkTablePrimaryKey = (_DatabaseFieldService.GetFirst(m => m.tableId == item.linkTableId && m.primaryKey) ?? _DatabaseFieldService.GetFirst(m => m.tableId == item.linkTableId)) ?? new DatabaseField();
  94. item.linkTablePrimaryKeyId = linkTablePrimaryKey.id;
  95. item.linkTablePrimaryKeyName = linkTablePrimaryKey.fieldName;
  96. item.linkTablePrimaryKeyTitle = linkTablePrimaryKey.fieldTitle;
  97. }
  98. var response = _ApiInfoService.InsertReturnIdentity(modal);
  99. return SUCCESS(response);
  100. }
  101. /// <summary>
  102. /// 修改
  103. /// </summary>
  104. /// <param name="param">参数请求体</param>
  105. /// <returns>修改</returns>
  106. [HttpPut]
  107. [Route("/v1/omega_source/ApiInfo/updateApiInfo")]
  108. public IActionResult updateApiInfo([FromBody] AddApiInfoDto param)
  109. {
  110. var modal = param.Adapt<ApiInfo>().ToUpdate(HttpContext);
  111. var check = _ApiControllerService.Any(m => m.controllerFilePath == param.controllerFilePath);
  112. if(!check)
  113. {
  114. _ApiControllerService.Add(new ApiController()
  115. {
  116. controllerFilePath = param.controllerFilePath,
  117. serviceId = param.serviceId
  118. });
  119. }
  120. foreach(var item in modal.apiParam)
  121. {
  122. var linkTablePrimaryKey = (_DatabaseFieldService.GetFirst(m => m.tableId == item.linkTableId && m.primaryKey) ?? _DatabaseFieldService.GetFirst(m => m.tableId == item.linkTableId)) ?? new DatabaseField();
  123. item.linkTablePrimaryKeyId = linkTablePrimaryKey.id;
  124. item.linkTablePrimaryKeyName = linkTablePrimaryKey.fieldName;
  125. item.linkTablePrimaryKeyTitle = linkTablePrimaryKey.fieldTitle;
  126. }
  127. var response = _ApiInfoService.Update(modal, true);
  128. return SUCCESS(response);
  129. }
  130. /// <summary>
  131. /// 删除
  132. /// </summary>
  133. /// <param name="id">ID</param>
  134. /// <returns>删除</returns>
  135. [HttpDelete]
  136. [Route("/v1/omega_source/ApiInfo/deleteApiInfo/{id}")]
  137. public IActionResult deleteApiInfo(int id)
  138. {
  139. var response = _ApiInfoService.Delete(id);
  140. return SUCCESS(response);
  141. }
  142. /// <summary>
  143. /// 批量删除
  144. /// </summary>
  145. /// <param name="param">参数请求体</param>
  146. /// <returns>批量删除</returns>
  147. [HttpPut]
  148. [Route("/v1/omega_source/ApiInfo/batchDeleteApiInfo")]
  149. public IActionResult batchDeleteApiInfo([FromBody] BatchDeleteApiInfoDto param)
  150. {
  151. foreach(var id in param.idList)
  152. {
  153. _ApiInfoService.Delete(id);
  154. }
  155. return SUCCESS("ok");
  156. }
  157. /// <summary>
  158. /// 克隆接口
  159. /// </summary>
  160. /// <param name="param">参数请求体</param>
  161. [HttpPost]
  162. [Route("/v1/omega_source/ApiInfo/copyApiInfo")]
  163. public IActionResult copyApiInfo([FromBody] CopyApiInfoDto param)
  164. {
  165. var group = _ApiGroupService.GetFirst(m => m.id == param.targetApiGroupId) ?? new ApiGroup();
  166. _ApiInfoService.copyApiInfo(param, group);
  167. return SUCCESS("ok");
  168. }
  169. /// <summary>
  170. /// 初始化接口
  171. /// </summary>
  172. /// <returns>初始化接口</returns>
  173. [HttpPost]
  174. [Route("/v1/omega_source/ApiInfo/initApiInfo")]
  175. public IActionResult initApiInfo([FromBody] InitApiInfoDto param)
  176. {
  177. _ApiInfoService.initApiInfo(param);
  178. return SUCCESS("ok");
  179. }
  180. }
  181. }