feat(api,core,domain): Ключи для редис
This commit is contained in:
@@ -24,19 +24,19 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
private readonly ITemplateRepository templateService;
|
||||
//private readonly IResponseAreaService responseAreaService;
|
||||
private readonly IMapper mapper;
|
||||
private readonly IWorkLoadService workLoadService;
|
||||
//private readonly IWorkLoadService workLoadService;
|
||||
|
||||
public StatResponseAreaWorkLoadController(
|
||||
ITemplateRepository templateService,
|
||||
//IResponseAreaService responseAreaService,
|
||||
IMapper mapper,
|
||||
IWorkLoadService workLoadService
|
||||
IMapper mapper
|
||||
//IWorkLoadService workLoadService
|
||||
)
|
||||
{
|
||||
this.templateService = templateService;
|
||||
//this.responseAreaService = responseAreaService;
|
||||
this.mapper = mapper;
|
||||
this.workLoadService = workLoadService;
|
||||
//this.workLoadService = workLoadService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,21 +19,21 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
public class StatWorkGroupWorkLoadController : BaseApiController
|
||||
{
|
||||
private readonly ITemplateRepository templateService;
|
||||
private readonly IWorkLoadService workLoadService;
|
||||
//private readonly IWorkLoadService workLoadService;
|
||||
//private readonly IWorkGroupService workGroupService;
|
||||
private readonly IMapper mapper;
|
||||
private readonly ILogger<StatWorkGroupWorkLoadController> logger;
|
||||
|
||||
public StatWorkGroupWorkLoadController(
|
||||
ITemplateRepository templateService,
|
||||
IWorkLoadService workLoadService,
|
||||
//IWorkLoadService workLoadService,
|
||||
//IWorkGroupService workGroupService,
|
||||
IMapper mapper,
|
||||
ILogger<StatWorkGroupWorkLoadController> logger
|
||||
)
|
||||
{
|
||||
this.templateService = templateService;
|
||||
this.workLoadService = workLoadService;
|
||||
//this.workLoadService = workLoadService;
|
||||
//this.workGroupService = workGroupService;
|
||||
this.mapper = mapper;
|
||||
this.logger = logger;
|
||||
|
||||
@@ -11,21 +11,21 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
public class StatWorkWorkLoadController : BaseApiController
|
||||
{
|
||||
private readonly ITemplateRepository templateService;
|
||||
private readonly IWorkLoadService workLoadService;
|
||||
//private readonly IWorkLoadService workLoadService;
|
||||
private readonly IMapper mapper;
|
||||
private readonly ILogger<StatWorkWorkLoadController> logger;
|
||||
//private readonly IWorkGroupService workGroupService;
|
||||
|
||||
public StatWorkWorkLoadController(
|
||||
ITemplateRepository templateService,
|
||||
IWorkLoadService workLoadService,
|
||||
//IWorkLoadService workLoadService,
|
||||
IMapper mapper,
|
||||
ILogger<StatWorkWorkLoadController> logger
|
||||
//IWorkGroupService workGroupService
|
||||
)
|
||||
{
|
||||
this.templateService = templateService;
|
||||
this.workLoadService = workLoadService;
|
||||
//this.workLoadService = workLoadService;
|
||||
this.mapper = mapper;
|
||||
this.logger = logger;
|
||||
//this.workGroupService = workGroupService;
|
||||
|
||||
@@ -9,6 +9,7 @@ using PARR.Core.Common.Interfaces;
|
||||
using PARR.Core.Repositories.Interfaces;
|
||||
using PARR.Core.Services.NextRunServices;
|
||||
using PARR.Core.Services.Workload.Implementations;
|
||||
using PARR.Domain.Cache;
|
||||
|
||||
namespace PARR.API.Controllers.V1
|
||||
{
|
||||
@@ -20,6 +21,7 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly INextRunService nextRunService;
|
||||
private readonly ITemplateRepository templateService;
|
||||
private readonly WorkloadCacheService workloadCacheService;
|
||||
private readonly ILogger<TestController> logger;
|
||||
|
||||
public TestController(
|
||||
IClientService clientService,
|
||||
@@ -27,7 +29,8 @@ namespace PARR.API.Controllers.V1
|
||||
INextRunService nextRunService,
|
||||
ITemplateRepository templateService,
|
||||
MqSettings mqSettings,
|
||||
WorkloadCacheService workloadCacheService
|
||||
WorkloadCacheService workloadCacheService,
|
||||
ILogger<TestController> logger
|
||||
)
|
||||
{
|
||||
this.clientService = clientService;
|
||||
@@ -35,6 +38,7 @@ namespace PARR.API.Controllers.V1
|
||||
this.nextRunService = nextRunService;
|
||||
this.templateService = templateService;
|
||||
this.workloadCacheService = workloadCacheService;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
|
||||
@@ -78,8 +82,25 @@ namespace PARR.API.Controllers.V1
|
||||
[HttpPost(ApiRoutes.Test.CreateCache)]
|
||||
public async Task<IActionResult> CreateCache()
|
||||
{
|
||||
#region Test bucket id
|
||||
|
||||
// var aaa = await workloadCacheService.GetTemplateReportDataAsync();
|
||||
var idList = new List<Guid>();
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
idList.Add( Guid.NewGuid());
|
||||
|
||||
foreach(var id in idList.OrderBy(t => t))
|
||||
{
|
||||
var key = CacheKeys.Unit.UnitHashWithBucket(id);
|
||||
var redisKey = redisCacheService.GetKey(key);
|
||||
|
||||
logger.LogDebug("Id: {Id}, key: '{Key}', redis key: '{RedisKey}'", id, key, redisKey);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
// var aaa = await workloadCacheService.GetTemplateReportDataAsync();
|
||||
|
||||
//var val = await redisCacheService.GetCachedDataAsync<object>("96dAoIH/8Q9Bg8VY");
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@ namespace PARR.API.Installers
|
||||
|
||||
services.AddTransient<IClientService, ClientService>();
|
||||
services.AddTransient<IAuthService, AuthService>();
|
||||
services.AddTransient<IWorkLoadService, WorkLoadService>();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ using PARR.API.Settings;
|
||||
using PARR.Core.Common.Interfaces;
|
||||
using PARR.Core.Repositories.Interfaces;
|
||||
using PARR.Core.Repositories.Interfaces.Unit;
|
||||
using PARR.Domain.Cache;
|
||||
using PARR.Domain.Common.Roles;
|
||||
using PARR.Domain.Settings;
|
||||
|
||||
@@ -162,13 +163,15 @@ namespace PARR.API.Services.Implementations
|
||||
private string GetBlockKey(string ipAddress)
|
||||
{
|
||||
// d - deny
|
||||
return $"d_{ipAddress}";
|
||||
//return $"d_{ipAddress}";
|
||||
return cacheService.GetKey(CacheKeys.UserAuth.Banned(ipAddress));
|
||||
}
|
||||
|
||||
private string GetAllowKey(string ipAddress)
|
||||
{
|
||||
// a - allow
|
||||
return $"a_{ipAddress}";
|
||||
//return $"a_{ipAddress}";
|
||||
return cacheService.GetKey(CacheKeys.UserAuth.Session(ipAddress));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
using PARR.API.Services.Interfaces;
|
||||
|
||||
namespace PARR.API.Services.Implementations
|
||||
{
|
||||
internal class WorkLoadService : IWorkLoadService
|
||||
{
|
||||
//private readonly ICalendarService calendarService;
|
||||
|
||||
//public WorkLoadService(ICalendarService calendarService)
|
||||
//{
|
||||
// this.calendarService = calendarService;
|
||||
//}
|
||||
|
||||
//private DateTime GetStartDate(int timeZoneOffsetHours)
|
||||
//{
|
||||
// //(так уже не делаем) начинаем не с сегодняшнего дня, а с завтра, так как на сегодня уже некоторые работы были проведены и их дата изменилась
|
||||
// //return DateTimeOffset.UtcNow.AddHours(timeZoneOffsetHours).Date.AddDays(1);
|
||||
|
||||
// var dateWithTimeZoneOffset = calendarService.GetDateWithTimeZoneOffset(DateTimeOffset.UtcNow, timeZoneOffsetHours);
|
||||
// //var dateWithAddDays = dateWithTimeZoneOffset.DateTime.AddDays(1);
|
||||
// var dateWithAddDays = dateWithTimeZoneOffset.DateTime.AddDays(0);
|
||||
|
||||
// //var bbb = dateWithTimeZoneOffset.DateTime.AddDays(1);
|
||||
|
||||
// //return calendarService.GetDateWithTimeZoneOffset(DateTimeOffset.UtcNow, timeZoneOffsetHours).UtcDateTime.AddDays(1);
|
||||
// return dateWithAddDays;
|
||||
//}
|
||||
|
||||
|
||||
//private DateTime GetEndDate(bool? isMonth, int timeZoneOffsetHours)
|
||||
//{
|
||||
// var startDate = GetStartDate(timeZoneOffsetHours);
|
||||
|
||||
// return isMonth == true ? startDate.AddDays(30) : startDate.AddDays(6);
|
||||
//}
|
||||
|
||||
|
||||
//public List<DateOnly> GetDatesForPeriod(WorkloadBaseQuery requestQuery)
|
||||
//{
|
||||
// var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
|
||||
// var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
|
||||
|
||||
// //var daysList = new List<DateTimeOffset>();
|
||||
|
||||
// //daysList.Add(new DateTimeOffset(startDate, new TimeSpan(0)));
|
||||
|
||||
// //while (daysList.Last() < endDate)
|
||||
// // daysList.Add(daysList.Last().AddDays(1));
|
||||
|
||||
// //return daysList.OrderBy(t => t).ToList();
|
||||
|
||||
// //var aaa = DateOnly.FromDateTime(startDate);
|
||||
|
||||
// return calendarService.GetDatesForPeriod(DateOnly.FromDateTime(startDate), DateOnly.FromDateTime(endDate));
|
||||
//}
|
||||
|
||||
|
||||
//public IQueryable<Template> FilterTemplatesQuery(IQueryable<Template> query, WorkloadBaseQuery requestQuery)
|
||||
//{
|
||||
// var startDate = GetStartDate(requestQuery.TimeZoneOffsetHours);
|
||||
// var endDate = GetEndDate(requestQuery.IsMonth, requestQuery.TimeZoneOffsetHours);
|
||||
|
||||
// //query = query.Where(t =>
|
||||
// // t.NextRun.DateTime.Date >= startDate.Date && t.NextRun.DateTime.Date <= endDate.Date
|
||||
// // );
|
||||
|
||||
// query = query.Where(t =>
|
||||
// t.NextRun.DateTime.AddHours(requestQuery.TimeZoneOffsetHours).Date >= startDate.Date && t.NextRun.DateTime.AddHours(requestQuery.TimeZoneOffsetHours).Date <= endDate.Date
|
||||
// );
|
||||
|
||||
// if (requestQuery.IsActiveTemplate.HasValue)
|
||||
// query = query.Where(t => t.IsActiveTemplate == requestQuery.IsActiveTemplate.Value);
|
||||
|
||||
// if (requestQuery.IsActiveSchedule.HasValue)
|
||||
// query = query.Where(t => t.IsActiveSchedule == requestQuery.IsActiveSchedule.Value);
|
||||
|
||||
// return query;
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
namespace PARR.API.Services.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервисы по формированию статистики загрузки рабочих групп/ЗО, и тд регламентными работами
|
||||
/// </summary>
|
||||
public interface IWorkLoadService
|
||||
{
|
||||
//IQueryable<Template> FilterTemplatesQuery(IQueryable<Template> query, WorkloadBaseQuery requestQuery);
|
||||
|
||||
//List<DateOnly> GetDatesForPeriod(WorkloadBaseQuery requestQuery);
|
||||
|
||||
//DateTime GetEndDate(DateTime startDate, bool? isMonth);
|
||||
//DateTime GetStartDate();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user