运营菜单下挂地图监控/任务/报警入口,车辆卡片与任务列表同步展示运行态。 Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
2.6 KiB
C#
70 lines
2.6 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using MiGu.Server.Launcher;
|
|
|
|
namespace MiGu.Server.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/health")]
|
|
public class HealthController : ControllerBase
|
|
{
|
|
private static readonly DateTimeOffset StartTime = DateTimeOffset.UtcNow;
|
|
private readonly SimpleLiteLauncher _launcher;
|
|
|
|
public HealthController(SimpleLiteLauncher launcher) => _launcher = launcher;
|
|
|
|
/// <summary>匿名存活探针:仅返回进程级状态,不暴露端口拓扑等部署细节。</summary>
|
|
[HttpGet]
|
|
public IActionResult Get()
|
|
{
|
|
return Ok(new
|
|
{
|
|
status = "ok",
|
|
startTime = StartTime,
|
|
uptimeSec = (long)(DateTimeOffset.UtcNow - StartTime).TotalSeconds
|
|
});
|
|
}
|
|
|
|
/// <summary>
|
|
/// SimpleLite 拉起配置诊断:查看当前 ExecutablePath、解析结果、端口是否已有服务。
|
|
/// 配置位置:<c>MiGu.Server/appsettings.json</c> → <c>SimpleLite</c> 节点。
|
|
/// 含服务器本地路径等敏感信息,要求登录。
|
|
/// </summary>
|
|
[HttpGet("simplelite")]
|
|
[Authorize]
|
|
public IActionResult GetSimpleLiteDiagnostics() => Ok(_launcher.GetDiagnostics());
|
|
|
|
/// <summary>关闭本机全部 SimpleLite 进程。仅 Platform 管理端可调。</summary>
|
|
[HttpPost("simplelite/stop")]
|
|
[Authorize(Policy = "PlatformScope")]
|
|
public IActionResult StopSimpleLite()
|
|
{
|
|
var killed = _launcher.StopAll();
|
|
var diag = _launcher.GetDiagnostics();
|
|
return Ok(new { killed, diagnostics = diag });
|
|
}
|
|
|
|
/// <summary>关闭并重新拉起 SimpleLite(不同步 DLL)。仅 Platform 管理端可调。</summary>
|
|
[HttpPost("simplelite/restart")]
|
|
[Authorize(Policy = "PlatformScope")]
|
|
public IActionResult RestartSimpleLite([FromQuery] string launchMode = "webonly")
|
|
{
|
|
var result = _launcher.Restart(launchMode);
|
|
var diag = _launcher.GetDiagnostics();
|
|
return Ok(new { restart = result, diagnostics = diag });
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭 SimpleLite、同步最新 DLL、重新拉起。用于「前往站点」API 缺失时一键更新。
|
|
/// 会终止本机全部 SimpleLite 进程并重启,仅 Platform 管理端可调。
|
|
/// </summary>
|
|
[HttpPost("simplelite/restart-for-update")]
|
|
[Authorize(Policy = "PlatformScope")]
|
|
public IActionResult RestartSimpleLiteForUpdate([FromQuery] string launchMode = "webonly")
|
|
{
|
|
var result = _launcher.RestartForUpdate(launchMode);
|
|
var diag = _launcher.GetDiagnostics();
|
|
return Ok(new { restart = result, diagnostics = diag });
|
|
}
|
|
}
|