MakeCodeController.cs 4.6 KB

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