From 60f12b3e5849ba7901c1f69416c096e20f998721 Mon Sep 17 00:00:00 2001
From: MSuMshk <2039814060@qq.com>
Date: Wed, 21 Jan 2026 12:35:39 +0800
Subject: [PATCH] feat: add tencent map signature endpoint
---
.../Responses/TencentMapScriptResponse.cs | 3 +
.../Controllers/TencentMapsController.cs | 90 +++++++++++++++++++
.../appsettings.Development.json | 4 +
.../appsettings.Production.json | 4 +
4 files changed, 101 insertions(+)
create mode 100644 src/Api/TakeoutSaaS.AdminApi/Contracts/Responses/TencentMapScriptResponse.cs
create mode 100644 src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs
diff --git a/src/Api/TakeoutSaaS.AdminApi/Contracts/Responses/TencentMapScriptResponse.cs b/src/Api/TakeoutSaaS.AdminApi/Contracts/Responses/TencentMapScriptResponse.cs
new file mode 100644
index 0000000..11748a1
--- /dev/null
+++ b/src/Api/TakeoutSaaS.AdminApi/Contracts/Responses/TencentMapScriptResponse.cs
@@ -0,0 +1,3 @@
+namespace TakeoutSaaS.AdminApi.Contracts.Responses;
+
+public sealed record TencentMapScriptResponse(string ScriptUrl);
diff --git a/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs b/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs
new file mode 100644
index 0000000..0745246
--- /dev/null
+++ b/src/Api/TakeoutSaaS.AdminApi/Controllers/TencentMapsController.cs
@@ -0,0 +1,90 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using System.Security.Cryptography;
+using System.Text;
+using TakeoutSaaS.AdminApi.Contracts.Responses;
+using TakeoutSaaS.Shared.Abstractions.Constants;
+using TakeoutSaaS.Shared.Abstractions.Results;
+using TakeoutSaaS.Shared.Web.Api;
+
+namespace TakeoutSaaS.AdminApi.Controllers;
+
+///
+/// 腾讯地图脚本签名服务。
+///
+[ApiVersion("1.0")]
+[Authorize]
+[Route("api/admin/v{version:apiVersion}/maps")]
+public sealed class TencentMapsController(IConfiguration configuration) : BaseApiController
+{
+ private const string DefaultLibraries = "visualization,geometry,vector,tools";
+ private const string DefaultCallback = "initGLMap";
+ private const string DefaultVersion = "1.exp";
+
+ ///
+ /// 获取腾讯地图 JS 脚本地址(含签名)。
+ ///
+ [HttpGet("tencent-js")]
+ [ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)]
+ [ProducesResponseType(typeof(ApiResponse