This commit is contained in:
CortexCore
2024-05-31 01:20:03 +08:00
parent 0c573029b3
commit fdf263a308
7 changed files with 275 additions and 69 deletions

View File

@@ -0,0 +1,105 @@
using System.Data.Entity;
using BITKit;
using IDIS;
using IDIS_Server_SIM.Data;
using IDIS_Server_SIM.Extensions;
using IDIS.Models;
using IDIS.Services;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
namespace IDIS_Server_SIM.Controllers;
[ApiController]
public class IDIS_QueryController:Controller
{
private readonly IDIS_Statistics_MySQLBased _statisticsService;
private readonly IDIS_Service_MySQLBased _service;
private readonly QueryService _queryService;
private readonly ILogger<IDIS_QueryController> _logger;
public IDIS_QueryController(IDIS_Statistics_MySQLBased statisticsService, ILogger<IDIS_QueryController> logger, QueryService queryService, IDIS_Service_MySQLBased service)
{
_statisticsService = statisticsService;
_logger = logger;
_queryService = queryService;
_service = service;
}
/// <summary>
/// 查询当日的解析的标识
/// </summary>
/// <returns></returns>
[Route("/api/query/today")]
[HttpGet]
public async Task<IActionResult> GetTodayQuery()
{
var result = await _statisticsService.GetTodayQuery();
return new IDIS_Response(result).ToActionResult();
}
/// <summary>
/// 查询该标识的解析次数
/// </summary>
/// <param name="handle">标识码,标识码为null则是查询所有表示的解析次数</param>
/// <returns></returns>
[Route("/api/query/count")]
[HttpGet]
public async Task<IActionResult> GetQueryCount(string handle=null)
{
if (string.IsNullOrEmpty(handle))
{
var result =await EntityFrameworkQueryableExtensions.ToArrayAsync(_statisticsService.queryCounter);
return new IDIS_Response(result).ToActionResult();
}
else
{
var result = await _statisticsService.GetQueryCount(handle);
return new IDIS_Response(result).ToActionResult();
}
}
/// <summary>
/// 查询所有标识的解析次数综合
/// </summary>
/// <returns></returns>
[HttpGet]
[Route(("/api/query/all_count"))]
public async Task<IActionResult> GetQueryAllCount()
{
return new IDIS_Response(await _statisticsService.GetAllQueryCount()).ToActionResult();
}
/// <summary>
/// 获取所有标识的数量
/// </summary>
/// <returns></returns>
[HttpGet]
[Route(("/api/all_count"))]
public IActionResult GetAllCount()
{
var count = _service.handles.Count();
return new IDIS_Response(count).ToActionResult();
}
/// <summary>
/// 通过标签查询标识
/// </summary>
/// <param name="tags">标签,多个标签使用;分隔</param>
/// <param name="today">是否仅查询今日的标识</param>
/// <returns></returns>
[HttpGet]
[Route(("/api/query/by"))]
public async Task<IActionResult> GetQueryByTag(string tags,bool today=false)
{
return new IDIS_Response(await _queryService.QueryByTag(today,tags.Split(";"))).ToActionResult();
}
/// <summary>
/// 通过Tag获取解析记录
/// </summary>
/// <param name="tags">标签,多个标签使用;分隔</param>
/// <param name="today">是否仅查询今日的标识</param>
/// <returns></returns>
[HttpGet]
[Route(("/api/queryRecords/by"))]
public async Task<IActionResult> GetQueryRecordsByTag(string tags, bool today = false)
{
return new IDIS_Response(await _queryService.QueryRecordsByTag(today,tags.Split(";"))).ToActionResult();
}
}

View File

@@ -15,15 +15,51 @@ public class IDIS_ServiceController:Controller
{
_service = service;
}
/// <summary>
/// 获取服务器信息
/// </summary>
/// <returns>主机名称</returns>
[HttpGet]
[Route("info")]
public IActionResult Info()
{
return new ContentResult
{
Content = Environment.MachineName
};
return Ok(new IDIS_Response(Environment.MachineName));
}
/// <summary>
/// 一次解析所有标识
/// </summary>
/// <returns>所有标识的数组</returns>
[HttpGet]
[Route("/identityv2/data/detail/all")]
public async Task<IActionResult> QueryAll()
{
try
{
var result = await _service.ToArrayAsync();
var response = new IDIS_Response(result);
var json = JsonConvert.SerializeObject(response);
//return Ok(JsonConvert.SerializeObject(response));
return new ContentResult()
{
Content = json,
ContentType = "application/json",
StatusCode = 200
};
}
catch (Exception e)
{
return BadRequest(new IDIS_Response(e.Message,false)
{
Status = 2
});
}
}
/// <summary>
/// 解析表示
/// </summary>
/// <param name="handle">标识码</param>
/// <returns></returns>
[HttpGet]
[Route("/identityv2/data/detail")]
public async Task<IActionResult> Query(string handle)
@@ -49,14 +85,21 @@ public class IDIS_ServiceController:Controller
});
}
}
/// <summary>
/// 查询标识是否存在
/// </summary>
/// <param name="code">标识码</param>
/// <returns></returns>
[HttpGet]
[Route("isExist")]
public async Task<IActionResult> IsExist(string code)
{
return Ok(new IDIS_Response(await _service.IsExistAsync(code)));
}
/// <summary>
/// 注册标识
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("/identityv2/data")]
public async Task<IActionResult> Register()
@@ -78,12 +121,21 @@ public class IDIS_ServiceController:Controller
}
}
/// <summary>
/// 更新标识(目前不可用)
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("update")]
public string Update()
{
return "err:0";
}
/// <summary>
/// 删除标识
/// </summary>
/// <param name="code">标识码</param>
/// <returns></returns>
[HttpGet]
[Route("delete")]
public async Task<bool> Delete (string code)

View File

@@ -1,36 +0,0 @@
using BITKit;
using IDIS;
using IDIS_Server_SIM.Extensions;
using IDIS.Models;
using IDIS.Services;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace IDIS_Server_SIM.Controllers;
[ApiController]
public class IDIS_StatisticsController:Controller
{
private readonly IDIS_Statistics_MySQLBased _service;
private readonly ILogger<IDIS_StatisticsController> _logger;
public IDIS_StatisticsController(IDIS_Statistics_MySQLBased service, ILogger<IDIS_StatisticsController> logger)
{
_service = service;
_logger = logger;
}
[Route("/api/query/today")]
public async Task<IActionResult> GetTodayQuery()
{
var result = await _service.GetTodayQuery();
return new IDIS_Response(result).ToActionResult();
}
[Route("/api/query/count")]
public async Task<IActionResult> GetQueryCount(string handle)
{
var result = await _service.GetQueryCount(handle);
return new IDIS_Response(result).ToActionResult();
}
}

View File

@@ -19,7 +19,12 @@ public class IDIS_TemplateController:Controller
_service = service;
_logger = logger;
}
/// <summary>
/// 查询标识模板
/// </summary>
/// <param name="prefix">前缀例如88.123.99</param>
/// <param name="version">版本例如v0.0.1</param>
/// <returns></returns>
[Route("/snms/api/template/v1")]
[HttpGet]
public async Task<IActionResult> Query(string prefix, string version)
@@ -36,7 +41,10 @@ public class IDIS_TemplateController:Controller
});
}
}
/// <summary>
/// 保存标识模板
/// </summary>
/// <returns></returns>
[Route("/snms/api/template/v1")]
[HttpPost]
public async Task<IActionResult> Save()