ThirdPartyController.cs
1.2 KB
using MassTransit.Mediator;
using Microsoft.AspNetCore.Mvc;
using Rcs.Application.Common;
using Rcs.Application.MessageBus.Commands;
namespace Rcs.Api.OtherControllers;
[Route("task")]
[ApiController]
public class ThirdPartyController : Controller
{
private readonly ILogger<ThirdPartyController> _logger;
private readonly IMediator _mediator;
public ThirdPartyController(
ILogger<ThirdPartyController> logger,
IMediator mediator)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
_mediator = mediator;
}
/// <summary>
/// 任务完成接口 - 由车控系统调用,用于通知RCS任务已完成
/// </summary>
/// <param name="request">任务完成请求数据</param>
/// <returns>统一响应模型</returns>
[HttpPost("third_party/completed")]
public async Task<IActionResult> TaskCompleted([FromBody] CompletionRobotTaskCommand request, CancellationToken cancellationToken = default)
{
var client = _mediator.CreateRequestClient<CompletionRobotTaskCommand>();
var response = await client.GetResponse<ApiResponse>(request, cancellationToken);
return Ok(response.Message);
}
}