MakeCodeController.cs 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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.Client;
  10. using Custom;
  11. using Feign;
  12. using Common;
  13. using Util;
  14. namespace Controllers.Client
  15. {
  16. public class MakeCodeController : BaseController
  17. {
  18. private readonly IDatabaseInfoService _DatabaseInfoService;
  19. private readonly IDatabaseTableService _DatabaseTableService;
  20. private readonly IApiGroupService _ApiGroupService;
  21. private readonly IApiInfoService _ApiInfoService;
  22. public MakeCodeController(IDatabaseInfoService DatabaseInfoService, IDatabaseTableService DatabaseTableService, IApiGroupService ApiGroupService, IApiInfoService ApiInfoService)
  23. {
  24. _DatabaseInfoService = DatabaseInfoService;
  25. _DatabaseTableService = DatabaseTableService;
  26. _ApiGroupService = ApiGroupService;
  27. _ApiInfoService = ApiInfoService;
  28. }
  29. /// <summary>
  30. /// 生成代码
  31. /// </summary>
  32. /// <param name="param">参数</param>
  33. /// <returns>生成代码</returns>
  34. [HttpGet("/v1/omega_source/vscode/makerFile")]
  35. public IActionResult makerFile([FromBody] MakeCodeDto param)
  36. {
  37. try
  38. {
  39. TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
  40. Function.WriteLog(loginUser.username, "测试生成代码");
  41. Function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(param), "测试生成代码");
  42. ProjectService baseInfo = IProject.getProjectService(param.serviceId);
  43. Function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(baseInfo), "测试生成代码");
  44. List<int> databaseIds = baseInfo.databaseList.ToList();
  45. Function.WriteLog("databaseIds:" + databaseIds.Count.ToString(), "测试生成代码");
  46. foreach(var databaseId in databaseIds)
  47. {
  48. var tables = _DatabaseTableService.GetList(a => a.databaseId == databaseId);
  49. Function.WriteLog("tables:" + tables.Count.ToString(), "测试生成代码");
  50. foreach(var table in tables)
  51. {
  52. _DatabaseTableService.makeJavaModel(baseInfo, table, loginUser);
  53. _DatabaseTableService.makeJavaService(baseInfo, table, loginUser);
  54. _DatabaseTableService.makeJavaServiceImpl(baseInfo, table, loginUser);
  55. _DatabaseTableService.makeJavaMapper(baseInfo, table, loginUser);
  56. _DatabaseTableService.makeJavaMapperXml(baseInfo, table, loginUser);
  57. }
  58. }
  59. var apiGroups = _ApiGroupService.GetList(a => a.serviceId == param.serviceId);
  60. Function.WriteLog("apiGroups:" + apiGroups.Count.ToString(), "测试生成代码");
  61. foreach(var apiGroup in apiGroups)
  62. {
  63. var apiInfos = _ApiInfoService.GetList(a => a.groupId == apiGroup.id);
  64. Function.WriteLog("apiInfos:" + apiInfos.Count.ToString(), "测试生成代码");
  65. foreach(var apiInfo in apiInfos)
  66. {
  67. if(apiInfo.apiParamCount > 1)
  68. {
  69. _DatabaseTableService.makeJavaDto(baseInfo, apiInfo, loginUser);
  70. }
  71. if(apiInfo.apiResParamCount > 0)
  72. {
  73. _DatabaseTableService.makeJavaVo(baseInfo, apiInfo, loginUser);
  74. }
  75. }
  76. List<string> controllerNameList = _ApiInfoService.GetList(m => m.serviceId == baseInfo.id).Select(m => m.controllerName).Distinct().ToList();
  77. foreach(var controllerName in controllerNameList)
  78. {
  79. _DatabaseTableService.makeJavaController(baseInfo, apiGroup, controllerName, loginUser);
  80. }
  81. }
  82. Function.WriteLog("end\n\n\n", "测试生成代码");
  83. }
  84. catch(Exception ex)
  85. {
  86. Function.WriteLog(ex.ToString(), "测试生成代码异常");
  87. }
  88. return SUCCESS("ok");
  89. }
  90. }
  91. }