diff --git a/TakeoutSaaS.Docs b/TakeoutSaaS.Docs
index 88ad710..318aded 160000
--- a/TakeoutSaaS.Docs
+++ b/TakeoutSaaS.Docs
@@ -1 +1 @@
-Subproject commit 88ad71041bcec59715274c9ca568b0ca434408a1
+Subproject commit 318aded4bf7a3b05d8012b5199eaba26bdbb36b0
diff --git a/src/Api/TakeoutSaaS.AdminApi/Controllers/DictionaryLabelOverridesController.cs b/src/Api/TakeoutSaaS.AdminApi/Controllers/DictionaryLabelOverridesController.cs
index d031058..2f50743 100644
--- a/src/Api/TakeoutSaaS.AdminApi/Controllers/DictionaryLabelOverridesController.cs
+++ b/src/Api/TakeoutSaaS.AdminApi/Controllers/DictionaryLabelOverridesController.cs
@@ -7,7 +7,6 @@ using TakeoutSaaS.Module.Authorization.Attributes;
using TakeoutSaaS.Shared.Abstractions.Constants;
using TakeoutSaaS.Shared.Abstractions.Results;
using TakeoutSaaS.Shared.Abstractions.Security;
-using TakeoutSaaS.Shared.Abstractions.Tenancy;
using TakeoutSaaS.Shared.Web.Api;
namespace TakeoutSaaS.AdminApi.Controllers;
@@ -20,31 +19,29 @@ namespace TakeoutSaaS.AdminApi.Controllers;
[Route("api/admin/v{version:apiVersion}/dictionary/label-overrides")]
public sealed class DictionaryLabelOverridesController(
DictionaryLabelOverrideService labelOverrideService,
- ITenantProvider tenantProvider,
ICurrentUserAccessor currentUserAccessor)
: BaseApiController
{
- private const string TenantIdHeaderName = "X-Tenant-Id";
-
#region 租户端 API(租户覆盖系统字典)
///
/// 获取当前租户的标签覆盖列表。
///
- [HttpGet("tenant")]
+ [HttpGet("~/api/admin/v{version:apiVersion}/tenants/{tenantId:long}/dictionary/label-overrides")]
[PermissionAuthorize("dictionary:override:read")]
[ProducesResponseType(typeof(ApiResponse>), StatusCodes.Status200OK)]
public async Task>> ListTenantOverrides(
+ long tenantId,
[FromQuery] OverrideType? overrideType,
CancellationToken cancellationToken)
{
- var headerError = EnsureTenantHeader>();
- if (headerError != null)
+ // 1. 校验租户标识
+ if (tenantId <= 0)
{
- return headerError;
+ return ApiResponse>.Error(StatusCodes.Status400BadRequest, "租户标识无效");
}
- var tenantId = tenantProvider.GetCurrentTenantId();
+ // 2. (空行后) 查询租户覆盖列表
var result = await labelOverrideService.GetOverridesAsync(tenantId, overrideType, cancellationToken);
return ApiResponse>.Ok(result);
}
@@ -52,20 +49,21 @@ public sealed class DictionaryLabelOverridesController(
///
/// 租户覆盖系统字典项的标签。
///
- [HttpPost("tenant")]
+ [HttpPost("~/api/admin/v{version:apiVersion}/tenants/{tenantId:long}/dictionary/label-overrides")]
[PermissionAuthorize("dictionary:override:update")]
[ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)]
public async Task> CreateTenantOverride(
+ long tenantId,
[FromBody] UpsertLabelOverrideRequest request,
CancellationToken cancellationToken)
{
- var headerError = EnsureTenantHeader();
- if (headerError != null)
+ // 1. 校验租户标识
+ if (tenantId <= 0)
{
- return headerError;
+ return ApiResponse.Error(StatusCodes.Status400BadRequest, "租户标识无效");
}
- var tenantId = tenantProvider.GetCurrentTenantId();
+ // 2. (空行后) 执行租户覆盖
var operatorId = currentUserAccessor.UserId;
var result = await labelOverrideService.UpsertTenantOverrideAsync(tenantId, request, operatorId, cancellationToken);
return ApiResponse.Ok(result);
@@ -74,19 +72,19 @@ public sealed class DictionaryLabelOverridesController(
///
/// 租户删除自己的标签覆盖。
///
- [HttpDelete("tenant/{dictionaryItemId:long}")]
+ [HttpDelete("~/api/admin/v{version:apiVersion}/tenants/{tenantId:long}/dictionary/label-overrides/{dictionaryItemId:long}")]
[PermissionAuthorize("dictionary:override:delete")]
[ProducesResponseType(typeof(ApiResponse