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);
        
    }
}