using Attribute; using Common; using Dto; using Vo; using Enums; using Filters; using Infrastructure; using Infrastructure.Model; using Mapster; using Microsoft.AspNetCore.Mvc; using Middleware; using Model; using Services; using Model.Base; using Microsoft.AspNetCore.Authorization; namespace Controllers { /// /// ApiInfo)Controller /// // [Route("ApiInfo")] // [ApiExplorerSettings(GroupName = "ApiInfo")] public class ApiPubController : BaseController { /// /// api分组接口 /// private readonly IApiInfoService _ApiInfoService; private readonly IApiGroupService _ApiGroupService; public ApiPubController(IApiInfoService ApiInfoService, IApiGroupService ApiGroupService) { _ApiInfoService = ApiInfoService; _ApiGroupService = ApiGroupService; } [AllowAnonymous] [HttpPost] [Route("/noauth/apiinfo/groupsforadmin")] public IActionResult GroupsForAdmin(string value) { var response = _ApiGroupService.GroupsForAdmin(value); return SUCCESS(response); } [AllowAnonymous] [HttpPost] [Route("/noauth/apiinfo/listforadmin")] public IActionResult ListForAdmin(string value) { string jsonString = Dbconn.DesDecrypt(value, "&L^kg4N9"); Dictionary data = Newtonsoft.Json.JsonConvert.DeserializeObject>(jsonString); Dictionary groupobj = new Dictionary(); Dictionary obj = new Dictionary(); if(jsonString.Contains("\"groups\"")) { List> groupJson = Newtonsoft.Json.JsonConvert.DeserializeObject>>(data["groups"].ToString()); for(int i = 0; i < groupJson.Count; i ++) { string name = groupJson[i]["name"].ToString(); int version = int.Parse(groupJson[i]["version"].ToString()); groupobj.Add(name, version); } } var groups = _ApiGroupService.GetList(m => m.groupKind == 1); foreach(var group in groups) { int curVersion = int.Parse(Function.CheckInt(group.groupVersion)); if(groupobj.Any(m => m.Key == group.groupName && m.Value < curVersion)) { Dictionary groupData = new Dictionary(); var apis = _ApiInfoService.GetList(m => m.groupId == group.id).ToList(); foreach(var api in apis) { Dictionary apiData = new Dictionary(); string url = api.apiHost; if(api.apiPort != 80 && api.apiPort != 443) { url += ":" + api.apiPort; } url += api.apiRouter; apiData.Add("name", api.apiName); apiData.Add("url", url); apiData.Add("method", api.apiMethod); groupData.Add(api.apiKey, apiData); } groupData.Add("groupVersion", group.groupVersion); groupData.Add("groupInfo", group.groupRemark); obj.Add(group.groupName, groupData); } } return SUCCESS(obj); } } }