refactor(api): Удалены лишние таблицы связанные со старой логикой получения заданий роботом.

This commit is contained in:
Mikhail Trubnikov
2023-10-06 14:24:58 +10:00
parent 9060db1fe4
commit f2329e9367
24 changed files with 2199 additions and 538 deletions

View File

@@ -47,23 +47,25 @@ namespace PARR.API.Controllers.V1
.OrderBy(t => t.Name)
.AsSplitQuery();
if (filter.StatusCode.HasValue)
{
switch (filter.StatusCode.Value)
{
case (int)TaskStatusEnum.Ok:
query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Ok);
break;
case (int)TaskStatusEnum.Creating:
query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Creating);
break;
case (int)TaskStatusEnum.Updating:
query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Updating);
break;
default:
break;
}
}
//TODO:!!!
//if (filter.StatusCode.HasValue)
//{
// switch (filter.StatusCode.Value)
// {
// case (int)TaskStatusEnum.Ok:
// query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Ok);
// break;
// case (int)TaskStatusEnum.Creating:
// query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Creating);
// break;
// case (int)TaskStatusEnum.Updating:
// query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Updating);
// break;
// default:
// break;
// }
//}
if (!string.IsNullOrEmpty(filter.Mask))
query = query.Where(t => EF.Functions.Like(t.Name.ToLower(), SqlHelpers.RegexToLike(filter.Mask)));
@@ -84,75 +86,75 @@ namespace PARR.API.Controllers.V1
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet(ApiRoutes.Template.Get)]
public async Task<IActionResult> GetById([FromRoute] Guid id)
{
var template = await templateService.GetWithIncludes()
.AsSplitQuery()
.FirstOrDefaultAsync(t => t.Id == id);
//[HttpGet(ApiRoutes.Template.Get)]
//public async Task<IActionResult> GetById([FromRoute] Guid id)
//{
// var template = await templateService.GetWithIncludes()
// .AsSplitQuery()
// .FirstOrDefaultAsync(t => t.Id == id);
if (template == null)
return NotFound();
// if (template == null)
// return NotFound();
var response = mapper.Map<TemplateResponse>(template);
// var response = mapper.Map<TemplateResponse>(template);
return Ok(new Response<TemplateResponse>(response, true));
}
// return Ok(new Response<TemplateResponse>(response, true));
//}
/// <summary>
/// Получить один шаблон по заданному статусу
/// </summary>
/// <param name="statusCode"></param>
/// <returns></returns>
[HttpGet(ApiRoutes.Template.GetByStatusCode)]
public async Task<IActionResult> GetByStatus([FromRoute] int statusCode, [FromQuery] RobinQuery query)
{
Template? template = null;
//[HttpGet(ApiRoutes.Template.GetByStatusCode)]
//public async Task<IActionResult> GetByStatus([FromRoute] int statusCode, [FromQuery] RobinQuery query)
//{
// Template? template = null;
//1.Ищем `RobotStatusCode` = 22 и `RobotLastStatusUpdated` истекло и `RobotAttemptsNumber` >= допустимого значения из настроек,
//ставим всем этим записям `RobotStatusCode`= 33
//2.Поиск шаблонов со `StatusCode` 10 или 20 и `RobotStatusCode` = 11.Находим, **выбрали эту запись, конец**.
//3.Поиск шаблонов со `StatusCode` 10 или 20 и `RobotStatusCode` = 22.
//Далее проверяется `RobotLastStatusUpdated`, что время последнего смены статуса не превышает допустимого(берется из настроек, поле `RobotWaitTime`)
//и что текущая попытка не больше разрешенной(берется из настроек, поле `RobotAttemptsNumber`) - если это так, берется эта запись.
// //1.Ищем `RobotStatusCode` = 22 и `RobotLastStatusUpdated` истекло и `RobotAttemptsNumber` >= допустимого значения из настроек,
// //ставим всем этим записям `RobotStatusCode`= 33
// //2.Поиск шаблонов со `StatusCode` 10 или 20 и `RobotStatusCode` = 11.Находим, **выбрали эту запись, конец**.
// //3.Поиск шаблонов со `StatusCode` 10 или 20 и `RobotStatusCode` = 22.
// //Далее проверяется `RobotLastStatusUpdated`, что время последнего смены статуса не превышает допустимого(берется из настроек, поле `RobotWaitTime`)
// //и что текущая попытка не больше разрешенной(берется из настроек, поле `RobotAttemptsNumber`) - если это так, берется эта запись.
//1.
await templateService.CheckAndSetErrorRobotStatusAsync(settingsFromDb.RobotAttemptsNumber, settingsFromDb.RobotWaitTime);
// //1.
// await templateService.CheckAndSetErrorRobotStatusAsync(settingsFromDb.RobotAttemptsNumber, settingsFromDb.RobotWaitTime);
//2.
template = await templateService.GetWithIncludes()
.AsSplitQuery()
.FirstOrDefaultAsync(t => t.StatusCode == statusCode && t.RobotStatusCode == (int)RobotStatusEnum.Wait);
// //2.
// template = await templateService.GetWithIncludes()
// .AsSplitQuery()
// .FirstOrDefaultAsync(t => t.StatusCode == statusCode && t.RobotStatusCode == (int)RobotStatusEnum.Wait);
//3.
if (template == null)
{
var endDate = DateTimeOffset.UtcNow.Add(-settingsFromDb.RobotWaitTime);
template = await templateService.GetWithIncludes()
.AsSplitQuery()
.FirstOrDefaultAsync(t =>
t.StatusCode == statusCode
&& t.RobotStatusCode == (int)RobotStatusEnum.InProgress
&& t.RobotAttemptsNumber < settingsFromDb.RobotAttemptsNumber
&& t.RobotLastStatusUpdated < endDate
);
}
// //3.
// if (template == null)
// {
// var endDate = DateTimeOffset.UtcNow.Add(-settingsFromDb.RobotWaitTime);
// template = await templateService.GetWithIncludes()
// .AsSplitQuery()
// .FirstOrDefaultAsync(t =>
// t.StatusCode == statusCode
// && t.RobotStatusCode == (int)RobotStatusEnum.InProgress
// && t.RobotAttemptsNumber < settingsFromDb.RobotAttemptsNumber
// && t.RobotLastStatusUpdated < endDate
// );
// }
if (template == null)
return NotFound();
// if (template == null)
// return NotFound();
var response = mapper.Map<TemplateResponse>(template);
// var response = mapper.Map<TemplateResponse>(template);
if (query.Robin == true)
{
var stringResponse = mapper.Map<TemplateStringResponse>(response);
return Ok(stringResponse);
}
// if (query.Robin == true)
// {
// var stringResponse = mapper.Map<TemplateStringResponse>(response);
// return Ok(stringResponse);
// }
return Ok(new Response<TemplateResponse>(response, true));
}
// return Ok(new Response<TemplateResponse>(response, true));
//}
/// <summary>
@@ -160,25 +162,25 @@ namespace PARR.API.Controllers.V1
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPut(ApiRoutes.Template.SetOkStatus)]
public async Task<IActionResult> SetOkStatus([FromRoute] Guid id)
{
var template = await templateService.GetWithIncludes()
.AsSplitQuery()
.FirstOrDefaultAsync(t => t.Id == id);
//[HttpPut(ApiRoutes.Template.SetOkStatus)]
//public async Task<IActionResult> SetOkStatus([FromRoute] Guid id)
//{
// var template = await templateService.GetWithIncludes()
// .AsSplitQuery()
// .FirstOrDefaultAsync(t => t.Id == id);
if (template == null)
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Не найден шаблон с id: {id}" } }));
// if (template == null)
// return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Не найден шаблон с id: {id}" } }));
template.StatusCode = (int)TaskStatusEnum.Ok;
// template.StatusCode = (int)TaskStatusEnum.Ok;
if (!await templateService.CommitAsync())
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при изменении статуса у шаблона с id: {id}" } }));
// if (!await templateService.CommitAsync())
// return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при изменении статуса у шаблона с id: {id}" } }));
var response = mapper.Map<TemplateResponse>(template);
// var response = mapper.Map<TemplateResponse>(template);
return Ok(new Response<TemplateResponse>(response, true));
}
// return Ok(new Response<TemplateResponse>(response, true));
//}
}