using Attribute; using Base; using Common; using Dto; using Enums; using Extensions; using Filters; using Infrastructure; using Infrastructure.Model; using Mapster; using Microsoft.AspNetCore.Mvc; using Middleware; using Model; using Model.Base; using Services; using Util; using Vo; namespace Controllers.Feign { public class VsCodeController : BaseController { private readonly IProjectService projectService; private readonly IProjectServiceService projectServiceService; public VsCodeController(IProjectService projectService, IProjectServiceService projectServiceService) { this.projectService = projectService; this.projectServiceService = projectServiceService; } /// /// vscode项目列表 /// /// /// [HttpPost("/api/vscode/projects")] public IActionResult Projects() { TokenModel tokenModel = JwtUtil.GetLoginUser(HttpContext); if(tokenModel == null) { return ToResponse(ResultCode.BAD_REQUEST, "用户未登录"); } List list = new List(); var projects = projectService.GetList(m => m.createBy == tokenModel.username); foreach (var project in projects) { ProjectVo item = new ProjectVo(); item.projectId = project.id; item.projectType = 0; item.projectName = project.projectName; item.serverList = new List(); List servers = projectServiceService.GetList(m => m.projectId == project.id); foreach(var server in servers) { ServerVo subitem = new ServerVo(); subitem.serverId = server.id; subitem.serverName = server.serviceTitle; item.serverList.Add(subitem); } list.Add(item); } return SUCCESS(list); } /// /// 获取项目服务列表 /// /// /// [HttpGet("/api/vscode/getServerInfo")] public IActionResult GetServerInfo([FromQuery] GetServerDto para) { TokenModel tokenModel = JwtUtil.GetLoginUser(HttpContext); if(tokenModel == null) { return ToResponse(ResultCode.BAD_REQUEST, "用户未登录"); } var item = projectServiceService.GetFirst(m => m.id == para.serverId) ?? new Model.ProjectService(); GetServerVo data = new GetServerVo(); data.ServerName = item.serviceName; data.ServerLanguage = item.devLanguage; return SUCCESS(data); } } }