VsCodeController.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using Attribute;
  2. using Base;
  3. using Common;
  4. using Dto;
  5. using Enums;
  6. using Extensions;
  7. using Filters;
  8. using Infrastructure;
  9. using Infrastructure.Model;
  10. using Mapster;
  11. using Microsoft.AspNetCore.Mvc;
  12. using Middleware;
  13. using Model;
  14. using Model.Base;
  15. using Services;
  16. using Util;
  17. using Vo;
  18. namespace Controllers.Feign
  19. {
  20. public class VsCodeController : BaseController
  21. {
  22. private readonly IProjectService projectService;
  23. private readonly IProjectServiceService projectServiceService;
  24. public VsCodeController(IProjectService projectService, IProjectServiceService projectServiceService)
  25. {
  26. this.projectService = projectService;
  27. this.projectServiceService = projectServiceService;
  28. }
  29. /// <summary>
  30. /// vscode项目列表
  31. /// </summary>
  32. /// <param name="param"></param>
  33. /// <returns></returns>
  34. [HttpPost("/api/vscode/projects")]
  35. public IActionResult Projects()
  36. {
  37. TokenModel tokenModel = JwtUtil.GetLoginUser(HttpContext);
  38. if(tokenModel == null)
  39. {
  40. return ToResponse(ResultCode.BAD_REQUEST, "用户未登录");
  41. }
  42. List<ProjectVo> list = new List<ProjectVo>();
  43. var projects = projectService.GetList(m => m.createBy == tokenModel.username);
  44. foreach (var project in projects)
  45. {
  46. ProjectVo item = new ProjectVo();
  47. item.projectId = project.id;
  48. item.projectType = 0;
  49. item.projectName = project.projectName;
  50. item.serverList = new List<ServerVo>();
  51. List<Model.ProjectService> servers = projectServiceService.GetList(m => m.projectId == project.id);
  52. foreach(var server in servers)
  53. {
  54. ServerVo subitem = new ServerVo();
  55. subitem.serverId = server.id;
  56. subitem.serverName = server.serviceTitle;
  57. item.serverList.Add(subitem);
  58. }
  59. list.Add(item);
  60. }
  61. return SUCCESS(list);
  62. }
  63. /// <summary>
  64. /// 获取项目服务列表
  65. /// </summary>
  66. /// <param name="param"></param>
  67. /// <returns></returns>
  68. [HttpGet("/api/vscode/getServerInfo")]
  69. public IActionResult GetServerInfo([FromQuery] GetServerDto para)
  70. {
  71. TokenModel tokenModel = JwtUtil.GetLoginUser(HttpContext);
  72. if(tokenModel == null)
  73. {
  74. return ToResponse(ResultCode.BAD_REQUEST, "用户未登录");
  75. }
  76. var item = projectServiceService.GetFirst(m => m.id == para.serverId) ?? new Model.ProjectService();
  77. GetServerVo data = new GetServerVo();
  78. data.ServerName = item.serviceName;
  79. data.ServerLanguage = item.devLanguage;
  80. return SUCCESS(data);
  81. }
  82. }
  83. }