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 _logger; public IDIS_QueryController(IDIS_Statistics_MySQLBased statisticsService, ILogger logger, QueryService queryService, IDIS_Service_MySQLBased service) { _statisticsService = statisticsService; _logger = logger; _queryService = queryService; _service = service; } /// /// 查询当日的解析的标识 /// /// [Route("/api/query/today")] [HttpGet] public async Task GetTodayQuery() { var result = await _statisticsService.GetTodayQuery(); return new IDIS_Response(result).ToActionResult(); } /// /// 查询该标识的解析次数 /// /// 标识码,标识码为null则是查询所有表示的解析次数 /// [Route("/api/query/count")] [HttpGet] public async Task 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(); } } /// /// 查询所有标识的解析次数综合 /// /// [HttpGet] [Route(("/api/query/all_count"))] public async Task GetQueryAllCount() { return new IDIS_Response(await _statisticsService.GetAllQueryCount()).ToActionResult(); } /// /// 获取所有标识的数量 /// /// [HttpGet] [Route(("/api/all_count"))] public IActionResult GetAllCount() { var count = _service.handles.Count(); return new IDIS_Response(count).ToActionResult(); } /// /// 通过标签查询标识 /// /// 标签,多个标签使用;分隔 /// 是否仅查询今日的标识 /// [HttpGet] [Route(("/api/query/by"))] public async Task GetQueryByTag(string tags,bool today=false) { return new IDIS_Response(await _queryService.QueryByTag(today,tags.Split(";"))).ToActionResult(); } /// /// 通过Tag获取解析记录 /// /// 标签,多个标签使用;分隔 /// 是否仅查询今日的标识 /// [HttpGet] [Route(("/api/queryRecords/by"))] public async Task GetQueryRecordsByTag(string tags, bool today = false) { return new IDIS_Response(await _queryService.QueryRecordsByTag(today,tags.Split(";"))).ToActionResult(); } }